期待和使用PowerShell生成

时间:2013-07-31 08:37:43

标签: powershell command-line-interface expect

有没有办法预期和使用PowerShell生成。 我必须用powershell解析一个CLI程序,它要求输入密码是否可以通过powershell输入此密码。 在perl或python中甚至在bash中你可以使用expect / spawn 在PowerShell中有任何解决方案吗?

2 个答案:

答案 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