PowerShell ist eine leistungsstarke Befehlskonsole, die in modernen Windows-Versionen enthalten ist. Eine der nützlichsten Funktionen ist die Möglichkeit, Befehle auf Remoteservern auszuführen. Dies kann für Systemadministratoren nützlich sein, die mehrere Windows-Server verwalten.
Schritt 1: Fernzugriff zulassen
Zunächst müssen wir den Fernzugriff zulassen. Öffnen Sie auf dem Server, auf den Sie remote zugreifen möchten, PowerShell mit Administratorrechten (klicken Sie mit der rechten Maustaste auf PowerShell und klicken Sie auf "Als Administrator ausführen"). Führen Sie den folgenden Befehl aus:
Enable-PSRemoting -Force
Dadurch wird der WinRM-Dienst gestartet, sichergestellt, dass er automatisch gestartet wird, und Ihre Firewall wird so konfiguriert, dass eingehende Verbindungen zugelassen werden.
Führen Sie auf dem Computer (von dem aus Sie eine Verbindung herstellen möchten) den folgenden Befehl mit Administratorrechten aus:
Enable-PSRemoting -Force
Wir müssen sicherstellen, dass beide Computer einander vertrauen. Dazu müssen wir die Einstellung "TrustedHosts" konfigurieren. Wenn Sie von allen Computern aus Verbindungen zu Ihrem Computer / Server zulassen möchten, führen Sie Folgendes aus:
Set-Item wsman:\localhost\client\trustedhosts *
Wenn Sie dies auf bestimmte Computer beschränken möchten, verwenden Sie den folgenden Befehl. Ersetzen Sie die durch Kommas getrennte Liste von 0.0.0.0, 1.1.1.1, 2.2.2.2 und 3.3.3.3 durch IP-Adressen, die Zugriff erhalten.
Set-Item wsman:\localhost\client\trustedhosts 0.0.0.0,1.1.1.1,2.2.2.2,3.3.3.3
Starten Sie nun WinRM neu:
Restart-Service WinRM
Schritt 2: Testen Sie die Verbindung
Um die Verbindung zu testen, rufen Sie den Computer auf, von dem aus Sie eine Verbindung herstellen möchten, und führen Sie Folgendes aus:
Test-WsMan ipaddress
Ersetzen Sie ipaddress
durch die IP-Adresse des anderen Computers / Servers.
Schritt 3: Öffnen der Ports
Der erste Befehl, den wir ausgeführt haben ( Enable-PSRemoting -Force
), konfiguriert die Firewall automatisch so, dass eingehende Verbindungen für den Remotezugriff akzeptiert werden. Wenn sich jedoch etwas vor der Firewall befindet (z. B. Ihr Router), müssen Sie möglicherweise auch die Portweiterleitung einrichten. Die verwendeten Ports sind:
- 5985 für HTTP
- 5986 für HTTPS
Schritt 4: Befehle ausführen
Folgendes wird verwendet, um Befehle auf einem Remote-Server auszuführen:
Invoke-Command -ComputerName ipaddress -ScriptBlock { command } -credential username
Ersetzen Sie ipaddress
durch die IP-Adresse des Servers, command
durch den Befehl, den Sie auf diesem Server ausführen möchten, und username
durch den Benutzernamen des Benutzers, der den Befehl ausführen wird.
Wenn Sie nicht Invoke-Command
für jeden einzelnen Befehl verwenden möchten , können Sie stattdessen eine Sitzung starten. Jeder von Ihnen eingegebene Befehl wird dann auf dem Remoteserver mit den angegebenen Anmeldeinformationen ausgeführt. Die Syntax zum Starten einer Sitzung lautet wie folgt:
Enter-PSSession -ComputerName ipaddress -Credential username
Ersetzen Sie ipaddress
durch die IP-Adresse des Servers und username
durch den Benutzer, der den Befehl ausführen wird. Jeder Befehl, den Sie in Zukunft eingeben, wird auf dem Remote-Server ausgeführt.