传递secureString参数与调用表达式



我想在另一个ps1文件中传递参数,但我有问题发送参数

我代码:

#loginWindow.ps1
$userName=$var_txt_username.Text
[SecureString] $password=ConvertTo-SecureString $var_txt_password.Password -AsPlainText -Force
$myPath="$pathMainWindow.ps1"
$window.Close()
Invoke-Expression "$myPath $userName $password"

#MainWindow.ps1
param(
[string]$userName ,
[secureString]$password
)

和我的错误:

不能处理参数'password'的参数转换。无法转换"System.Security.SecureString"type"System.String"输入"System.Security.SecureString"

谢谢你的帮助

这里的问题是Invoke-Expression,这是一个您应该尽量避免的cmdlet。看到这个

你可以运行你的MainWindow脚本:

. $myPath $userName $password

或使用调用操作符

& $myPath $userName $password

最新更新