有什么办法可以期待并使用powershell生成。我必须用powershell解析一个要求输入密码的CLI程序有没有办法通过powershell输入这个密码。在 perl 或 python 中,即使在 bash 中,您也可以使用 expect/spawn 在 powershell 中有什么解决方案吗?
问问题
1051 次
2 回答
1
一种方法是使用加密密码创建一个文本文件,然后根据需要在尽可能多的脚本中将此文件称为密码。
创建一次密码文件:
$pwd = Read-Host 'Enter password for encrypting:' -AsSecureString | ConvertFrom-SecureString | Out-File -Path 'C:\SpecialFiles\CLIPassword.txt'
然后,您可以在需要时使用它:
$pass = (Get-Content -Path 'C:\SpecialFiles\CLIPassword.txt' | ConvertTo-SecureString)
$creds = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList (<insert CLI UserName>, $pass)
然后,当您需要向脚本提供用户名和密码时,您只需通过管道
$creds | <command>
或者如果该命令支持 -Credential 参数
<command> -Credential $creds
如果您的命令需要单独输入用户名和密码,您可以通过指定属性名称来实现:
<command> -UserName $creds.UserName -Password $creds.Password
于 2017-09-28T18:42:13.323 回答
-1
您可以使用 Read-Host 提示用户输入。请参阅此处了解更多信息。
$pass = Read-Host 'What is your password?' -AsSecureString
$decodedpass = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pass))
我确定你想用 spawn 做什么,但你可以通过调用它们来执行其他脚本或可执行文件
.\MyOtherScript.ps1
于 2013-07-31T15:47:39.087 回答