Security.SecureString参数不接受字符串

Jel*_*phy 6 passwords powershell parameter-passing

将字符串作为参数传递给此参数时:

[Parameter(Mandatory=$true)]
[ValidateNotNullOrEmpty()]
[Security.SecureString]$password=$(Throw "Password required.")
Run Code Online (Sandbox Code Playgroud)

使用-password参数时出现此错误.

无法将System.String类型转换为System.Security.SecureString类型

如果我没有传递-password参数,则会显示提示并接受输入.

gve*_*vee 11

你不能传递一个字符串; 你必须传递一个安全的字符串

function Get-PasswordThing {
    Param (
        [Parameter(Mandatory=$true)]
        [ValidateNotNullOrEmpty()]
        [Security.SecureString]$password=$(Throw "Password required.")
    )

    Process {
        Write-Host "cool"
    }
}

[string]$password = "hello"
[Security.SecureString]$securePassword = ConvertTo-SecureString $password -AsPlainText -Force
Get-PasswordThing -password $securePassword

# inline
Get-PasswordThing -password (ConvertTo-SecureString $password -AsPlainText -Force)
Run Code Online (Sandbox Code Playgroud)