0

我正在编写一个 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 :由于以下错误,无法执行此命令:登录失败:未知用户名或密码错误。

注意:如果我手动将 Windows 安全凭据传递给 URL,则 URL 可以正常工作,因此我的凭据很好。感觉在传递 Windows 安全凭据时出现问题。不知道出了什么问题。

4

2 回答 2

1
$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 自动执行此操作是没有用的

于 2018-12-31T11:23:45.637 回答
1

您已经将密码作为安全字符串读取,因此在创建凭证对象时无需再次执行此操作。只有在包含明文密码ConvertTo-SecureString时才需要。$password

这将做你想要的:

$credentials = New-Object Management.Automation.PSCredential $username, $password
于 2018-12-31T11:23:50.687 回答