有没有办法预期和使用PowerShell生成。 我必须用powershell解析一个CLI程序,它要求输入密码是否可以通过powershell输入此密码。 在perl或python中甚至在bash中你可以使用expect / spawn 在PowerShell中有任何解决方案吗?
答案 0 :(得分: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
答案 1 :(得分:-1)
您可以使用Read-Host提示用户输入。有关详细信息,请参阅here。
$pass = Read-Host 'What is your password?' -AsSecureString
$decodedpass = [System.Runtime.InteropServices.Marshal]::PtrToStringAuto([System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pass))
我确定你想用spawn做什么,但你可以通过调用它们来执行其他脚本或可执行文件
.\MyOtherScript.ps1