2012-04-09 12 views
15

dentro de powershell Me gustaría aprender la mejor manera de llamar una variable a un trabajo de inicio para no tener que editar el script para cada servidor, ya que será específico basado en el cliente en el que coloqué mi scriptPowershell pass variable to start-job

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

cuando corro mi código anterior apenas consigo un archivo con la ayuda como si se me olvidó el especificar el nombre del servidor $.

Respuesta

22

Utilice el parámetro -ArgumentList en Start-Job ej .:

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

En su caso:

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

Gracias! Me perdí ese trabajo de inicio tenía una lista de argumentos. – jjamesjohnson

Cuestiones relacionadas