2012-04-09 92 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