如何在 PowerShell 脚本中传递 Windows 凭据?
How to pass Windows credential in a PowerShell script?
我正在编写 PS 脚本以在 Chrome 浏览器中自动打开 URL。我创建了一个凭据对象并将其传递给 Start-Process
,如下所示。
$username = Read-Host 'What is your username?'
$password = Read-Host 'What is your password?' -AsSecureString
$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))
Start-Process -FilePath Chrome -ArgumentList $url -Credential $credentials
我希望 Chrome 浏览器使用凭据对象通过 URL 打开。但它抛出如下错误。
Start-Process : This command cannot be executed due to the error: Logon failure: unknown user name or bad password.
注意: 如果我手动将 Windows 安全凭据传递给 URL,URL 工作正常,因此我的凭据很好.在传递 Windows 安全凭证时感觉有问题。不知道怎么了。
$userName = "Pandiyan"
$secpasswd = ConvertTo-SecureString "mypasswordiscool" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $secpasswd
$url = "localhost/atomicscope"
Start-Process -FilePath "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -ArgumentList $url -Credential $mycreds
您还应该指定 chrome 的路径并重试。而不是 readhost 直接提供凭据,它应该立即触发 chrome。如果有用户在等待在控制台中输入,那很好。否则没有用 powershell
自动化这个
您已将密码读取为安全字符串,因此在创建凭据对象时无需再次执行此操作。 ConvertTo-SecureString
仅在 $password
包含明文密码时才需要。
这会做你想做的事:
$credentials = New-Object Management.Automation.PSCredential $username, $password
我正在编写 PS 脚本以在 Chrome 浏览器中自动打开 URL。我创建了一个凭据对象并将其传递给 Start-Process
,如下所示。
$username = Read-Host 'What is your username?'
$password = Read-Host 'What is your password?' -AsSecureString
$credentials = New-Object System.Management.Automation.PSCredential -ArgumentList @($username,(ConvertTo-SecureString -String $password -AsPlainText -Force))
Start-Process -FilePath Chrome -ArgumentList $url -Credential $credentials
我希望 Chrome 浏览器使用凭据对象通过 URL 打开。但它抛出如下错误。
Start-Process : This command cannot be executed due to the error: Logon failure: unknown user name or bad password.
注意: 如果我手动将 Windows 安全凭据传递给 URL,URL 工作正常,因此我的凭据很好.在传递 Windows 安全凭证时感觉有问题。不知道怎么了。
$userName = "Pandiyan"
$secpasswd = ConvertTo-SecureString "mypasswordiscool" -AsPlainText -Force
$mycreds = New-Object System.Management.Automation.PSCredential -ArgumentList $username, $secpasswd
$url = "localhost/atomicscope"
Start-Process -FilePath "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -ArgumentList $url -Credential $mycreds
您还应该指定 chrome 的路径并重试。而不是 readhost 直接提供凭据,它应该立即触发 chrome。如果有用户在等待在控制台中输入,那很好。否则没有用 powershell
自动化这个您已将密码读取为安全字符串,因此在创建凭据对象时无需再次执行此操作。 ConvertTo-SecureString
仅在 $password
包含明文密码时才需要。
这会做你想做的事:
$credentials = New-Object Management.Automation.PSCredential $username, $password