36 lines
1.7 KiB
PowerShell
36 lines
1.7 KiB
PowerShell
$password = ConvertTo-SecureString 'Paper123!@#' -AsPlainText -Force
|
|
$cred = New-Object System.Management.Automation.PSCredential('INTRANET\sysadmin', $password)
|
|
|
|
Write-Host "Fixing Sync Script SSH Commands..." -ForegroundColor Cyan
|
|
|
|
Invoke-Command -ComputerName 192.168.0.6 -Credential $cred -ScriptBlock {
|
|
$scriptPath = "C:\Shares\test\scripts\Sync-FromNAS.ps1"
|
|
$backupPath = "C:\Shares\test\scripts\Sync-FromNAS.ps1.backup-$(Get-Date -Format 'yyyyMMdd-HHmmss')"
|
|
|
|
Write-Host "[1] Backing up current script..." -ForegroundColor Yellow
|
|
Copy-Item $scriptPath $backupPath
|
|
Write-Host " Backup: $backupPath" -ForegroundColor Green
|
|
|
|
Write-Host ""
|
|
Write-Host "[2] Reading current script..." -ForegroundColor Yellow
|
|
$content = Get-Content $scriptPath -Raw
|
|
|
|
Write-Host ""
|
|
Write-Host "[3] Adding SSH key parameter to all SSH/SCP commands..." -ForegroundColor Yellow
|
|
$sshKeyPath = "$env:USERPROFILE\.ssh\id_ed25519"
|
|
|
|
# Replace ssh commands to include -i flag
|
|
$content = $content -replace 'ssh\s+root@', "ssh -i `"$sshKeyPath`" -o BatchMode=yes -o ConnectTimeout=10 root@"
|
|
# Replace scp commands to include -i flag
|
|
$content = $content -replace 'scp\s+', "scp -i `"$sshKeyPath`" -o BatchMode=yes -o ConnectTimeout=10 "
|
|
|
|
Write-Host ""
|
|
Write-Host "[4] Writing updated script..." -ForegroundColor Yellow
|
|
$content | Out-File $scriptPath -Encoding UTF8 -Force
|
|
Write-Host " [OK] Script updated" -ForegroundColor Green
|
|
|
|
Write-Host ""
|
|
Write-Host "[5] Verifying changes (showing first SSH command)..." -ForegroundColor Yellow
|
|
$content | Select-String "ssh -i" | Select-Object -First 3 | ForEach-Object { Write-Host " $_" -ForegroundColor Gray }
|
|
}
|