about_Session_Configurations

Kurze Beschreibung

Beschreibt die Sitzungskonfigurationen, die bestimmen, welche Benutzer eine Remoteverbindung mit dem Computer herstellen können und welche Befehle ausgeführt werden können.

Lange Beschreibung

Eine Sitzungskonfiguration, auch als "Endpunkt" bezeichnet, ist eine Gruppe von Einstellungen auf dem lokalen Computer, die die Umgebung für die PowerShell-Sitzungen definieren, die erstellt werden, wenn Remote- oder lokale Benutzer eine Verbindung mit PowerShell auf dem lokalen Computer herstellen.

Administratoren des Computers können Sitzungskonfigurationen verwenden, um den Computer zu schützen und benutzerdefinierte Umgebungen für Benutzer zu definieren, die eine Verbindung mit dem Computer herstellen.

Administratoren können auch Sitzungskonfigurationen verwenden, um die Berechtigungen zu bestimmen, die erforderlich sind, um eine Remoteverbindung mit dem Computer herzustellen. Standardmäßig verfügen nur Mitglieder der Gruppe "Administratoren" über die Berechtigung, remote eine Verbindung mit der Sitzungskonfiguration herzustellen. Sie können jedoch die Standardeinstellungen ändern, um allen Benutzern oder ausgewählten Benutzern die Remoteverbindung mit Ihrem Computer zu ermöglichen.

Ab PowerShell 3.0 können Sie eine Sitzungskonfigurationsdatei verwenden, um die Elemente einer Sitzungskonfiguration zu definieren. Mit diesem Feature können Sie Sitzungen ganz einfach anpassen, ohne Code zu schreiben und die Eigenschaften einer Sitzungskonfiguration zu ermitteln. Verwenden Sie zum Erstellen einer Sitzungskonfigurationsdatei das Cmdlet New-PSSessionConfiguration. Weitere Informationen zu Sitzungskonfigurationsdateien finden Sie unter about_Session_Configuration_Files.

Sitzungskonfigurationen sind ein Feature der WSMAN-basierten PowerShell-Remoting. Sie werden nur verwendet, wenn Sie die New-PSSessionOder Invoke-CommandEnter-PSSession Cmdlets verwenden, um eine Verbindung mit einem Windows-Remotecomputer herzustellen.

Um die Sitzungskonfigurationen auf einem Windows-Computer zu verwalten, starten Sie PowerShell mit der Option "Als Administrator ausführen ".

Informationen zu Sitzungskonfigurationen

Jede PowerShell-Sitzung verwendet eine Sitzungskonfiguration. Dazu gehören dauerhafte Sitzungen, die Sie mithilfe der New-PSSession- oder Enter-PSSession-Cmdlets erstellen, und die temporären Sitzungen, die PowerShell erstellt, wenn Sie den ComputerName-Parameter eines Cmdlets verwenden, das WS-Management-basierte Remotingtechnologie verwendet, z. B. Invoke-Command.

Administratoren können Sitzungskonfigurationen verwenden, um die Ressourcen des Computers zu schützen und benutzerdefinierte Umgebungen für Benutzer zu erstellen, die eine Verbindung mit dem Computer herstellen. Sie können beispielsweise eine Sitzungskonfiguration verwenden, um die Größe von Objekten einzuschränken, die der Computer in der Sitzung empfängt, um den Sprachmodus der Sitzung zu definieren und die Cmdlets, Anbieter und Funktionen anzugeben, die in der Sitzung verfügbar sind.

Durch Konfigurieren des Sicherheitsdeskriptors einer Sitzungskonfiguration bestimmen Sie, wer die Sitzungskonfiguration verwenden kann, um eine Verbindung mit dem Computer herzustellen. Benutzer müssen über die Berechtigung "Ausführen" für eine Sitzungskonfiguration verfügen, um sie in einer Sitzung zu verwenden. Wenn ein Benutzer nicht über die erforderlichen Berechtigungen zum Verwenden einer der Sitzungskonfigurationen auf einem Computer verfügt, kann der Benutzer keine Remoteverbindung mit dem Computer herstellen.

