Powershell - Invoke-Command und Stop-Process -PassThru

  • PowerShell

    Powershell - Invoke-Command und Stop-Process -PassThru

    Hallo Zusammen,

    weiß nicht ob die Frage hier rein passt und ob mir jemand weiterhelfen kann, aber die Community hier ist sehr kompetent und immer hilfsbereit.

    Nun zu meiner Frage bzw. meinem Problem...

    Ich Frage mit Hilfe der PowerShell die Prozess-Liste eines Remote-Computers mit dem folgenden Kommando ab:

    Quellcode

    1. §session = New-PSSession -ComputerName xxx
    2. Invoke-Command -Session $session -ScriptBlock {Get-Process | Format-Table Name, Id, Path -Autosize}


    Da es hin und wieder vorkommt das verschiedene Prozesse beendet werden müssen wollte ich dies mit Hilfe der ID bzw. des Namens machen. Der Befehl ansich funktioniert auch.

    Den Prozess beende ich mit dem Befehl:

    Quellcode

    1. $id = Read-Host "Eingabe ID"
    2. $script = {
    3. param($id)
    4. Stop-Process -id $id -Force -PassThru
    5. }
    6. Invoke-Command -Session $session -ScriptBlock $script -ArgumentList $id


    Das ganze habe ich in einer While-Schleife verpackt damit ich mit dem Script mehrere Prozesse hintereinander schließen kann.

    Stop-Process hat Standardmäßig keine Ausgabe... mit dem Befehl "-PassThru" kann man diese jedoch anzeigen.
    Wenn Ich den Befehl direkt mit der PowerShell ausführe, also ohne den Kram mit der While-Schleife usw. funktioniert die Ausgabe... Im Script jedoch nicht.

    Erst wenn ich einen oder mehrere Prozesse beendet habe und danach das Skript beendet wird und der Befehl

    Quellcode

    1. Remove-PSSession $session
    aufgerufen wird, wird die Ausgabe von "PassThru" (von allen aufgerufen Befehlen) in der Konsole angezeigt.

    Weiß jemand woran das liegt (warum das erst nachdem alles "abgearbeitet" wurde und die Session geschlossen wird ausgegeben wird)?? Oder wie man das Problem umgehen kann?

    Viele Grüße :D
    C-Sharp
    NETworkManager - A powerful tool for managing networks and troubleshoot network problems!