如何在 Powershell 脚本中将密码作为参数传递并转换为安全字符串

bha*_*mar 6 powershell

我正在使用下面的 powershell 脚本来执行

param([string]$Server,[string]$locusername,[string]$locpassword)

$password = '$locpassword' | ConvertTo-SecureString -asPlainText -Force
$username = $locusername 
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
Run Code Online (Sandbox Code Playgroud)

我收到错误

无法将参数绑定到参数“String”,因为它为空。+ CategoryInfo : InvalidData: (:) [ConvertTo-SecureString]、ParameterBindingValidationException + ExcellentQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed、Microsoft.PowerShell.Commands.ConvertToSecureStringCommand

Clu*_*fin -2

使用双引号代替单引号,以进行字符串扩展

$password = "$locpassword" | ConvertTo-SecureString -asPlainText -Force 
Run Code Online (Sandbox Code Playgroud)

完整代码:

param([string]$Server,[string]$locusername,[string]$locpassword)

$password = "$locpassword" | ConvertTo-SecureString -asPlainText -Force 
$username = $locusername 
$cred = New-Object System.Management.Automation.PSCredential($username,$password)
Run Code Online (Sandbox Code Playgroud)