2017-07-03 3 views
3

Ich versuche TShark auf verschiedenen Servern über folgenden Befehl zu starten:: Job in Remote-Sitzung nur verfügbar ist,

Invoke-Command -Session $remoteSession -ScriptBlock {start-job -ScriptBlock {& 'C:\Program Files\Wireshark\tshark.exe' -b filesize:10000 -b files:5 -w "$tsharkResultDirectory\tshark.pcap"} -Name "TShark"} 

Der Befehl funktioniert und alles ist in Ordnung. Aber wenn ich über z. Remote Desktop, und führen Sie den Befehl Get-Job nichts zurückgegeben wird. Dies bedeutet also, dass der zuvor gestartete Job nur in der Remote-Sitzung ausgeführt wird. Weiß jemand, ob es einen Weg gibt, einen Job im "globalen" Bereich zu beginnen? Ich möchte nicht, dass TShark die Verfolgung stoppt, wenn ich versehentlich mein PowerShell-Fenster schließe.

Thx

Antwort

3

Sie richtig sind, dass der Auftrag existiert nur für die Dauer der Sitzung Powershell-Host, weshalb man sie nicht mehr wiederherstellen können Sie RDP, wenn.

Ein besserer Ansatz könnte die Verwendung des -AsJob Schalters von Invoke-Command sein. Sie können dann die Ergebnisse abrufen, indem Get-Job auf dem lokalen Computer ausgeführt wird, anstatt RDP'ing auf die Remote-Host:

Invoke-Command -Session $remoteSession -ScriptBlock { & 'C:\Program Files\Wireshark\tshark.exe' -b filesize:10000 -b files:5 -w "$tsharkResultDirectory\tshark.pcap" } -AsJob -Name "TShark" 

Hinweis wieder, dass Sie den Job verlieren werden, wenn Sie Ihre lokale Powershell-Sitzung zu beenden.

glaube ich, die einzige andere Möglichkeit, einen Remote-Job ausgeführt werden und haben es über die Befehle * -ScheduledJob bestehen bleiben, wie sie ihre Ergebnisse auf der Festplatte aufzeichnen:

PS C:\> get-command *ScheduledJob | Select Name 

Name     
----     
Disable-ScheduledJob 
Enable-ScheduledJob  
Get-ScheduledJob  
Register-ScheduledJob 
Set-ScheduledJob  
Unregister-ScheduledJob 
Verwandte Themen