Sie sind auf Seite 1von 4

THEMA

about_PSSession_Details
KURZBESCHREIBUNG
Stellt ausfhrliche Informationen ber Windows PowerShell-
Sitzungen und ihre Funktion in Remotebefehlen bereit.
DETAILBESCHREIBUNG
Eine Sitzung ist eine Umgebung, in der Windows PowerShell
ausgefhrt wird. Jedes Mal, wenn Sie Windows PowerShell starten,
wird eine Sitzung erstellt. Sie knnen auf Ihrem oder einem
anderen Computer weitere Sitzungen erstellen, die als "Windows
PowerShell-Sitzungen" oder "PSSessions" bezeichnet werden.
Im Gegensatz zu den Sitzungen, die von Windows PowerShell
erstellt werden, knnen Sie die eigenen PSSessions steuern und
verwalten.
PSSessions spielen eine wichtige Rolle im Hinblick auf
Remotecomputer. Wenn Sie eine PSSession erstellen, die mit einem
Remotecomputer verbunden ist, stellt Windows PowerShell eine dauerhafte
Verbindung mit dem Remotecomputer zur Untersttzung der PSSession
her. Mit der PSSession knnen Sie eine Reihe von Befehlen,
Funktionen und Skripts ausfhren, die Daten gemeinsam verwenden.
Dieses Thema enthlt ausfhrliche Informationen ber Sitzungen
und PSSessions in Windows PowerShell. Grundlegende Informationen
ber die Aufgaben, die Sie mit Sitzungen ausfhren knnen, finden
Sie unter "about_PSSessions".
INFORMATIONEN BER SITZUNGEN
Technisch gesehen ist eine Sitzung eine Ausfhrungsumgebung fr
Windows PowerShell. Jede Sitzung enthlt eine Instanz des
System.Management.Automation-Moduls sowie ein Hostprogramm, in
dem Windows PowerShell ausgefhrt wird. Als Host kann die
vertraute Windows PowerShell-Konsole oder ein anderes Programm
zum Ausfhren von Befehlen wie "Cmd.exe" verwendet werden. Sie
knnen auch ein Programm wie Windows PowerShell Integrated
Scripting Environment (ISE) verwenden, das als Host fr Windows
PowerShell vorgesehen ist. Aus der Sicht von Windows stellt eine
Sitzung einen Windows-Prozess auf dem Zielcomputer dar.
Alle Sitzungen werden unabhngig voneinander konfiguriert. Jede
Sitzung verfgt ber eigene Eigenschaften, eine eigene
Ausfhrungsrichtlinie sowie ber eigene Profile. Die Umgebung, die zum
Zeitpunkt des Erstellens der Sitzung vorhanden ist, bleibt ber die
Lebensdauer hinweg erhalten, auch wenn Sie die Umgebung auf dem
Computer ndern. Alle Sitzungen werden in einem globalen Bereich
erstellt. Dies gilt auch fr Sitzungen, die Sie in einem Skript
erstellen.
Sie knnen nur je einen Befehl (oder eine Befehlspipeline) in
einer Sitzung ausfhren. Ein zweiter Befehl, der synchron (einzeln)
ausgefhrt wird, wartet bis zu vier Minuten, bis der erste Befehl
abgeschlossen ist. Ein zweiter Befehl, der asynchron (gleichzeitig)
ausgefhrt wird, fhrt zu einem Fehler.
INFORMATIONEN BER PSSESSIONS
Eine Sitzung wird immer dann erstellt, wenn Sie Windows
PowerShell starten. Auerdem erstellt Windows PowerShell temporre
Sitzungen, um einzelne Befehle auszufhren. Sie knnen jedoch auch
Sitzungen (als "Windows PowerShell-Sitzungen" oder "PSSessions"
bezeichnet) erstellen, die Sie steuern und verwalten knnen.

