Write-Host se duplica después de ejecutarse como comando remoto
Estoy tratando de ejecutar de forma remota este código:
$servers = @("myserver.local")
Invoke-Command -ScriptBlock {
#
Write-Host "Test1:" "xxx";
hostname
Write-Host "Test2:" "yyy";
#
} -ComputerName $servers
Y obtengo esta salida:
Test1: xxx
Test1: xxx
myserver
Test2: yyy
Test2: yyy
Salida esperada:
Test1: xxx
myserver
Test2: yyy
Como puedes ver, la salida de Write-Host
se duplica, pero hostname
está bien.
¿Por qué?
davy.ai
La salida de
Write-Host
se duplica porqueInvoke-Command
ejecuta el bloque de script en cada servidor especificado en el array$servers
. Por lo tanto, el resultado deWrite-Host
se imprime dos veces, una vez por cada servidor.Para evitar este comportamiento, puedes utilizar el parámetro
-ThrottleLimit 1
deInvoke-Command
para ejecutar el bloque de script en cada servidor de forma secuencial en lugar de concurrente. Esto asegurará que la salida deWrite-Host
no se duplique.Por ejemplo: