我正在编写一个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
我希望使用凭据对象使用URL打开Chrome浏览器。但它抛出的错误如下。
启动进程:由于错误,无法执行此命令:登录失败:用户名未知或密码错误。
注意:如果我手动将 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)GoogleChromeApplicationchrome.exe" -ArgumentList $url -Credential $mycreds
您还应该指定 chrome 的路径,然后重试。而不是读取主机直接提供凭据,它应该立即触发 chrome。如果有用户等待在控制台中键入,则很好。否则,使用 powershell
您已将密码读取为安全字符串,因此在创建凭据对象时无需再次执行此操作。 仅当$password
包含明文密码时,才需要ConvertTo-SecureString
。
这将执行您想要的操作:
$credentials = New-Object Management.Automation.PSCredential $username, $password