Standardmäßig verfügen nur Administratoren des Computers über die Berechtigung, die Standardsitzungskonfigurationen zu verwenden. Sie können jedoch die Sicherheitsdeskriptoren ändern, damit jeder, niemand oder nur ausgewählte Benutzer die Sitzungskonfigurationen auf Ihrem Computer verwenden kann.

Integrierte Sitzungskonfigurationen

PowerShell 3.0 enthält integrierte Sitzungskonfigurationen namens Microsoft.PowerShell und Microsoft.PowerShell.Workflow. Auf Computern mit 64-Bit-Versionen von Windows bietet PowerShell auch Microsoft.PowerShell32, eine 32-Bit-Sitzungskonfiguration.

Die Microsoft.PowerShell-Sitzungskonfiguration wird standardmäßig für Sitzungen verwendet, das heißt, wenn ein Befehl zum Erstellen einer Sitzung nicht den ConfigurationName-Parameter des Cmdlets "New-PSSession", "Enter-PSSession" oder "Invoke-Command" enthält.

Die Sicherheitsdeskriptoren für die Standardsitzungskonfigurationen ermöglichen es nur Mitgliedern der Gruppe "Administratoren" auf dem lokalen Computer, sie zu verwenden. Daher können nur Mitglieder der Gruppe "Administratoren" eine Remoteverbindung mit dem Computer herstellen, es sei denn, Sie ändern die Standardeinstellungen.

Sie können die Standardsitzungskonfigurationen mithilfe der $PSSessionConfigurationName Einstellungsvariable ändern. Weitere Informationen finden Sie unter „about_Preference_Variables“.

Anzeigen von Sitzungskonfigurationen auf dem lokalen Computer

Um die Sitzungskonfigurationen auf Ihrem lokalen Computer abzurufen, verwenden Sie das Cmdlet Get-PSSessionConfiguration.

Beispiel:

PS C:> Get-PSSessionConfiguration | Format-List -Property Name, Permission

Name       : microsoft.powershell
Permission : BUILTIN\Administrators AccessAllowed

Name       : microsoft.powershell.workflow
Permission : BUILTIN\Administrators AccessAllowed

Name       : microsoft.powershell32
Permission : BUILTIN\Administrators AccessAllowed

Das Sitzungskonfigurationsobjekt wird in PowerShell 3.0 erweitert, um die Eigenschaften der Sitzungskonfiguration anzuzeigen, die mithilfe einer Sitzungskonfigurationsdatei konfiguriert sind.

Um beispielsweise alle Eigenschaften eines Sitzungskonfigurationsobjekts anzuzeigen, geben Sie Folgendes ein:

PS C:> Get-PSSessionConfiguration | Format-List -Property *

Sie können auch den WSMan-Anbieter in PowerShell verwenden, um Sitzungskonfigurationen anzuzeigen. Der WSMan-Anbieter erstellt ein WSMAN:-Laufwerk in Ihrer Sitzung.

Im WSMAN: Laufwerk befinden sich Sitzungskonfigurationen im Plug-In-Knoten. (Alle Sitzungskonfigurationen befinden sich im Plug-In-Knoten, es gibt jedoch Elemente im Plug-In-Knoten, die keine Sitzungskonfigurationen sind.)

Um beispielsweise die Sitzungskonfigurationen auf dem lokalen Computer anzuzeigen, geben Sie Folgendes ein:

PS C:> dir wsman:\localhost\plugin\microsoft*

WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

