Files
roastart/diag.ps1
Marius Mutu b241a639b1 Import initial: surse ROASTART + text FoxBin2Prg in arbore
Binarele VFP raman pe SVN si sunt git-ignored; COMUN e gestionat separat.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A5okKjUKMM5Xk1egq2w81P
2026-08-03 09:34:12 +03:00

184 lines
7.2 KiB
PowerShell

$report = "claude-code-diagnostic-PROBLEMA.md"
$out = @()
$out += "# Claude Code Diagnostic - MASINA CU PROBLEME - $env:COMPUTERNAME - $(Get-Date -Format 'yyyy-MM-dd HH:mm')"
$out += ""
$out += "## 1. Versiuni si instalare"
$out += '```'
$out += "claude --version: $(claude --version 2>&1)"
$out += "where claude : $((where.exe claude 2>&1) -join '; ')"
$out += "node --version : $(node --version 2>&1)"
$out += "npm --version : $(npm --version 2>&1)"
$out += "where node : $((where.exe node 2>&1) -join '; ')"
$out += "where npm : $((where.exe npm 2>&1) -join '; ')"
$out += ""
$out += "npm global claude pkg:"
$out += (npm list -g --depth=0 2>$null | Select-String -Pattern "claude" | Out-String).Trim()
$out += ""
$out += "Native installer existence:"
$out += " ~\.local\bin\claude.exe : $(Test-Path "$env:USERPROFILE\.local\bin\claude.exe")"
$out += " LOCALAPPDATA\Programs\claude\ : $(Test-Path "$env:LOCALAPPDATA\Programs\claude\claude.exe")"
$out += " ~\.claude\local\ : $(Test-Path "$env:USERPROFILE\.claude\local")"
$out += '```'
$out += ""
$out += "## 2. claude doctor"
$out += '```'
$out += "RULEAZA MANUAL: claude doctor"
$out += "(nu se poate captura non-interactiv - copiaza output-ul aici manual)"
$out += '```'
$out += ""
$out += "## 3. Configuratie Claude"
$out += '```'
if (Test-Path "$env:USERPROFILE\.claude.json") {
try {
$cfg = Get-Content "$env:USERPROFILE\.claude.json" -Raw | ConvertFrom-Json
$out += "~/.claude.json keys:"
$out += ($cfg.PSObject.Properties.Name -join ", ")
$out += ""
$out += "installMethod: $($cfg.installMethod)"
$out += "autoUpdates : $($cfg.autoUpdates)"
$out += "autoUpdatesProtectedForNative: $($cfg.autoUpdatesProtectedForNative)"
} catch {
$out += "ERROR parsing .claude.json: $_"
}
} else {
$out += "~/.claude.json: MISSING"
}
$out += ""
$out += "Settings files:"
$out += " ~/.claude/settings.json : $(Test-Path "$env:USERPROFILE\.claude\settings.json")"
$out += " ./.claude/settings.json : $(Test-Path ".\.claude\settings.json")"
$out += " ./.claude/settings.local.json : $(Test-Path ".\.claude\settings.local.json")"
$out += ""
$out += "Credentials file: $(Test-Path "$env:USERPROFILE\.claude\.credentials.json")"
if (Test-Path "$env:USERPROFILE\.claude\.credentials.json") {
$credSize = (Get-Item "$env:USERPROFILE\.claude\.credentials.json").Length
$out += " size: $credSize bytes"
}
$out += '```'
$out += ""
$out += "## 4. Variabile de mediu"
$out += '```'
$envs = Get-ChildItem Env: | Where-Object { $_.Name -match '^(CLAUDE_|ANTHROPIC_|NODE_|HTTP_PROXY|HTTPS_PROXY|NO_PROXY|ALL_PROXY)' }
if ($envs) {
$out += ($envs | Format-Table -AutoSize | Out-String).Trim()
} else {
$out += "(none set)"
}
$out += '```'
$out += ""
$out += "## 5. Retea"
$out += '```'
$out += "DNS servers:"
$out += (Get-DnsClientServerAddress -AddressFamily IPv4 | Where-Object {$_.ServerAddresses} | Format-Table InterfaceAlias, ServerAddresses -AutoSize | Out-String).Trim()
$out += ""
$out += "WinHTTP proxy:"
$out += (netsh winhttp show proxy | Out-String).Trim()
$out += ""
$out += "IE/system proxy:"
$ie = Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings' -ErrorAction SilentlyContinue
$out += " ProxyEnable : $($ie.ProxyEnable)"
$out += " ProxyServer : $($ie.ProxyServer)"
$out += " AutoConfigURL: $($ie.AutoConfigURL)"
$out += ""
$out += "DNS resolution api.anthropic.com:"
$out += " A : $((Resolve-DnsName api.anthropic.com -Type A -ErrorAction SilentlyContinue).IPAddress -join ', ')"
$out += " AAAA : $((Resolve-DnsName api.anthropic.com -Type AAAA -ErrorAction SilentlyContinue).IPAddress -join ', ')"
$out += ""
$out += "TCP 443 to api.anthropic.com:"
$tcp = Test-NetConnection -ComputerName api.anthropic.com -Port 443 -WarningAction SilentlyContinue
$out += " RemoteAddress : $($tcp.RemoteAddress)"
$out += " TcpTestSucceeded : $($tcp.TcpTestSucceeded)"
$out += ""
$out += "HTTP test (POST /v1/messages, expect 401):"
try {
$resp = Invoke-WebRequest -Uri https://api.anthropic.com/v1/messages -Method POST -UseBasicParsing -TimeoutSec 10 -ErrorAction Stop
$out += " Status: $($resp.StatusCode) - UNEXPECTED (should be 401)"
} catch {
$sc = $_.Exception.Response.StatusCode.value__
if ($sc) {
$out += " Status: $sc $($_.Exception.Response.StatusCode) (401 = OK / a ajuns la API)"
} else {
$out += " ERROR: $($_.Exception.Message)"
}
}
$out += '```'
$out += ""
$out += "## 6. Securitate"
$out += '```'
$out += "Antivirus products:"
try {
$av = Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct -ErrorAction Stop
$out += ($av | Select-Object displayName, productState | Format-Table -AutoSize | Out-String).Trim()
} catch {
$out += " (could not query - $_)"
}
$out += ""
$out += "Defender state:"
try {
$mp = Get-MpPreference
$out += " DisableRealtimeMonitoring: $($mp.DisableRealtimeMonitoring)"
$out += " EnableNetworkProtection : $($mp.EnableNetworkProtection)"
$st = Get-MpComputerStatus
$out += " AntivirusEnabled : $($st.AntivirusEnabled)"
$out += " RealTimeProtectionEnabled: $($st.RealTimeProtectionEnabled)"
} catch {
$out += " (need admin for full info)"
}
$out += ""
$out += "Firewall rules claude:"
$fwc = Get-NetFirewallRule -DisplayName "*claude*" -ErrorAction SilentlyContinue
if ($fwc) {
$out += ($fwc | Select-Object DisplayName, Enabled, Direction, Action | Format-Table -AutoSize | Out-String).Trim()
} else {
$out += " No claude rules"
}
$out += ""
$out += "Firewall rules node:"
$fwn = Get-NetFirewallRule -DisplayName "*node*" -ErrorAction SilentlyContinue
if ($fwn) {
$out += ($fwn | Select-Object DisplayName, Enabled, Direction, Action | Format-Table -AutoSize | Out-String).Trim()
} else {
$out += " No node rules"
}
$out += '```'
$out += ""
$out += "## 7. Sistem"
$out += '```'
$ver = Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion'
$out += "OS DisplayVersion: $($ver.DisplayVersion)"
$out += "Build : $($ver.CurrentBuild).$($ver.UBR)"
$out += "PowerShell : $($PSVersionTable.PSVersion)"
$out += "Architecture : $env:PROCESSOR_ARCHITECTURE"
$out += ""
$out += "Network profiles:"
$out += (Get-NetConnectionProfile | Select-Object Name, NetworkCategory, IPv4Connectivity, IPv6Connectivity | Format-Table -AutoSize | Out-String).Trim()
$out += ""
$out += "VPN-like adapters:"
$vpn = Get-NetAdapter | Where-Object { $_.InterfaceDescription -match 'VPN|TAP|WireGuard|Tailscale|ZeroTier|WARP|OpenVPN' }
if ($vpn) {
$out += ($vpn | Select-Object Name, InterfaceDescription, Status | Format-Table -AutoSize | Out-String).Trim()
} else {
$out += " none"
}
$out += '```'
$out += ""
$out += "## 8. Test minim Claude Code (CAPTUREAZA RETRY LOOP)"
$out += '```'
$out += "RULEAZA MANUAL in alt terminal si lipeste output-ul aici:"
$out += " claude --debug"
$out += "Apoi tasteaza: buna"
$out += "Asteapta 1-2 retries, apoi Ctrl+C si copiaza ULTIMELE 30-40 linii."
$out += '```'
$out -join "`r`n" | Out-File -FilePath $report -Encoding UTF8
Write-Host ""
Write-Host "Report written to: $report" -ForegroundColor Green
Write-Host "Locatie completa : $((Resolve-Path $report).Path)" -ForegroundColor Green