PSSessions sind fr Remotebefehle entscheidend. Wenn Sie den
ComputerName-Parameter des Cmdlets "Invoke-Command" oder des
Cmdlets "Enter-PSSession" verwenden, erstellt Windows PowerShell
eine temporre Sitzung, um den Befehl auszufhren und schliet
die Sitzung, sobald der Befehl oder die interaktive Sitzung
vollstndig ist.
Wenn Sie jedoch das Cmdlet "New-PSSession" verwenden, um eine
PSSession zu erstellen, erstellt Windows PowerShell eine
dauerhafte Sitzung auf dem Remotecomputer, in der mehrere Befehle
oder interaktive Sitzungen ausgefhrt werden knnen. Die
PSSessions, die Sie erstellen, bleiben so lange geffnet und
verfgbar, bis Sie sie lschen oder die Sitzung schlieen, in der
sie erstellt wurden.
Wenn Sie eine PSSession auf einem Remotecomputer erstellen, wird
ein PowerShell-Prozess vom System auf dem Remotecomputer erstellt
und es wird eine Verbindung vom lokalen Computer zum Prozess auf
dem Remotecomputer hergestellt. Wenn Sie eine PSSession auf dem
lokalen Computer erstellen, werden sowohl der neue Prozess als
auch die Verbindungen auf dem lokalen Computer erstellt.
WANN SIND PSSESSIONS ERFORDERLICH?
Die Cmdlets "Invoke-Command" und "Enter-PSSession" verfgen ber
den ComputerName-Parameter und den Session-Parameter. Beide
Cmdlets knnen zur Ausfhrung eines Remotebefehls verwendet
werden.
Mit dem ComputerName-Parameter knnen Sie einzelne Befehle oder
eine Reihe nicht verknpfter Befehle auf einem oder mehreren
Computern ausfhren.
Um Befehle mit gemeinsamen Daten auszufhren, ist eine dauerhafte
Verbindung zum Remotecomputer erforderlich. Erstellen Sie in
diesem Fall eine PSSession, und fhren Sie Befehle in der
PSSession mit dem Session-Parameter aus.
Viele andere Cmdlets, die Daten von Remotecomputern abrufen, wie
"Get-Process", "Get-Service", "Get-EventLog" und "Get-WmiObject"
verfgen nur ber den ComputerName-Parameter. Sie erfassen
Remotedaten mit anderen Technologien als Windows PowerShell-
Remoting. Diese Cmdlets verfgen nicht ber einen Session-
Parameter, Sie jedoch knnen das Cmdlet "Invoke-Command"
verwenden, um diese Befehle in einer PSSession auszufhren.

WIE WERDEN PSSESSIONS ERSTELLT?
Das Cmdlet "New-PSSession" ermglicht das Erstellen einer
PSSession. Mit New-PSSession knnen Sie eine PSSession auf einem
lokalen Computer oder auf einem Remotecomputer erstellen.
KNNEN PSSESSIONS AUF JEDEM COMPUTER ERSTELLT WERDEN?
Um eine PSSession zu erstellen, die mit einem Remotecomputer
verbunden wird, muss der Computer fr Remoting in Windows PowerShell
konfiguriert werden. Der aktuelle Benutzer muss Mitglied der Gruppe
"Administratoren" auf dem Remotecomputer sein oder die Anmeldeinformat
ionen eines Mitglieds in der Gruppe "Administratoren" angeben.
Weitere Informationen finden Sie unter "about_Remote_Requirements".
KNNEN PSSESSIONS ANGEZEIGT WERDEN, DIE VON ANDEREN BENUTZERN AUF
DEM COMPUTER ERSTELLT WURDEN?
Nein. Sie knnen nur die PSSessions abrufen und verwalten, die
Sie in der aktuellen Sitzung erstellt haben. PSSessions, die von
anderen Benutzern erstellt wurden, knnen nicht angezeigt werden.
Dies gilt auch, wenn Befehle auf dem lokalen Computer ausgefhrt
werden.
KNNEN HINTERGRUNDAUFTRGE IN EINER PSSESSION AUSGEFHRT WERDEN?
Ja. Ein Hintergrundauftrag ist ein Befehl, der asynchron im
Hintergrund ohne Interaktion mit der aktuellen Sitzung ausgefhrt
wird. Wenn Sie einen Befehl senden, um einen Auftrag zu starten,
gibt der Befehl ein Auftragsobjekt zurck; der Auftrag wird jedoch
weiterhin im Hintergrund ausgefhrt, bis er abgeschlossen ist.
Verwenden Sie den Befehl "Start-Job", um einen Hintergrundauftrag
auf dem lokalen Computer zu starten. Sie knnen den
Hintergrundauftrag in einer temporren Verbindung (mit dem
ComputerName-Parameter) oder in einer PSSession (mit dem
Session-Parameter) ausfhren.
Mit dem Cmdlet "Invoke-Command" und dem AsJob-Parameter knnen
Sie einen Hintergrundauftrag auf einem Remotecomputer starten.
Sie knnen auch mit dem Cmdlet "Invoke-Command" einen
Start-Job-Befehl auf einem Remotecomputer ausfhren. Wenn Sie den
AsJob-Parameter verwenden, knnen Sie den ComputerName-Parameter
oder den Session-Parameter verwenden.
Wenn Sie einen Start-Job-Befehl mit Invoke-Command ausfhren,
muss der Befehl in einer PSSession ausgefhrt werden. Wenn Sie
den ComputerName-Parameter verwenden, beendet Windows PowerShell
die Verbindung, sobald das Auftragsobjekt zurckgegeben wird, und
der Auftrag wird unterbrochen.
Weitere Informationen finden Sie unter "about_Jobs".
IST DIE AUSFHRUNG VON INTERAKTIVEN SITZUNGEN MGLICH?
Ja. Mit dem Cmdlet "Enter-PSSession" wird eine interaktive
Sitzung mit einem Remotecomputer gestartet. In einer interaktiven
Sitzung werden die eingegebenen Befehle auf dem Remotecomputer
ausgefhrt, als ob diese direkt auf dem Remotecomputer eingegeben
wrden.
Sie knnen eine interaktive Sitzung (mit dem ComputerName-Parameter)
in einer temporren Sitzung oder (mit dem Session-Parameter)
in einer PSSession ausfhren. Wenn Sie eine PSSession verwenden,
werden die Daten aus vorherigen Befehlen sowie alle Daten, die im
Rahmen der interaktiven Sitzung generiert wurden, in der
PSSession zur Verwendung in spteren Befehlen beibehalten.
Wenn Sie die interaktive Sitzung beenden, bleibt die PSSession
geffnet und verfgbar.
Weitere Informationen finden Sie unter Enter-PSSession und
Exit-PSSession.