Type       Keys                              Name
----       ----                              ----
Container  {Name=microsoft.powershell}       microsoft.powershell
Container  {Name=microsoft.powershell.wor... microsoft.powershell.workflow
Container  {Name=microsoft.powershell32}     microsoft.powershell32

Anzeigen von Sitzungskonfigurationen auf einem Remotecomputer

Um die Sitzungskonfigurationen auf einem Remotecomputer anzuzeigen, verwenden Sie das Cmdlet Connect-WSMan, um dem WSMAN eine Notiz für den Remotecomputer hinzuzufügen: Laufwerk auf Ihrem lokalen Computer, und verwenden Sie dann das WSMAN: Laufwerk, um die Sitzungskonfigurationen anzuzeigen.

Der folgende Befehl fügt beispielsweise dem WSMAN einen Knoten für den Server01-Remotecomputer hinzu: Laufwerk auf dem lokalen Computer.

PS C:> Connect-WSMan server01.corp.fabrikam.com

Wenn der Befehl abgeschlossen ist, können Sie zum Knoten für den Server01-Computer navigieren, um die Sitzungskonfigurationen anzuzeigen.

Beispiel:

PS C:> cd wsman:

PS WSMan:> dir

ComputerName                                  Type
------------                                  ----
localhost                                     Container
server01.corp.fabrikam.com                    Container

PS WSMan:> dir server01\plugin\

WSManConfig: Microsoft.WSMan.Management\WSMan::server01.corp.fabrikam.com\Pl
ugin

Type       Keys                              Name
----       ----                              ----
Container  {Name=microsoft.powershell}       microsoft.powershell
Container  {Name=microsoft.powershell.wor... microsoft.powershell.workflow
Container  {Name=microsoft.powershell32}     microsoft.powershell32

Ändern des Sicherheitsdeskriptors einer Sitzungskonfiguration

In Windows Server 2012 und neueren Versionen von Windows Server sind die integrierten Sitzungskonfigurationen standardmäßig für Remotebenutzer aktiviert. In anderen unterstützten Versionen von Windows müssen Sie die Sicherheitsdeskriptoren der Sitzungskonfigurationen ändern, um den Remotezugriff zu ermöglichen.

Um den Remotezugriff auf die Sitzungskonfigurationen auf dem Computer zu aktivieren, verwenden Sie das Cmdlet Enable-PSRemoting. Dieses Cmdlet erstellt zwei Sitzungskonfigurationen:

  • mit dem Namen, der als "PowerShell" definiert ist. + "aktuelle PowerShell-Version"
  • mit dem Namen "PowerShell.6", nicht mit einer bestimmten PowerShell-Version verbunden.

Standardmäßig verfügen nur Mitglieder der Gruppe "Administratoren" auf dem Computer über die Berechtigung "Ausführen" für die Standardsitzungskonfigurationen, aber Sie können die Sicherheitsdeskriptoren für die Standardsitzungskonfigurationen und alle von Ihnen erstellten Sitzungskonfigurationen ändern.

Um anderen Benutzern die Berechtigung zu erteilen, eine Remoteverbindung mit dem Computer herzustellen, verwenden Sie das Cmdlet Set-PSSessionConfiguration, um diesen Benutzern Berechtigungen für die Sicherheitsdeskriptoren der Konfigurationen Microsoft.PowerShell und Microsoft.PowerShell32 hinzuzufügen.

Der folgende Befehl öffnet beispielsweise eine Eigenschaftenseite, mit der Sie den Sicherheitsdeskriptor für die Standardsitzungskonfiguration von Microsoft.PowerShell ändern können.

Set-PSSessionConfiguration -name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Um alle Berechtigungen für alle Sitzungskonfigurationen auf dem Computer zu verweigern, verwenden Sie das Cmdlet Disable-PSSessionConfiguration. Der folgende Befehl deaktiviert beispielsweise die Standardsitzungskonfigurationen auf dem Computer.

PS C:> Disable-PSSessionConfiguration -Name Microsoft.PowerShell

Um zu verhindern, dass Remotebenutzer eine Verbindung mit dem Computer herstellen, aber lokale Benutzer eine Verbindung herstellen können, verwenden Sie das Cmdlet Disable-PSRemoting. Disable-PSRemoting fügt einen Eintrag "Network_Deny_All" zu allen Sitzungskonfigurationen auf dem Computer hinzu.

PS C:> Disable-PSRemoting

Um Remotebenutzern die Verwendung aller Sitzungskonfigurationen auf dem Computer zu ermöglichen, verwenden Sie das Cmdlet Enable-PSRemoting oder Enable-PSSessionConfiguration. Der folgende Befehl ermöglicht beispielsweise den Remotezugriff auf die integrierten Sitzungskonfigurationen.

PS C:> Enable-PSSessionConfiguration -name Microsoft.Power*

Wenn Sie andere Änderungen an der Sicherheitsdeskriptor einer Sitzungskonfiguration vornehmen möchten, verwenden Sie das Cmdlet Set-PSSessionConfiguration. Verwenden Sie den SecurityDescriptorSDDL-Parameter, um einen SDDL-Zeichenfolgenwert zu übermitteln. Verwenden Sie den ShowSecurityDescriptorUI-Parameter, um ein Eigenschaftenblatt der Benutzeroberfläche anzuzeigen, mit dem Sie eine neue SDDL erstellen können.

Beispiel:

Set-PSSessionConfiguration -Name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Erstellen einer neuen Sitzungskonfiguration

Verwenden Sie das Cmdlet Register-PSSessionConfiguration, um eine neue Sitzungskonfiguration auf dem lokalen Computer zu erstellen. Zum Definieren der neuen Sitzungskonfiguration können Sie eine C#-Assembly, ein PowerShell-Skript und die Parameter des Cmdlets Register-PSSessionConfiguration verwenden.

Der folgende Befehl erstellt z. B. eine Sitzungskonfiguration, die identisch mit der Microsoft.PowerShell-Sitzungskonfiguration ist, mit der Ausnahme, dass die von einem Remotebefehl empfangenen Daten auf 20 Mb (MB) beschränkt werden. (Der Standardwert ist 50 MB).

Register-PSSessionConfiguration -Name NewConfig `
  -MaximumReceivedDataSizePerCommandMB 20

Wenn Sie eine Sitzungskonfiguration erstellen, können Sie sie mithilfe der anderen Sitzungskonfigurations-Cmdlets verwalten und im WSMAN:-Laufwerk angezeigt werden.

Weitere Informationen finden Sie unter Register-PSSessionConfiguration.

Entfernen einer Sitzungskonfiguration

Um eine Sitzungskonfiguration vom lokalen Computer zu entfernen, verwenden Sie das Cmdlet Unregister-PSSessionConfiguration. Der folgende Befehl entfernt beispielsweise die NewConfig-Sitzungskonfiguration vom Computer.

PS C:> Unregister-PSSessionConfiguration -Name NewConfig

Weitere Informationen finden Sie unter "Unregister-PSSessionConfiguration".

Wiederherstellen einer Sitzungskonfiguration

Wenn Sie eine standardsitzungskonfiguration wiederherstellen möchten, die versehentlich gelöscht wurde (nicht registriert), verwenden Sie das Cmdlet Enable-PSRemoting.

Das Cmdlet Enable-PSRemoting erstellt alle Standardsitzungskonfigurationen neu, die nicht auf dem Computer vorhanden sind. Die Eigenschaftswerte vorhandener Sitzungskonfigurationen werden nicht überschrieben oder geändert.

Um die ursprünglichen Eigenschaftswerte einer Standardsitzungskonfiguration wiederherzustellen, verwenden Sie die Unregister-PSSessionConfiguration, um die Sitzungskonfiguration zu löschen, und verwenden Sie dann das Cmdlet Enable-PSRemoting, um sie neu zu erstellen.

Auswählen einer Sitzungskonfiguration

Um eine bestimmte Sitzungskonfiguration für eine Sitzung auszuwählen, verwenden Sie den ConfigurationName-Parameter von New-PSSession, Enter-PSSession oder Invoke-Command.

Dieser Befehl verwendet beispielsweise das Cmdlet New-PSSession, um eine PSSession auf dem Server01-Computer zu starten. Der Befehl verwendet den ConfigurationName-Parameter, um die WithProfile-Konfiguration auf dem Server01-Computer auszuwählen.

PS C:> New-PSSession -ComputerName Server01 -ConfigurationName WithProfile

Dieser Befehl kann nur erfolgreich ausgeführt werden, wenn der aktuelle Benutzer über die Verwendung der WithProfile-Sitzungskonfiguration verfügt oder die Anmeldeinformationen eines Benutzers angeben kann, der über die erforderlichen Berechtigungen verfügt.

Sie können auch die einstellungsvariable $PSSessionConfigurationName verwenden, um die Standardsitzungskonfiguration auf dem Computer zu ändern. Weitere Informationen zur $PSSessionConfigurationName Einstellungsvariable finden Sie unter about_Preference_Variables.

SCHLÜSSELWÖRTER

about_Endpoints about_SessionConfigurations

Siehe auch