Files
claudetools/projects/dataforth-dos/deployment-scripts/fix-ad2-scp-line-endings.ps1

48 lines
1.8 KiB
PowerShell

# Fix AD2 Sync-FromNAS.ps1 to preserve CRLF line endings
# Add -O flag to SCP commands to use legacy protocol (binary mode)
$Username = "INTRANET\sysadmin"
$Password = ConvertTo-SecureString "Paper123!@#" -AsPlainText -Force
$Cred = New-Object System.Management.Automation.PSCredential($Username, $Password)
Write-Host "[INFO] Connecting to AD2..."
# Read the current script
$ScriptContent = Invoke-Command -ComputerName 192.168.0.6 -Credential $Cred -ScriptBlock {
Get-Content 'C:\Shares\test\scripts\Sync-FromNAS.ps1' -Raw
}
Write-Host "[INFO] Current script retrieved"
# Create backup
$BackupName = "Sync-FromNAS_backup_$(Get-Date -Format 'yyyyMMdd_HHmmss').ps1"
Invoke-Command -ComputerName 192.168.0.6 -Credential $Cred -ScriptBlock {
param($Content, $Backup)
Set-Content "C:\Shares\test\scripts\$Backup" -Value $Content
} -ArgumentList $ScriptContent, $BackupName
Write-Host "[OK] Backup created: $BackupName"
# Fix the script - Add -O flag to SCP commands
$FixedContent = $ScriptContent -replace '& \$SCP -o StrictHostKeyChecking', '& $SCP -O -o StrictHostKeyChecking'
# Count changes
$Changes = ([regex]::Matches($FixedContent, '-O -o')).Count
Write-Host "[INFO] Adding -O flag to $Changes SCP commands"
# Upload fixed script
Invoke-Command -ComputerName 192.168.0.6 -Credential $Cred -ScriptBlock {
param($Content)
Set-Content 'C:\Shares\test\scripts\Sync-FromNAS.ps1' -Value $Content
} -ArgumentList $FixedContent
Write-Host "[SUCCESS] Sync-FromNAS.ps1 updated on AD2"
Write-Host ""
Write-Host "[INFO] The -O flag forces legacy SCP protocol (binary mode)"
Write-Host "[INFO] This prevents line ending conversion (CRLF preserved)"
Write-Host ""
Write-Host "Next steps:"
Write-Host " 1. Redeploy DEPLOY.BAT and UPDATE.BAT to AD2"
Write-Host " 2. Wait for next sync cycle (runs every 15 minutes)"
Write-Host " 3. Verify CRLF preserved on NAS"