繁体   English   中英

Powershell-将PSCredential对象传递到新的命令窗口

[英]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 ,因此请使用接受-CredentialStart-Process cmdlet。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM