Ich habe diese kurze Skript und zu überwachen, falls erforderlich, starten Sie den Drucker-Spooler auf einigen ServernWarum meine Variable leer erscheinen in Invoke-Command
$c = Get-Credential
$servers = 'FQDN1', 'FQDN2', 'FQDN3'
foreach ($s in $servers){
Invoke-Command -ComputerName $s -Credential $c {$j = (Get-PrintJob -PrinterName 'Test Printer').count
Write-Host "On computer $s there are $j print jobs"
If ($j -gt 5){
Write-Host "About to restart the printer spooler on $s"
Restart-Service 'Spooler'
}
} # end of invoke-command
} # end of foreach
Was ich nicht verstehe, ist, warum die Write-Host
tut Schreiben Sie nicht den Servernamen(), sondern schreibt stattdessen die Anzahl der Jobs ($j
).
Ich denke, es hat etwas damit zu tun, dass die Variable in der Remote-Sitzung ist, aber nicht in der lokalen Sitzung. Aber ich kann nicht wirklich verstehen, was genau das Problem ist.
Wunderbar. Vielen Dank für die Erklärung. Ich bin sehr dankbar. – Micael