Startseite » wie man » Ausführen von PowerShell-Befehlen auf Remote-Computern

    Ausführen von PowerShell-Befehlen auf Remote-Computern

    Mit PowerShell Remoting können Sie PowerShell-Befehle ausführen oder auf vollständige PowerShell-Sitzungen auf Remote-Windows-Systemen zugreifen. Es ähnelt SSH für den Zugriff auf Remote-Terminals unter anderen Betriebssystemen.

    PowerShell ist standardmäßig gesperrt, daher müssen Sie PowerShell Remoting aktivieren, bevor Sie es verwenden können. Dieser Einrichtungsprozess ist etwas komplexer, wenn Sie eine Arbeitsgruppe anstelle einer Domäne verwenden, z. B. in einem Heimnetzwerk. Wir werden Sie jedoch durchgehen.

    Aktivieren Sie PowerShell Remoting auf dem PC, auf den Sie remote zugreifen möchten

    Zunächst müssen Sie PowerShell Remoting auf dem PC aktivieren, zu dem Sie Remoteverbindungen herstellen möchten. Auf diesem PC müssen Sie PowerShell mit Administratorrechten öffnen.

    Drücken Sie in Windows 10 Windows + X und wählen Sie dann PowerShell (Admin) aus dem Power User-Menü.

    Klicken Sie in Windows 7 oder 8 auf Start, und geben Sie "Powershell" ein. Klicken Sie mit der rechten Maustaste auf das Ergebnis und wählen Sie "Als Administrator ausführen".

    Geben Sie im PowerShell-Fenster das folgende Cmdlet (PowerShell-Name für einen Befehl) ein, und drücken Sie die Eingabetaste:

    Enable-PSRemoting -Force

    Dieser Befehl startet den WinRM-Dienst, legt fest, dass er automatisch mit Ihrem System gestartet wird, und erstellt eine Firewall-Regel, die eingehende Verbindungen zulässt. Das -Macht Ein Teil des Cmdlets weist PowerShell an, diese Aktionen auszuführen, ohne dass Sie für jeden Schritt aufgefordert werden.

    Wenn Ihre PCs Teil einer Domäne sind, müssen Sie nur das Setup vornehmen. Sie können mit dem Testen Ihrer Verbindung fortfahren. Wenn Ihre Computer Teil einer Arbeitsgruppe sind, in der sie sich wahrscheinlich in einem Heimnetzwerk oder in einem Netzwerk für kleine Unternehmen befinden, müssen Sie etwas mehr Installationsarbeit erledigen.

    Hinweis: Ihr Erfolg beim Einrichten von Remoting in einer Domänenumgebung hängt ausschließlich von den Einstellungen Ihres Netzwerks ab. Remoting wird möglicherweise durch Gruppenrichtlinien, die von einem Administrator konfiguriert werden, automatisch deaktiviert oder sogar automatisch aktiviert. Möglicherweise verfügen Sie auch nicht über die Berechtigungen, die Sie zum Ausführen von PowerShell als Administrator benötigen. Wenden Sie sich wie immer an Ihre Admins, bevor Sie so etwas versuchen. Sie haben möglicherweise gute Gründe, die Praxis nicht zuzulassen, oder sie sind bereit, sie für Sie einzurichten.

    Richten Sie Ihre Arbeitsgruppe ein

    Wenn sich Ihre Computer nicht in einer Domäne befinden, müssen Sie einige weitere Schritte ausführen, um die Einstellungen vorzunehmen. Sie sollten Remoting bereits auf dem PC aktiviert haben, zu dem Sie eine Verbindung herstellen möchten, wie im vorherigen Abschnitt beschrieben.

    Hinweis: Damit PowerShell Remoting in einer Arbeitsgruppenumgebung funktioniert, müssen Sie Ihr Netzwerk als privates und nicht als öffentliches Netzwerk konfigurieren. Wenn Sie bereits ein öffentliches Netzwerk eingerichtet haben, lesen Sie unseren Leitfaden für private und öffentliche Netzwerke.

    Als Nächstes müssen Sie die TrustedHosts-Einstellung auf dem PC konfigurieren, zu dem Sie eine Verbindung herstellen möchten und der PC (oder die PCs), von dem aus Sie eine Verbindung herstellen möchten, damit sich die Computer gegenseitig vertrauen. Sie haben zwei Möglichkeiten, dies zu tun.

    Wenn Sie sich in einem Heimnetzwerk befinden und von jedem PC aus eine Remote-Verbindung herstellen möchten, können Sie das folgende Cmdlet in PowerShell eingeben (erneut müssen Sie es als Administrator ausführen)..

    Set-Item wsman: \ localhost \ client \ trustedhosts *

    Das Sternchen ist ein Platzhaltersymbol für alle PCs. Wenn Sie stattdessen Computer einschränken möchten, die eine Verbindung herstellen können, können Sie das Sternchen durch eine durch Kommas getrennte Liste von IP-Adressen oder Computernamen für genehmigte PCs ersetzen.

    Nachdem Sie diesen Befehl ausgeführt haben, müssen Sie den WinRM-Dienst neu starten, damit die neuen Einstellungen wirksam werden. Geben Sie das folgende Cmdlet ein und drücken Sie die Eingabetaste:

    Neustart-Service WinRM

    Denken Sie daran, dass Sie diese beiden Cmdlets auf dem PC ausführen müssen, zu dem Sie eine Verbindung herstellen möchten, sowie auf allen PCs, von denen Sie eine Verbindung herstellen möchten.

    Testen Sie die Verbindung

    Nachdem Sie Ihre PCs für PowerShell Remoting eingerichtet haben, ist es an der Zeit, die Verbindung zu testen. Geben Sie auf dem PC, von dem Sie auf das Remote-System zugreifen möchten, das folgende Cmdlet in PowerShell ein (wobei "COMPUTER" durch den Namen oder die IP-Adresse des Remote-PCs ersetzt wird), und drücken Sie die Eingabetaste:

    Test-WsMan COMPUTER

    Dieser einfache Befehl prüft, ob der WinRM-Dienst auf dem Remote-PC ausgeführt wird. Wenn der Vorgang erfolgreich abgeschlossen wurde, werden im Fenster Informationen zum WinRM-Dienst des Remote-Computers angezeigt, die darauf hinweisen, dass WinRM aktiviert ist und Ihr PC kommunizieren kann. Wenn der Befehl fehlschlägt, wird stattdessen eine Fehlermeldung angezeigt.

    Führen Sie einen einzelnen Remote-Befehl aus

    Um einen Befehl auf dem Remote-System auszuführen, verwenden Sie die Aufrufbefehl Cmdlet mit der folgenden Syntax:

    Invoke-Command -ComputerName COMPUTER -ScriptBlock COMMAND -credential USERNAME

    „COMPUTER“ steht für den Namen oder die IP-Adresse des Remote-PCs. "BEFEHL" ist der Befehl, den Sie ausführen möchten. "USERNAME" ist der Benutzername, den Sie auf dem Remote-Computer ausführen möchten. Sie werden aufgefordert, ein Kennwort für den Benutzernamen einzugeben.

    Hier ist ein Beispiel. Ich möchte den Inhalt des Verzeichnisses C: \ auf einem Remote-Computer mit der IP-Adresse 10.0.0.22 anzeigen. Ich möchte den Benutzernamen "wjgle" verwenden, also würde ich den folgenden Befehl verwenden:

    Invoke-Command -ComputerName 10.0.0.22 -ScriptBlock Get-ChildItem C: \ -credential wjgle

    Starten Sie eine Remote-Sitzung

    Wenn Sie mehrere Cmdlets auf dem Remote-PC ausführen möchten, müssen Sie das Cmdlet Invoke-Command und die Remote-IP-Adresse nicht wiederholt eingeben, sondern können stattdessen eine Remote-Sitzung starten. Geben Sie einfach das folgende Cmdlet ein und drücken Sie die Eingabetaste:

    Enter-PSSession -Computername COMPUTER -Credential USER

    Ersetzen Sie erneut "COMPUTER" durch den Namen oder die IP-Adresse des Remote-PCs und ersetzen Sie "USER" durch den Namen des Benutzerkontos, das Sie aufrufen möchten.

    Ihre Eingabeaufforderung ändert sich, um den Remote-Computer anzugeben, mit dem Sie verbunden sind, und Sie können eine beliebige Anzahl von PowerShell-Cmdlets direkt auf dem Remote-System ausführen.