我想使用WinSCP .NET程序集与安全证书,当密码保护在外部文件中。PowerShell使用WinSCP .NET程序集与安全凭据
# Load WinSCP .NET assembly
Add-Type -Path "D:\WinSCPnet.dll"
# Setup session options
$sessionOptions = New-Object WinSCP.SessionOptions
$sessionOptions.Protocol = [WinSCP.Protocol]::Sftp
# Env
$sessionOptions.HostName = "blabla.com"
$sessionOptions.UserName = "UUUU"
#$sessionOptions.Password = "PPPP"
$sessionOptions.SshHostKeyFingerprint = "XXXXXXXXX"
$remotePath = "/home/UUUU/"
用硬编码密码,它的工作。如果我想使用securestring作为密码,我该怎么做?
我想:
read-host -assecurestring | convertfrom-securestring | out-file D:\securestring.txt
要保持安全的密码文件。然后,在我的剧本,我把它找回来:
$sessionOptions.Password = get-Content D:\securestring.txt | convertto-securestring
$Cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $sessionOptions.UserName, $sessionOptions.Password}
但它不工作...
WinSCP .NET程序集已经支持'SecureString',请参见[我的答案](http://stackoverflow.com/a/26279430/850848)。 – 2015-06-02 20:21:09