Ja, Sie führen den Prozess ROBOCOPY
auf diesem Computer mit $DestinationComputer
Ja aus. Sie laufen aber immer noch Invoke-Command
auf Ihrem Rechner, der auf stdout
und wartet stderr
.
Aus den Unterlagen
Das Cmdlet Invoke-Command führt Befehle auf einem lokalen oder Remotecomputer aus und gibt alle Ausgaben der Befehle einschließlich Fehlern zurück
Dieses Verhalten wird also mit Ihrem Code erwartet
Invoke-Command -ComputerName $DestinationComputer -Credential $creds -Authentication Credssp -ScriptBlock { robocopy \\$($args[0])\C$\usmt \\$($args[1])\C$\usmt /E /COPY:DATOU /E /ZB /mt:32 /r:5 /w:0 }-ArgumentList $SourceComputer,$DestinationComputer -ErrorAction Inquire
Was Sie brauchen, ist die InDisconnectedSession
Option zu übergeben. Was macht Invoke-Command
das Herstellen einer Verbindung, führen Sie cmd aus und trennen Sie die Verbindung sofort. Nochmals aus den Dokumenten:
Verwenden Sie zum Erstellen einer getrennten Sitzung den Parameter InDisconnectedSession des Cmdlets Invoke-Command. Es erstellt eine Sitzung, startet den Befehl und trennt sich sofort, bevor der Befehl eine Ausgabe zurückgeben kann.
Das ist es, worum Sie bitten.
Prost.