Freigeben über


about_PSSessions

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