Проверьте, имеет ли PowerShell SecureString значение - PullRequest
0 голосов
/ 30 августа 2018

Я хочу убедиться, что введенный пользователем пароль, сохраненный как SecureString, не является пустым.

В настоящее время я проверяю длину (т.е. if ($password.Length -eq 0) { # prompt again }), и это, кажется, работает. Если это «правильный» способ сделать это, отлично. В противном случае я хочу знать, как я должен это сделать.

Я новичок в PowerShell, поэтому любые рекомендации будут очень благодарны. Спасибо заранее.

1 Ответ

0 голосов
/ 30 августа 2018

Вы можете получить доступ к паролю для проверки содержимого, преобразовав его в PsCredential объект.

Создайте SecureString (только для этой демонстрации - звучит так, как будто у вас уже есть):

$securePassword = ConvertTo-SecureString "TopSecretPassword" -AsPlainText -Force

Преобразовать в PsCredential объект (значение username не имеет значения):

$creds = New-Object System.Management.Automation.PSCredential("username", $securePassword)

Получить пароль обратно:

$cleartextPassword = $creds.GetNetworkCredential().Password

Проверьте, не заполнено ли оно:

if ([string]::IsNullOrWhiteSpace($cleartextPassword)) 
{ 
    # prompt again
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...