Я пытаюсь скопировать файл с помощью скрипта PowerShell со своего сервера Windows на удаленный сервер с SCP. Поэтому я импортирую модуль Posh-SSH. Мне нужно использовать аутентификацию с открытыми / закрытыми ключами. Я использую команду SCP:
Set-SCPFile -ComputerName "RemoteServer" -Credential "Username" -KeyFile "$SSHKeyFile" -RemotePath '$RemotePath' -LocalFile '$OutFile'
Когда я не использую фразу-пароль для пары ключей, я могу оставить пароль пустым и нажать «ОК». Если я использую фразу-пароль, я вводю фразу-пароль в качестве пароля и нажимаю «ОК». Оба варианта работают нормально.
Но так как я хочу запустить это как скрипт, я не могу нажимать «ОК» при каждом запуске скрипта. Поэтому я попытался сохранить учетные данные в переменной. Но тогда Set-SCPFile больше не работает. Я всегда получаю следующее окно запроса учетных данных.
Следующий код, как я пытаюсь получить свои учетные данные.
Сначала я храню их в файле XML.
Get-Credential | Export-CliXml -Path "$Path"
Файл XML выглядит следующим образом.
<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04"> <Obj RefId="0">
<TN RefId="0">
<T>System.Management.Automation.PSCredential</T>
<T>System.Object</T>
</TN>
<ToString>System.Management.Automation.PSCredential</ToString>
<Props>
<S N="UserName">User</S>
<SS N="Password">01000000d08c9ddf0115d1118c7a00c04fc297eb01000000ec5297fe98035547a93461b54a3da81f0000000002000098237490343500c000000010000000cef45e19b6629e6c9daa40d058a72699yxyxasd4800000a0000000000a69badaa01054df9ae2904dd25e2786c100000000104e0e84014aac216b445498d34955914000000dedf7c30caa626f3542c8f1cd068af8d18c0e420</SS>
</Props>
</Obj>
</Objs>
И тогда я могу импортировать их с помощью следующей команды в сценарии.
$Credentials = Import-CliXml -Path "$Path"
В другом скрипте это работает нормально. Может кто-то помочь мне с этим?
Большое спасибо.
KR