THEMA
about_PSSessions
KURZBESCHREIBUNG
Beschreibt Windows PowerShell-Sitzungen (PSSessions) und
erläutert, wie eine dauerhafte Verbindung mit einem Remotecomputer
hergestellt wird.
DETAILBESCHREIBUNG
Sie können Windows PowerShell-Befehle auf einem Remotecomputer mit dem
ComputerName-Parameter eines Cmdlet ausführen, oder Sie können eine
Windows PowerShell-Sitzung (PSSession)erstellen und Befehle darin
ausführen.
Wenn Sie eine PSSession erstellen, wird von Windows PowerShell eine
dauerhafte Verbindung mit dem Remotecomputer hergestellt. Mit einer
PSSession können Sie eine Reihe verwandter Befehle auf einem
Remotecomputer ausführen. Befehle, die in einer PSSession ausgeführt
werden, können gemeinsame Daten verwenden, beispielsweise Werte von
Variablen, Aliasen und Funktionen.
Sie können auch eine PSSession auf dem lokalen Computer erstellen
und Befehle darin ausführen. Eine lokale PSSession verwendet die
Windows PowerShell-Remotinginfrastruktur, um die PSSession zu
erstellen und zu verwalten.
In diesem Thema wird erläutert, wie PSSessions erstellt, verwendet,
abgerufen und gelöscht werden. Weitere Informationen erhalten Sie mit
folgendem Befehl: "get-help about_PSSession_details".
HINWEIS: PSSessions verwenden die Windows PowerShell-Remotinginfra struktur.
Um PSSessions zu verwenden, müssen lokale Computer und
Remotecomputer für Remoting konfiguriert werden. Weitere
Informationen finden Sie unter "about_remote_requirements".
Um unter Windows Vista und höheren Versionen von Windows
eine PSSession auf dem lokalen Computer zu erstellen,
müssen Sie Windows PowerShell mit der Option "Als
Administrator ausführen" öffnen.
WAS IST EINE SITZUNG?
Eine Sitzung ist eine Umgebung, in der Windows PowerShell
ausgeführt wird.
Sobald Sie Windows PowerShell öffnen, wird eine Sitzung erstellt,
und Sie können Befehle in der Sitzung ausführen. Sie können der
Sitzung auch Elemente wie Module und Snap-Ins hinzufügen, und Sie
können Elemente wie Variablen, Funktionen und Aliase erstellen.
Diese Elemente sind nur in der Sitzung vorhanden und werden
gelöscht, wenn die Sitzung beendet wird.
Ferner können Sie weitere Sitzungen auf dem lokalen Computer oder
auf einem Remotecomputer erstellen, die als "Windows
PowerShell-Sitzungen" oder "PSSessions" bezeichnet werden. Analog zur
Standardsitzung können Sie Befehle in einer PSSession ausführen und
Elemente erstellen und hinzufügen.
Im Gegensatz zu der Sitzung, die automatisch gestartet wird,
können Sie die selbst erstellen PSSessions jedoch steuern. Sie können
abgerufen, erstellt, konfiguriert und entfernt werden, und mehrere Befehle
können in einer PSSession ausgeführt werden. Die PSSession bleibt
geöffnet und verfügbar, bis Sie diese aus der Sitzung löschen.
In der Regel wird eine PSSession erstellt, um eine Reihe
verwandter Befehle auf einem Remotecomputer auszuführen. Wenn Sie
eine PSSession auf einem Remotecomputer erstellen, stellt Windows
PowerShell eine dauerhafte Verbindung mit dem Remotecomputer zur
Unterstützung der Sitzung her.
Wenn Sie mit dem computerName-Parameter des Cmdlet "Invoke-Command"
oder des Cmdlet "Enter-PSSession" einen Remotebefehl ausführen
oder eine interaktive Sitzung starten, erstellt Windows
PowerShell eine temporäre Sitzung auf dem Remotecomputer und
schließt die Sitzung, sobald der Befehl abgeschlossen oder die
interaktive Sitzung beendet wird. Diese temporären Sitzungen
können nicht gesteuert und maximal für einen Befehl oder eine
interaktive Sitzung verwendet werden.
In Windows PowerShell ist die "aktuelle Sitzung" die Sitzung, die
Sie gerade verwenden. Eine "aktuelle Sitzung" kann jede Sitzung
einschließlich einer temporären Sitzung oder einer PSSession sein.
GRÜNDE FÜR DIE VERWENDUNG EINER PSSESSION
Verwenden Sie eine PSSession, um eine dauerhafte Verbindung mit einem
Remotecomputer herzustellen. Mit einer PSSession können Sie eine
Reihe von Befehlen ausführen, die gemeinsame Daten verwenden,
beispielsweise Werte von Variablen, Inhalte von Funktionen oder
Definitionen von Aliasen.
Sie können Remotebefehle ausführen, ohne eine PSSession zu
erstellen. Führen Sie mit dem ComputerName-Parameter
remotefähiger Cmdlets einen Befehl oder eine Reihe nicht
verknüpfter Befehle auf einem oder mehreren Computern aus.
Wenn Sie den ComputerName-Parameter von Invoke-Expression oder
von Enter-PSSession verwenden, stellt Windows PowerShell eine
temporäre Verbindung mit dem Remotecomputer her und schließt die
Verbindung, sobald der Befehl abgeschlossen wird. Alle
Datenelemente, die Sie erstellen, gehen verloren, wenn die
Verbindung geschlossen wird.
Andere Cmdlets wie Get-Eventlog und Get-WmiObject, die über einen
ComputerName-Parameter verfügen, erfassen Daten mit anderen
Remotingtechnologien. Dabei wird keine dauerhafte Verbindung wie
bei einer PSSession erstellt.
SO ERSTELLEN SIE EINE PSSESSION
Das Cmdlet "New-PSSession" ermöglicht das Erstellen einer
PSSession. Verwenden Sie den ComputerName-Parameter des Cmdlet
"New-PSSession", um die PSSession auf einem Remotecomputer erstellen.
Beispielsweise wird mit dem folgenden Befehl eine neue PSSession
auf dem Computer "Server01" erstellt.
new-pssession -computername Server01
Wenn Sie den Befehl senden, erstellt New-PSSession die PSSession
und gibt ein Objekt zurück, das die PSSession darstellt. Sie
können das Objekt in einer Variablen speichern, wenn Sie die
PSSession erstellen, oder Sie können die PSSession zu einem
späteren Zeitpunkt mit einem Get-PSSession-Befehl abrufen.
Beispielsweise wird mit dem folgenden Befehl eine neue PSSession
auf dem Computer "Server01" erstellt, und das resultierende
Objekt wird in der Variablen "$ps" gespeichert.
$ps = new-pssession -computername Server01
SO ERSTELLEN SIE PSSESSIONS AUF MEHREREN COMPUTERN
Um PSSessions auf mehreren Computern zu erstellen, verwenden Sie
den ComputerName-Parameter des Cmdlet "New-PSSession." Geben Sie
die Namen der Remotecomputer in einer durch Trennzeichen
getrennten Liste ein.
Geben Sie beispielsweise Folgendes ein, um PSSessions auf den
Computern "Server01", "Server02" und "Server03" zu erstellen:
new-PSSession -computername Server01, Server02, Server03
Mit New-PSSession wird eine PSSession auf jedem der
Remotecomputer erstellt.
SO RUFEN SIE PSSESSIONS AB
Mit dem Cmdlet "Get-PSSession" können Sie die PSSessions abrufen,
die in der aktuellen Sitzung erstellt wurden. Get-PSSession gibt
den gleichen Objekttyp wie New-PSSession zurück.
Mit dem folgenden Befehl werden alle PSSessions abgerufen, die in
der aktuellen Sitzung erstellt wurden.
get-PSSession
In der Standardanzeige der PSSessions werden die ID sowie ein
Standardanzeigename angezeigt. Wenn Sie die Sitzung erstellen,
können Sie einen anderen Anzeigenamen zuweisen.
Id Name ComputerName State ConfigurationName
--- ---- ------------ ----- ---------------------
1 Session1 Server01 Opened Microsoft.PowerShell
2 Session2 Server02 Opened Microsoft.PowerShell
3 Session3 Server03 Opened Microsoft.PowerShell
Sie können die PSSessions auch in einer Variablen speichern. Mit
dem folgenden Befehl werden die PSSessions abgerufen und in der
Variablen "$ps123" gespeichert.
$ps123 = get-PSSession
Wenn Sie die PSSession-Cmdlets verwenden, können Sie anhand der
ID, des Namens oder der Instanz-ID (eine GUID) auf eine PSSession
verweisen. Mit dem folgenden Befehl wird eine PSSession anhand
der ID abgerufen und in der Variablen "$ps01" gespeichert.
$ps01 = get-PSSession -id 1
Mit Get-PSSession werden nur die PSSessions abgerufen, die in der
aktuellen Sitzung erstellt wurden. PSSessions, die in anderen
Sitzungen oder auf anderen Computern erstellt wurden, werden
nicht abgerufen. Dies gilt auch dann, wenn die Sitzungen mit dem
lokalen Computer verbunden sind und Befehle auf dem lokalen
Computer ausführen.
SO FÜHREN SIE BEFEHLE IN EINER PSSESSION AUS
Mit dem Cmdlet "Invoke-Command" können Sie einen Befehl in einer
oder mehreren PSSessions ausführen. Geben Sie die PSSessions mit
dem Session-Parameter und den Befehl mit dem ScriptBlock-Parameter an.
Geben Sie beispielsweise Folgendes ein, um einen Get-Childitem-
Befehl ("dir") in jeder der drei PSSessions auszuführen, die in der
Variablen "$ps123" gespeichert wurden:
invoke-command -session $ps123 -scriptblock {get-childitem}
SO LÖSCHEN SIE PSSESSIONS
Verwenden Sie nach Abschluss der PSSession das Cmdlet
"Remove-PSSession", um die PSSession zu löschen und die
verwendeten Ressourcen freizugeben.
remove-PSSession -session $ps
- oder -
remove-PSSession -id 1
Wenn Sie die PSSession nicht löschen, bleibt die PSSession
geöffnet und verfügbar, bis Sie die aktuelle Sitzung oder Windows
PowerShell schließen.
Sie können auch mit dem TimeOut-Parameter von New-PSSession eine
Ablaufzeit für eine PSSession im Leerlauf festlegen. Weitere
Informationen erhalten Sie mit folgendem Befehl: "get-help
new-PSSession -full".
PSSESSION-CMDLETS
New-PSSession Erstellt eine neue PSSession auf einem lokalen
Computer oder auf einem Remotecomputer.
Get-PSSession Ruft die PSSessions in der aktuellen Sitzung ab.
Remove-PSSession Löscht die PSSessions in der aktuellen Sitzung.
Enter-PSSession Startet eine interaktive Sitzung.
Exit-PSSession Beendet eine interaktive Sitzung.
Eine Liste von PSSession-Cmdlets erhalten Sie mit folgendem Befehl:
get-help *-PSSession
WEITERE INFORMATIONEN
Weitere Informationen über PSSessions finden Sie unter
"about_PSSession_details".
SIEHE AUCH
about_remote
about_remote_requirements
New-PSSession
Get-PSSession
Remove-PSSession
Enter-PSSession
Exit-PSSession
Invoke-Command