Files
claudetools/projects/dataforth-dos/deployment-scripts/fix-sync-use-keys.ps1

28 lines
1.4 KiB
PowerShell

$password = ConvertTo-SecureString 'Paper123!@#' -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential('INTRANET\sysadmin', $password)
Write-Host "Fixing Sync Script to Use SSH Keys..." -ForegroundColor Cyan
Invoke-Command -ComputerName 192.168.0.6 -Credential $cred -ScriptBlock {
$scriptPath = "C:\Shares\test\scripts\Sync-FromNAS.ps1"
Write-Host "[1] Reading script..." -ForegroundColor Yellow
$content = Get-Content $scriptPath -Raw
Write-Host "[2] Removing password authentication options..." -ForegroundColor Yellow
# Remove all the password auth options and replace with key auth
$content = $content -replace '-o PreferredAuthentications=password -o PubkeyAuthentication=no -o PasswordAuthentication=yes', ''
# Add SSH key to Invoke-NASCommand function
$content = $content -replace '(\$SSH -o StrictHostKeyChecking)', '$$SSH -i "C:\Users\sysadmin\.ssh\id_ed25519" -o BatchMode=yes -o ConnectTimeout=10 -o StrictHostKeyChecking'
Write-Host "[3] Writing fixed script..." -ForegroundColor Yellow
$content | Out-File $scriptPath -Encoding UTF8 -Force
Write-Host " [OK] Script updated to use SSH keys" -ForegroundColor Green
Write-Host ""
Write-Host "[4] Showing fixed Invoke-NASCommand..." -ForegroundColor Yellow
$content | Select-String -Pattern "Invoke-NASCommand" -Context 0,5 | Select-Object -First 1
}