Передать сохраненные кредиты в файл bat - PullRequest
0 голосов
/ 01 октября 2019

Я пытаюсь выяснить, есть ли способ взять сохраненные учетные данные в хранилище Windows Cred и передать их в файл bat, который нуждается в учетных данных. Я нашел очень старый файл bat, в котором есть имя пользователя и пароль в виде открытого текста. Они используются для аутентификации на портале и должны быть прочитаны летучей мышью в виде открытого текста. На моем сервере хранятся учетные данные, которые я хочу использовать, чтобы я мог закрыть этот пробел в безопасности, но я не уверен на 100%, как передать пароль, потому что он должен быть в открытом виде. Вот что у меня есть:

$creds = Get-StoredCredential -Target "Username"
$password = $creds.Password
$username = $creds.UserName
Start-Process cmd.exe "/c C:\trigger.bat `"argument1`" $username $password `"Argument2`" Argument3" -NoNewWindow -Verbose

Когда я вписываю пароль в текстовом виде в моей строке, он работает. Если я использую $ пароль, он выдает ошибку аутентификации. Я предполагаю, что это потому, что $ пароль является сохраненным PSObject и не передается в cmd «правильно». Есть ли способ обойти это?

PS: Get-StoredCredential из модуля CredentialManager.

Ответы [ 2 ]

2 голосов
/ 01 октября 2019

Если $creds содержит объект PSCredential, то вы сможете заменить это:

$password = $creds.Password

следующим:

$password = $creds.GetNetworkCredential().Password
2 голосов
/ 01 октября 2019

Get-StoredCredential, при вызове без -AsCredentialObject, дает PSCredential экземпляров . Свойство PSCredential.Password , к которому вы обращаетесь, не String, а SecureString, поэтому вы не можете получить пароль в виде простого текста, как пытаетесь.

На основе Преобразование защищенной строки в обычный текст вы можете использовать PSCredential в , получить NetworkCredential, а затем использовать Password property ...

$password = $creds.GetNetworkCredential().Password

В любом случае, когда вы получаете ошибку аутентификации, используя $username и $password, вы должны убедиться, что эти переменные содержат значения, которые вы ожидаете от них.

...