# Define variables $remoteServer = "10.0.1.254" $remoteUser = "your_username" # Replace with your username on the remote server $remotePassword = "your_password" # Replace with your password for the remote server $remotePath = "/volume/autobackup" $localPath = "D:/Shared/unifibackup/" $zipFileName = "backup_$(Get-Date -Format yyyy-MM-dd).zip" $pscpPath = "C:\path\to\pscp.exe" # Update with the correct path to pscp.exe $localTempFolder = "$env:TEMP\autobackup" # Create temporary folder if (-Not (Test-Path $localTempFolder)) { New-Item -ItemType Directory -Path $localTempFolder | Out-Null } # SCP copy the remote folder to the local temp directory using the password $pscpCommand = "& `"$pscpPath`" -pw `"$remotePassword`" -r `"$remoteUser@$remoteServer:$remotePath/*`" `"$localTempFolder`"" Invoke-Expression $pscpCommand # Check if the files were successfully copied if (Test-Path "$localTempFolder\*") { # Compress the files into a zip Compress-Archive -Path "$localTempFolder\*" -DestinationPath "$localPath\$zipFileName" # Cleanup the temporary folder Remove-Item -Recurse -Force $localTempFolder Write-Host "Backup completed and saved as $localPath\$zipFileName" } else { Write-Host "Failed to copy files from remote server." } # Clear the password variable from memory for security $remotePassword = $null