Files
claudetools/diagnose-sync-issue.ps1

62 lines
2.9 KiB
PowerShell

$password = ConvertTo-SecureString 'Paper123!@#' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential('INTRANET\sysadmin', $password)
Write-Host "================================================" -ForegroundColor Cyan
Write-Host "Sync Diagnostic Report" -ForegroundColor Cyan
Write-Host "================================================" -ForegroundColor Cyan
Write-Host ""
Invoke-Command -ComputerName 192.168.0.6 -Credential $cred -ScriptBlock {
Write-Host "[1] Checking Sync Task Status..." -ForegroundColor Yellow
$task = Get-ScheduledTask -TaskName "Sync-FromNAS" -ErrorAction SilentlyContinue
if ($task) {
Write-Host " State: $($task.State)" -ForegroundColor White
$taskInfo = Get-ScheduledTaskInfo -TaskName "Sync-FromNAS"
Write-Host " Last Run: $($taskInfo.LastRunTime)" -ForegroundColor White
Write-Host " Last Result: 0x$($taskInfo.LastTaskResult.ToString('X'))" -ForegroundColor White
Write-Host " Next Run: $($taskInfo.NextRunTime)" -ForegroundColor White
}
Write-Host ""
Write-Host "[2] Checking for Running Sync Processes..." -ForegroundColor Yellow
$syncProcs = Get-Process -Name pwsh,powershell -ErrorAction SilentlyContinue |
Where-Object { $_.CommandLine -like "*Sync-FromNAS*" }
if ($syncProcs) {
Write-Host " Found $($syncProcs.Count) running sync process(es)" -ForegroundColor Red
$syncProcs | ForEach-Object {
Write-Host " PID $($_.Id): Started $($_.StartTime)" -ForegroundColor White
}
} else {
Write-Host " No sync processes running" -ForegroundColor Green
}
Write-Host ""
Write-Host "[3] Checking commonSources Configuration..." -ForegroundColor Yellow
$syncScript = Get-Content "C:\Shares\test\scripts\Sync-FromNAS.ps1" -Raw
if ($syncScript -match '\$commonSources\s*=\s*@\((.*?)\)') {
Write-Host " Found commonSources config:" -ForegroundColor White
Write-Host $matches[0] -ForegroundColor Gray
}
Write-Host ""
Write-Host "[4] Last 10 Sync Log Entries..." -ForegroundColor Yellow
if (Test-Path "C:\Shares\test\scripts\sync-from-nas.log") {
Get-Content "C:\Shares\test\scripts\sync-from-nas.log" | Select-Object -Last 10 |
ForEach-Object { Write-Host " $_" -ForegroundColor Gray }
}
Write-Host ""
Write-Host "[5] Testing SSH Connection to NAS..." -ForegroundColor Yellow
$sshTest = ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@192.168.0.9 "echo OK" 2>&1
if ($sshTest -eq "OK") {
Write-Host " SSH connection: OK" -ForegroundColor Green
} else {
Write-Host " SSH connection: FAILED - $sshTest" -ForegroundColor Red
}
}
Write-Host ""
Write-Host "================================================" -ForegroundColor Cyan
Write-Host "Diagnostic Complete" -ForegroundColor Cyan
Write-Host "================================================" -ForegroundColor Cyan