Zum Hauptinhalt springen Skip to page footer

Effektives Arbeiten mit Powershell: Remote-Computing und Sitzungsverwaltung für Windows

| Tutorial | Powershell

Powershell ist eine mächtige Skriptsprache und Befehlszeilen-Shell, die auf Microsoft Windows basiert. Mit Powershell ist es möglich, verschiedene Aufgaben automatisiert auszuführen, einschließlich der Verwaltung von Remote-Computern. In diesem Text werde ich ausführlich darauf eingehen, wie man mit Powershell Remote-Computern verbinden kann, Remote-Befehle ausführt und Ergebnisse abruft sowie Remote-Sitzungen verwaltet.

Um eine Verbindung zu einem entfernten Computer herzustellen, bietet Powershell verschiedene Methoden an. Eine häufig verwendete Methode ist die Verwendung des Moduls "PSSession". Zuerst muss das Modul geladen werden, indem der Befehl "Import-Module PSSession" ausgeführt wird. Anschließend kann eine Remotesitzung mit dem Befehl "New-PSSession" unter Angabe des Namens oder der IP-Adresse des Remotecomputers erstellt werden.

Beispiel:
$session = New-PSSession -ComputerName RemoteComputer
Dadurch wird eine neue Remote-Sitzung mit dem Namen "session" erstellt. Mit dem Befehl "Invoke-Command" können dann Befehle auf dem entfernten Rechner ausgeführt werden, wobei die erstellte Session als Parameter übergeben wird. Zum Beispiel:
Invoke-Command -Session $session -ScriptBlock { Get-Process }

In diesem Beispiel wird der Befehl "Get-Process" über die Remotesitzung auf dem Remotecomputer ausgeführt. Die Ausgabe des Befehls wird direkt auf dem lokalen Computer angezeigt.

Um Ergebnisse von Remote-Befehlen abzurufen, kann man die Rückgabewerte der Remote-Befehle in Variablen speichern. Man kann auch die Option "-AsJob" verwenden, um den Befehl asynchron auszuführen und das Ergebnis später abzurufen. Hier ist ein Beispiel:
$job = Invoke-Command -Session $session -ScriptBlock { Get-Service }
In diesem Beispiel wird der Befehl "Get-Service" auf dem entfernten Computer ausgeführt und das Ergebnis in der Variablen "$job" gespeichert. Um auf das Ergebnis zuzugreifen, kann der Befehl "Receive-Job" verwendet werden:
Receive-Job -Job $job

Dieser Befehl gibt die Ergebnisse des Remote-Befehls auf dem lokalen Computer aus.

Neben der Ausführung von Remotebefehlen können mit Powershell auch Remote-Sitzungen verwaltet werden. Mit dem Befehl "Enter-PSSession" können Sie eine bestehende Sitzung betreten und Befehle direkt auf dem Remotecomputer ausführen. Hier ein Beispiel:
Enter-PSSession -Session $session

Nach dem Betreten der Sitzung können Befehle direkt auf dem entfernten Computer ausgeführt werden, als ob man sich lokal auf dem entfernten Computer befände. Um die Sitzung zu beenden und zum lokalen Computer zurückzukehren, verwendet man den Befehl "Exit-PSSession".

Es ist auch möglich, mehrere Remote-Sitzungen gleichzeitig zu verwalten. Mit dem Befehl "Get-PSSession" können alle aktiven Sitzungen angezeigt werden. Um eine bestimmte Sitzung zu beenden, verwendet man den Befehl "Remove-PSSession" und übergibt die entsprechende Sitzungs-ID.

Hier ist ein Beispiel:
Get-PSSession
Dieser Befehl listet alle aktiven Sitzungen auf. Um eine Sitzung zu beenden, verwendet man den Befehl "Remove-PSSession" und gibt die Sitzungs-ID an:
Remove-PSSession -Id 1

In diesem Beispiel wird die Sitzung mit der ID 1 beendet.

Powershell ermöglicht die Arbeit mit Remotecomputern durch das Herstellen von Verbindungen zu Remotecomputern, das Ausführen von Befehlen über Remotesitzungen und das Verwalten von Remotesitzungen. Mit Powershell können Administratoren Aufgaben auf Remotecomputern effizient und automatisiert ausführen, was die Verwaltung und Wartung von Computernetzwerken erleichtert.