我正在编写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安全证书时感觉有些错误。不知道怎么了。
答案 0 :(得分: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自动化
答案 1 :(得分:1)
您已经将密码作为安全字符串读取,因此在创建凭据对象时无需再次执行该操作。仅当ConvertTo-SecureString
包含明文密码时才需要$password
。
这将满足您的要求:
$credentials = New-Object Management.Automation.PSCredential $username, $password