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