我正在编写一个项目,在其中运行PowerShell脚本并创建一个新的PSSession,如下所示:
PowerShell.exe -Command enter-pssession myUser -credential userName
当我运行它时,它会打开一个对话框,提示用户输入密码。但是,我希望用户能够输入密码以及上述行的其余部分,而不必为提示而烦恼。我对PowerShell非常陌生,我在文档中找到的所有内容都只能提供提示输入密码的方法。这是可以在PowerShell中完成的吗?谢谢!
>Rahul给了你一个答案,让你完全避免密码提示,但冒着以明文形式输入用户密码的风险。另一种选择是允许用户在弹出框中填写一次密码,然后保存密码,这样他们就永远不需要重新输入密码。
要弹出用户名和密码提示并将结果保存到文件中,请执行以下操作:
Get-Credential | Export-Clixml "mycredentials.xml"
然后,您可以将其读入变量:
$cred = Import-Clixml "mycredentials.xml"
new-pssession -computername <computer> -credential $cred
或组合两个命令:
new-pssession -computername <computer> -credential (Import-Clixml "mycredentials.xml")
以这种方式将凭据保存到文件时,将使用当前登录用户的登录凭据安全地加密密码。
是的,您可以在打开如下所示的new-pssession
时提供密码
$passwd = convertto-securestring -AsPlainText -Force -String <your password>
$cred = new-object -typename System.Management.Automation.PSCredential
-argumentlist "DomainUser",$passwd
$session = new-pssession -computername <computer> -credential $cred
现有的答案不是最新的,这是它目前的工作方式:
$password = ConvertTo-SecureString "password" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ("username", $password)
$session = Enter-PSSession -computername "computername" -credential $cred
以下是有关Microsoft凭据的一些文档:https://learn.microsoft.com/en-us/powershell/scripting/learn/deep-dives/add-credentials-to-powershell-functions?view=powershell-7.2