Найти в Дзене
19 подписчиков

Бекап сетевых устройств по SSH/sftp

Запускаем скрипт для ввода и шифрования пароля в файл.
===============================
Read-Host "Enter password" -AsSecureString | ConvertFrom-SecureString | Out-File "b:\test\pass.txt"
===============================
Непосредственно скрипт который копирует файл на ПК
$hostname = "10.0.0.1"
$username = "user"
$localPath = "b:\test"
$passwordFile = "b:\test\pass.txt"
$winscpPath = "C:\Program Files (x86)\WinSCP\winscp.com"
$remoteFile = "/cfg/running-config"

# Чтение пароля
$securePassword = Get-Content $passwordFile | ConvertTo-SecureString
$credentials = New-Object System.Management.Automation.PSCredential($username, $securePassword)
$plainPassword = $credentials.GetNetworkCredential().Password

# Выполняем команды по отдельности
& $winscpPath /command `
   "open sftp://${username}:${plainPassword}@${hostname}/", `
   "lcd `"$localPath`"", `
   "get `"$remoteFile`"", `  # Копируем конкретный файл
   "exit"
Clear-Variable plainPassword
Около минуты