使用PowerShell凭据而不提示输入密码?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (22)

知道有一个Restart-Computer,并且我可以通过凭据,但如果我的域是,例如mydomain,我的用户名是myuser我的密码是mypassword使用它的正确语法是什么?

提问于
用户回答回答于

创建一个文件来存储密码(作为加密字符串)。下面的行将提示输入密码,然后将其存储在c:\mysecurestring.txt加密的字符串。你只需要这样做一次:

read-host -assecurestring | convertfrom-securestring | out-file C:\mysecurestring.txt

无论你在哪里看到-Credential参数,这意味着可以传递一个PSCredential...。所以在你的情况下:

$username = "domain01\admin01"
$password = Get-Content 'C:\mysecurestring.txt' | ConvertTo-SecureString
$cred = new-object -typename System.Management.Automation.PSCredential `
         -argumentlist $username, $password

$serverNameOrIp = "192.168.1.1"
Restart-Computer -ComputerName $serverNameOrIp `
                 -Authentication default `
                 -Credential $cred
                 <any other parameters relevant to you>

用户回答回答于

这是代码:

$username = "John Doe"
$password = "ABCDEF"
$secstr = New-Object -TypeName System.Security.SecureString
$password.ToCharArray() | ForEach-Object {$secstr.AppendChar($_)}
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username, $secstr

$cred将获得来自JohnDoe的密码“ABCDEF”的凭据

$password = convertto-securestring -String "notverysecretpassword" -AsPlainText -Force

扫码关注云+社区