检查PowerShell SecureString是否具有值

时间:2018-08-29 22:05:44

标签: powershell

我正在寻找一个以SecureString存储的用户输入的密码是否为空。

当前,我正在检查长度(即if ($password.Length -eq 0) { # prompt again }),这似乎可行。如果那是“正确”的方法,那就太好了。否则我想知道该怎么做。

我是PowerShell的新手,因此非常感谢任何指导。提前谢谢。

1 个答案:

答案 0 :(得分:2)

您可以通过将密码转换为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
}