75 lines
3.6 KiB
PowerShell
75 lines
3.6 KiB
PowerShell
$password = ConvertTo-SecureString 'Paper123!@#' -AsPlainText -Force
|
|
$cred = New-Object System.Management.Automation.PSCredential('INTRANET\sysadmin', $password)
|
|
|
|
Write-Host "================================================" -ForegroundColor Cyan
|
|
Write-Host "Fixing Zombie Sync Task" -ForegroundColor Cyan
|
|
Write-Host "================================================" -ForegroundColor Cyan
|
|
Write-Host ""
|
|
|
|
Invoke-Command -ComputerName 192.168.0.6 -Credential $cred -ScriptBlock {
|
|
Write-Host "[1/5] Stopping zombie sync task..." -ForegroundColor Yellow
|
|
try {
|
|
Stop-ScheduledTask -TaskName "Sync-FromNAS" -ErrorAction Stop
|
|
Write-Host " [OK] Task stopped" -ForegroundColor Green
|
|
} catch {
|
|
Write-Host " [ERROR] Failed to stop task: $($_.Exception.Message)" -ForegroundColor Red
|
|
}
|
|
Start-Sleep -Seconds 2
|
|
|
|
Write-Host ""
|
|
Write-Host "[2/5] Killing any hung PowerShell processes..." -ForegroundColor Yellow
|
|
$hungProcs = Get-Process -Name pwsh,powershell -ErrorAction SilentlyContinue |
|
|
Where-Object { $_.StartTime -lt (Get-Date).AddHours(-1) }
|
|
if ($hungProcs) {
|
|
$hungProcs | ForEach-Object {
|
|
Write-Host " Killing PID $($_.Id) (started $($_.StartTime))" -ForegroundColor White
|
|
Stop-Process -Id $_.Id -Force
|
|
}
|
|
Write-Host " [OK] Killed $($hungProcs.Count) hung process(es)" -ForegroundColor Green
|
|
} else {
|
|
Write-Host " [OK] No hung processes found" -ForegroundColor Green
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "[3/5] Testing SSH connectivity to NAS..." -ForegroundColor Yellow
|
|
$sshTest = & ssh -o ConnectTimeout=5 -o StrictHostKeyChecking=no root@192.168.0.9 "hostname" 2>&1
|
|
if ($LASTEXITCODE -eq 0) {
|
|
Write-Host " [OK] SSH connection successful: $sshTest" -ForegroundColor Green
|
|
} else {
|
|
Write-Host " [ERROR] SSH connection failed: $sshTest" -ForegroundColor Red
|
|
Write-Host " Attempting to test with password auth..." -ForegroundColor Yellow
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "[4/5] Testing NAS find command (what was hanging)..." -ForegroundColor Yellow
|
|
$findTest = & ssh -o ConnectTimeout=10 -o StrictHostKeyChecking=no root@192.168.0.9 "find /data/test/TS-4R/LOGS -name '*.DAT' -type f 2>/dev/null | head -5" 2>&1
|
|
if ($LASTEXITCODE -eq 0) {
|
|
Write-Host " [OK] Find command executed successfully" -ForegroundColor Green
|
|
Write-Host " Sample results: $($findTest -join ', ')" -ForegroundColor Gray
|
|
} else {
|
|
Write-Host " [ERROR] Find command failed: $findTest" -ForegroundColor Red
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "[5/5] Re-enabling sync task..." -ForegroundColor Yellow
|
|
try {
|
|
Start-ScheduledTask -TaskName "Sync-FromNAS" -ErrorAction Stop
|
|
Write-Host " [OK] Task re-enabled and started" -ForegroundColor Green
|
|
} catch {
|
|
Write-Host " [ERROR] Failed to start task: $($_.Exception.Message)" -ForegroundColor Red
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "[VERIFICATION] Task status after fix..." -ForegroundColor Yellow
|
|
$task = Get-ScheduledTask -TaskName "Sync-FromNAS"
|
|
$taskInfo = Get-ScheduledTaskInfo -TaskName "Sync-FromNAS"
|
|
Write-Host " State: $($task.State)" -ForegroundColor White
|
|
Write-Host " Last Run: $($taskInfo.LastRunTime)" -ForegroundColor White
|
|
Write-Host " Next Run: $($taskInfo.NextRunTime)" -ForegroundColor White
|
|
}
|
|
|
|
Write-Host ""
|
|
Write-Host "================================================" -ForegroundColor Cyan
|
|
Write-Host "Fix Complete - Monitor sync log for results" -ForegroundColor Cyan
|
|
Write-Host "================================================" -ForegroundColor Cyan
|