PowerShell Posh-SSH SCP凭证密码为空

时间:2019-07-09 09:02:32

标签: powershell scp

我尝试将具有PowerShell脚本的文件从Windows Server复制到具有SCP的远程服务器。因此,我导入了Posh-SSH Modul。我需要使用带有公钥/私钥的身份验证。我使用的SCP命令如下:

Set-SCPFile -ComputerName "RemoteServer" -Credential "Username" -KeyFile "$SSHKeyFile" -RemotePath '$RemotePath' -LocalFile '$OutFile'

当我不对密钥对使用密码短语时,可以将密码留空,然后单击“确定”。如果我使用密码短语,则输入密码短语作为密码,然后单击“确定”。两种选择都可以正常工作。

但是因为我想将此作为脚本运行,所以我无法在每次脚本运行时都单击“确定”。因此,我尝试将凭据保存在变量中。但是随后Set-SCPFile不再起作用。我总是得到以下凭证请求窗口。

credential request window

以下代码是我如何尝试获取凭据的方法。 首先,我将它们存储在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

0 个答案:

没有答案