![](/img/trans.png)
[英]How to Pass PSCredential object from C# code to Powershell Function
[英]Powershell - pass PSCredential object to new command window
我有一个Powershell脚本,它调用Get-Credential。 稍后在脚本和子脚本中,将针对多个服务器使用输入的凭据。
该代码如下所示:
$credentials = get-credential
CMD /c start powershell.exe -noexit -File subscript.ps1 $credentials
问题在subscript.ps1内部,我有这段代码只是为了看看即将发生的事情:
$args.length
$args[0]
这给了我1 System.Management.Automation.PSCredential
如您所见,它没有传递Get-Credential调用返回的实际对象。
我的猜测是这种情况正在发生,因为我们正在通过新的命令窗口调用脚本。 我们需要打开一个新的命令窗口,因为我们需要打开4个不同的subscript.ps1(具有用于并行处理的不同参数)。
有任何想法吗?
谢谢,安德鲁
如果您使用的是PowerShell V3,请使用以下语法启动异步后台任务
$job = Start-Job -ScriptBlock {param($cred) . C:\test.ps1 $cred} -ArgumentList $cred
wait-job $job
receive-job $job
由于它似乎已经在PowerShell中Start-Process
,因此请使用接受-Credential
的Start-Process
cmdlet。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.