【发布时间】:2019-10-20 10:21:40
【问题描述】:
我正在编写一个脚本,该脚本必须在运行过程中更改用户才能访问网络文件夹。我已经想出了如何让凭据工作,但现在无法理解如何将参数传递给正在调用的第二个脚本。我目前拥有的代码:
$myJob = Start-Job -ScriptBlock {& "\\my\folder\path\script.ps1" -serverName $serverName -serverInstance $serverInstance} -Credential $cred
$myJob | Wait-Job
$myJob | Receive-Job -Keep
我需要将serverName 和serverInstance 变量传递给Start-Job 正在运行的脚本,同时仍然能够使用凭据。有没有办法做到这一点?
我已经调查过Invoke-Command 和Invoke-Expression,但它们都不适合这种情况。 Invoke-Command 不适用于远程计算机/驱动器,并且 Invoke-Expression 不适用于凭据。我尝试了here 提供的答案,但也无法正确传递参数。
非常感谢任何帮助,因为我已经解决这个问题几个小时了。我确定我遗漏了一些明显的东西。
【问题讨论】:
-
您可以在此处使用
using关键字:-serverName $using:serverName -serverInstance $using:serverinstance。 -
或
Start-Job -ArgumentList $var1,$var2 -ScriptBlock {$args[0],$args[1]} -
@AdminOfThings 太棒了,谢谢!那工作得很好。我从来没有遇到过
$using,所以我有一些新东西要研究和学习。
标签: powershell