Ausführen von Remote-Befehlen auf dem Zielcomputer über WinRM in einer Arbeitsgruppenumgebung

Ausführen von Remote-Befehlen auf dem Zielcomputer über WinRM in einer Arbeitsgruppenumgebung

Ich freue mich darauf, spezielle Befehle auf einem Zielcomputer in meinem lokalen Netzwerk (Arbeitsgruppe, kein Domänenbeitritt) auszuführen.

Die Maschinen wurden zuvor mit Enable-PSremotingusw. so konfiguriert, dass sie die Windows-Remoteverwaltung tolerieren, sodass wir auf der Zielmaschine wie folgt einen Befehl ausführen können.

Die Befehle funktionieren einwandfrei, außer dass einige spezielle Befehle wie „Start-Process“ nicht als lokale Maschine ausgeführt werden, wenn ich sie starten möchte.

Wenn ich beispielsweise auf meinem lokalen Computer ausführe:

> Start-Process -Filepath "cmd.exe"

es startet den cmd-Prozess. Wenn ich es aus der Ferne mache, so

Invoke-Command -Computername "my-target-ip" -ScriptBlock {Start-Process -Filepath "cmd.exe"} -Credential get-credential

Das Befehlsfenster wird auf der Zielmaschine nicht ausgeführt.

Dies würde es mir ermöglichen, auf meinen Zielcomputern einige spezielle Pakete zu installieren, die einige Autoit-GUI-Konfigurationen erfordern und die nicht einfach über Powershell vorgenommen werden können, wie das Anhalten von Updates und das Einrichten von Standard-Browser-Apps über die GUI. Ansonsten funktionieren einige normale Konfigurationen einwandfrei (Firewall-Einstellungen, Schreiben von Dateien, Aktivieren von Netzwerkkonfigurationen usw.).

Vielen Dank.

Antwort1

Invoke-Commandist für nicht interaktive Befehle gedacht. Soweit ich mich erinnere, erhalten Sie damit keine interaktive Eingabeaufforderung, und wenn Sie ein Programm auf dem Remotecomputer starten möchten, sollte es natürlich dort vorhanden sein, bevor Sie es starten.

Wenn Sie eine interaktive Sitzung auf dem Remote-Computer verwenden möchten, verwenden SieEnter-PSSessionstattdessen:

Enter-PSSession -Computer "remote" -Credential (Get-Credential)

Innerhalb dieser Sitzung sollten Sie in der Lage sein, eine Eingabeaufforderung zu starten, wenn Sie diese wirklich benötigen.

Wenn Sie eine Reihe verwandter Befehle ausführen müssen, die nicht interaktiv sind New-PSSession, könnte das Cmdlet zusammen mit von Interesse sein Invoke-Command -Session $session.

verwandte Informationen