2012-04-09 91 views
15

powershell我想了解调用变量的最佳方式来启动作业,所以我不必编辑每个服务器的脚本,因为它将基于客户端我放置了我的脚本。PowerShell传递变量启动作业

$Servername = 'Server1' 
    $pingblock = { 
     pathping $servername | Out-File C:\client\PS\ServerPing.TXT 
    } 
    start-job $pingblock 

当我运行我的代码上面我只是得到一个文件的帮助,因为如果我忘记指定$ servername。

回答

22

使用-ArgumentList参数上Start-Job例如为:

Start-Job -Scriptblock {param($p) "`$p is $p"} -Arg 'Server1' 

你的情况:

$pingblock = {param($servername) pathping $servername | Out-File C:\...\ServerPing.txt} 
Start-Job $pingblock -Arg Server1 
+0

谢谢!我错过了开始工作有一个参数列表。 – jjamesjohnson 2012-04-09 16:09:46