【发布时间】:2014-01-24 19:52:41
【问题描述】:
我想从我的主 powershell 脚本中调用另一个辅助 powershell 脚本。我想从主脚本传递一个参数,辅助脚本需要用户名参数,我想从主脚本传递给它,然后让我调用的辅助脚本使用不同的凭据。我想我也许可以使用invoke-command,我只是不知道所有的语法,任何人都可以发布一些我想要完成的例子,然后如果需要我会填空吗? 提前致谢! :-)
【问题讨论】:
标签: powershell
我想从我的主 powershell 脚本中调用另一个辅助 powershell 脚本。我想从主脚本传递一个参数,辅助脚本需要用户名参数,我想从主脚本传递给它,然后让我调用的辅助脚本使用不同的凭据。我想我也许可以使用invoke-command,我只是不知道所有的语法,任何人都可以发布一些我想要完成的例子,然后如果需要我会填空吗? 提前致谢! :-)
【问题讨论】:
标签: powershell
假设您的辅助脚本如下所示:
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!";
【讨论】:
Username 参数。
我明白了,感谢 Trevor Sullivan 为我指明了正确的方向。 我最终只是将我的第二个 ps1 文件放入一个脚本块中,并将其作为作业运行,并将主脚本中的参数传递给它,就像这样
$job = Start-Job -scriptblock {
param ($username)
some code to run against the variable that was passed in
} -Args $target -credential $Cred
$target 是我要传递给脚本块的变量 $username 是脚本块接受的参数 谢谢。
【讨论】: