我想在另一个 ps1 文件中传递参数,但我无法发送参数
我的代码:
#loginWindow.ps1
$userName=$var_txt_username.Text
[SecureString] $password=ConvertTo-SecureString $var_txt_password.Password -AsPlainText -Force
$myPath="$path\MainWindow.ps1"
$window.Close()
Invoke-Expression "$myPath $userName $password"
#MainWindow.ps1
param(
[string]$userName ,
[secureString]$password
)
和我的错误:
无法处理参数“密码”的参数转换。无法将“System.String”类型的“System.Security.SecureString”值转换为“System.Security.SecureString”类型。
感谢您的帮助
答案 0 :(得分:0)
这里的问题在于 Invoke-Expression
,您应该始终尽量避免使用 cmdlet。见this
您可以通过点源来运行您的 MainWindow 脚本:
. $myPath $userName $password
或使用 call operator
& $myPath $userName $password