3

有什么办法可以期待并使用powershell生成。我必须用powershell解析一个要求输入密码的CLI程序有没有办法通过powershell输入这个密码。在 perl 或 python 中,即使在 bash 中,您也可以使用 expect/spawn 在 powershell 中有什么解决方案吗?

4

2 回答 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 回答