powershell - 如何确保输入密码?

标签 powershell powershell-2.0

我正在尝试从用户那里获取密码。

如果他只是不输入任何内容(仅按Enter键),则应该发出警告。

$NewUserPassword = Read-Host -assecurestring "Please enter New Run time user password"

$NewUserPassword=$NewUserPassword.Trim()
If ( ($NewUserPassword -eq $null) -or ($NewUserPassword -eq "") ){

    Write-Warning "Please enter valid password. Script execution is stopped"
    Exit
}

但是脚本抛出如下错误

Method invocation failed because [System.Security.SecureString] doesn't contain a method named 'Trim'.



但是,如果我删除trim()方法,该应用程序仍不会发出警告。

可能是什么原因?如何获得有效密码?

最佳答案

您不能直接检查SecureString实例的值,并且与String实例进行比较无论如何都是徒劳的。但是,它具有Length属性,可用于检查其是否为空:

$NewUserPassword = Read-Host -assecurestring "Please enter New Run time user password"
If ($NewUserPassword.Length -eq 0){
    Write-Warning "Please enter valid password. Script execution is stopped"
    Exit
}

关于powershell - 如何确保输入密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11759852/

相关文章:

powershell - 使用 Add-Content PowerShell 将文本添加到现有文件的新行

azure - Az Powershell 函数 - 如何获取 JSON 格式的输出

powershell - 如何将无限 while 循环转换为管道语句

windows - ZendServer 在 Windows 上安装 PEAR。无法提取 package.xml 文件

powershell - 计算包含所有匹配字符串的文件,即 AND 运算符?

git - 发出 git log 命令时 PowerShell 挂起

powershell - 使用 PowerShell 的 Import-Csv cmdlet 将 CSV 类型快速转换为原始类型的方法?

PowerShell 远程处理给出 "Access is Denied"错误

powershell - 从格式为 "HH:mm:ss,fff"的字符串计算总秒数

powershell - 使用可能指定或未指定的参数运行内置 cmdlet