MSSEN DIE PSSESSIONS GELSCHT WERDEN?
Ja. Eine PSSession ist ein Prozess, bei dem es sich um eine in
sich abgeschlossene Umgebung handelt, die Arbeitsspeicher und
andere Ressourcen verwendet, auch wenn sie nicht genutzt wird.
Lschen Sie die PSSession daher, wenn Sie sie nicht mehr benti-
gen. Wenn Sie mehrere PSSessions erstellen, schlieen Sie die
PSSessions, die Sie nicht bentigen, und behalten Sie nur die
gerade verwendeten Sitzungen bei.
Verwenden Sie zum Lschen von PSSessions das Cmdlet
"Remove-PSSession". Mit dem Cmdlet werden die PSSessions
gelscht, und entsprechend verwendete Ressourcen werden freigegeben.
Sie knnen auch den TimeOut-Parameter von New-PSSession
verwenden, um eine PSSession im Leerlauf nach einem festgelegten
Intervall zu schlieen. Weitere Informationen finden Sie unter
"New-PSSession".
Wenn Sie die PSSession nicht lschen oder ein Timeout festlegen,
bleibt die PSSession geffnet und verfgbar, bis Sie sie
schlieen, die Sitzung schlieen, in der sie erstellt wurde, oder
Windows PowerShell beenden. Wenn der Remotecomputer vier Minuten
lang nicht antwortet, wird die Verbindung mit der PSSession auf einem
Remotecomputer jedoch getrennt. (Der Remotecomputer ist so
konfiguriert, dass alle drei Minuten ein Taktpuls gesendet wird.)
Wenn Sie ein PSSession-Objekt in einer Variablen speichern und
anschlieend die PSSession lschen oder es zu einem Timeout
kommt, enthlt die Variable weiterhin das PSSession-Objekt; die
PSSession ist jedoch nicht aktiv und kann nicht verwendet oder
repariert werden.

SIND ALLE SITZUNGEN UND PSSESSIONS GLEICH?
Nein. Entwickler knnen benutzerdefinierte Sitzungen erstellen,
die nur ausgewhlte Anbieter und Cmdlets enthalten. Wenn ein
Befehl in einer Sitzung funktioniert, nicht jedoch in einer
anderen, ist die Sitzung mglicherweise eingeschrnkt.
SIEHE AUCH
about_Jobs
about_PSSessions
about_Remote
about_Remote_Requirements
Invoke-Command
New-PSSession
Get-PSSession
Remove-PSSession
Enter-PSSession
Exit-PSSession