调用另一个powershell传递参数使用不同的信用

时间:2014-01-24 19:52:41

标签: powershell

我想从我的主要PowerShell脚本中调用另一个辅助PowerShell脚本。我想从主脚本传递一个参数,辅助脚本需要username参数,我想从主服务器传递给它,然后让我调用的辅助脚本使用不同的凭据。我想我可以使用invoke-command,我只是不知道所有的语法,任何人都能发布一些我想要完成的例子,然后如果需要的话我会填补空白? 提前致谢! : - )

2 个答案:

答案 0 :(得分:1)

假设您的辅助脚本如下所示:

param (
    [string] $Username = $args[0]
)
Write-Output -InputObject $Username;

您可以使用Start-Process cmdlet以备用凭据启动脚本。

$Credential = Get-Credential;
Start-Process -Wait -NoNewWindow -FilePath powershell.exe -ArgumentList '"c:\path\to my\file.ps1" -Username "UsernameGoesHere!"' -Credential $Credential;

或者您可以使用Invoke-Command cmdlet:

Invoke-Command -FilePath 'c:\path\to my\script.ps1' -Credential $Credential -ArgumentList "UsernameGoesHere!";

答案 1 :(得分:0)

我得到了它,感谢Trevor Sullivan指出我正确的方向。 我最后只是将我的第二个ps1文件放入一个scriptblock,并将其作为一个作业运行,然后从主脚本中传递参数,就像这样

$job = Start-Job -scriptblock {
 param ($username)
 some code to run against the variable that was passed in
 } -Args $target -credential $Cred

$ target是我要传递给我的scriptblock的变量 $ username是scriptblock接受的参数 感谢。