Как передать учетные данные Windows в сценарии PowerShell? - PullRequest
0 голосов
/ 31 декабря 2018

Я пишу сценарий PS для автоматического открытия URL-адреса в браузере Chrome.Я создал объект учетных данных и передал его 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: эта команда не может быть выполнена из-за ошибки: Ошибка входа: неизвестное имя пользователя или неверный пароль.

Примечание: URL работает нормально, если я передаю учетные данные безопасности Windows вручную, поэтому мои учетные данные хороши.Почувствуйте, что что-то не так при передаче учетных данных безопасности Windows.Не уверен, что не так.

Ответы [ 2 ]

0 голосов
/ 31 декабря 2018

Вы уже прочитали пароль как безопасную строку, поэтому вам не нужно делать это снова при создании объекта учетных данных.ConvertTo-SecureString потребуется только в том случае, если $password содержит открытый текстовый пароль.

Это будет делать то, что вы хотите:

$credentials = New-Object Management.Automation.PSCredential $username, $password
0 голосов
/ 31 декабря 2018
$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

...