Freigeben über


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 Remotebenutzer 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 für die Remoteverbindung mit dem Computer erforderlich sind. Standardmäßig verfügen nur Mitglieder der Gruppe Administratoren über die Berechtigung, die Sitzungskonfiguration zum Herstellen einer Remoteverbindung zu verwenden. Sie können jedoch die Standardeinstellungen so ändern, dass alle Benutzer oder ausgewählte Benutzer eine Remoteverbindung mit Ihrem Computer herstellen können.

Ab PowerShell 3.0 können Sie eine Sitzungskonfigurationsdatei verwenden, um die Elemente einer Sitzungskonfiguration zu definieren. Dieses Feature erleichtert das Anpassen von Sitzungen ohne Schreiben von Code und das Ermitteln der Eigenschaften einer Sitzungskonfiguration. 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 des WSMAN-basierten PowerShell-Remotings. Sie werden nur verwendet, wenn Sie die New-PSSessionCmdlets , Invoke-Commandoder Enter-PSSession 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. Dies umfasst persistente Sitzungen, die Sie mit dem 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 zu begrenzen, die der Computer in der Sitzung empfängt, den Sprachmodus der Sitzung zu definieren und die Cmdlets, Anbieter und Funktionen anzugeben, die in der Sitzung verfügbar sind.

Durch Konfigurieren der Sicherheitsbeschreibung 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 verwenden zu können. 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 sind nur Administratoren des Computers berechtigt, die Standardsitzungskonfigurationen zu verwenden. Sie können jedoch die Sicherheitsbeschreibungen so ändern, dass alle Benutzer, niemand oder nur ausgewählte Benutzer die Sitzungskonfigurationen auf Ihrem Computer verwenden können.

Integrierte Sitzungskonfigurationen

PowerShell 3.0 enthält integrierte Sitzungskonfigurationen namens Microsoft.PowerShell und Microsoft.PowerShell.Workflow. Auf Computern, auf denen 64-Bit-Versionen von Windows ausgeführt werden, stellt PowerShell auch Microsoft.PowerShell32 bereit, eine 32-Bit-Sitzungskonfiguration.

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

Die Sicherheitsbeschreibungen für die Standardsitzungskonfigurationen lassen nur Mitgliedern der Gruppe Administratoren auf dem lokalen Computer die Verwendung zu. Daher können nur Mitglieder der Gruppe Administratoren remote eine Verbindung mit dem Computer herstellen, es sei denn, Sie ändern die Standardeinstellungen.

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

Anzeigen von Sitzungskonfigurationen auf dem lokalen Computer

Verwenden Sie das Cmdlet Get-PSSessionConfiguration, um die Sitzungskonfigurationen auf Ihrem lokalen Computer abzurufen.

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 werden.

Geben Sie beispielsweise Folgendes ein, um alle Eigenschaften eines Sitzungskonfigurationsobjekts anzuzeigen:

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 Laufwerk WSMAN: befinden sich Sitzungskonfigurationen im Knoten Plug-In. (Alle Sitzungskonfigurationen befinden sich im Knoten Plug-In, aber es gibt Elemente im Knoten Plug-In, die keine Sitzungskonfigurationen sind.)

Geben Sie beispielsweise Folgendes ein, um die Sitzungskonfigurationen auf dem lokalen Computer anzuzeigen:

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 Laufwerk WSMAN: auf Ihrem lokalen Computer eine Notiz für den Remotecomputer hinzuzufügen, und verwenden Sie dann das Laufwerk WSMAN: zum Anzeigen der Sitzungskonfigurationen.

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

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 der Sicherheitsbeschreibung 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 Sicherheitsbeschreibungen der Sitzungskonfigurationen ändern, um den Remotezugriff zuzulassen.

Verwenden Sie das Cmdlet Enable-PSRemoting, um den Remotezugriff auf die Sitzungskonfigurationen auf dem Computer zu ermöglichen. Dieses Cmdlet erstellt zwei Sitzungskonfigurationen:

  • mit folgendem Namen: "PowerShell." + "aktuelle PowerShell-Version"
  • mit dem Namen "PowerShell.6", nicht mit einer bestimmten PowerShell-Version versehen.

Außerdem verfügen standardmäßig nur Mitglieder der Gruppe Administratoren auf dem Computer über die Berechtigung Ausführen für die Standardsitzungskonfigurationen. Sie können jedoch die Sicherheitsbeschreibungen für die Standardsitzungskonfigurationen und für 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 den Sicherheitsbeschreibungen der Sitzungskonfigurationen Microsoft.PowerShell und Microsoft.PowerShell32 Die Berechtigungen "Ausführen" für diese Benutzer hinzuzufügen.

Mit dem folgenden Befehl wird beispielsweise eine Eigenschaftenseite geöffnet, auf der Sie den Sicherheitsdeskriptor für die Standardsitzungskonfiguration von Microsoft.PowerShell ändern können.

Set-PSSessionConfiguration -name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Verwenden Sie das Cmdlet Disable-PSSessionConfiguration, um allen Benutzern die Berechtigung für alle Sitzungskonfigurationen auf dem Computer zu verweigern. Mit dem folgenden Befehl werden beispielsweise die Standardsitzungskonfigurationen auf dem Computer deaktiviert.

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

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

PS C:> Disable-PSRemoting

Damit Remotebenutzer alle Sitzungskonfigurationen auf dem Computer verwenden können, 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*

Verwenden Sie das Cmdlet Set-PSSessionConfiguration, um weitere Änderungen am Sicherheitsdeskriptor einer Sitzungskonfiguration vorzunehmen. Verwenden Sie den SecurityDescriptorSDDL-Parameter, um einen SDDL-Zeichenfolgenwert zu übermitteln. Verwenden Sie den ShowSecurityDescriptorUI-Parameter, um ein Eigenschaftenblatt für die Benutzeroberfläche anzuzeigen, das Ihnen beim Erstellen einer neuen SDDL hilft.

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.

Mit dem folgenden Befehl wird beispielsweise eine Sitzungskonfiguration erstellt, die mit der Microsoft.PowerShell-Sitzungskonfiguration identisch ist, mit der Ausnahme, dass die von einem Remotebefehl empfangenen Daten auf 20 Megabyte (MB) begrenzt werden. (Der Standardwert ist 50 MB).

Register-PSSessionConfiguration -Name NewConfig `
  -MaximumReceivedDataSizePerCommandMB 20

Wenn Sie eine Sitzungskonfiguration erstellen, können Sie sie mithilfe der anderen Cmdlets für die Sitzungskonfiguration verwalten, und sie wird im Laufwerk WSMAN: angezeigt.

Weitere Informationen finden Sie unter Register-PSSessionConfiguration.

Entfernen einer Sitzungskonfiguration

Verwenden Sie das Cmdlet Unregister-PSSessionConfiguration, um eine Sitzungskonfiguration vom lokalen Computer zu entfernen. Mit dem folgenden Befehl wird beispielsweise die NewConfig-Sitzungskonfiguration vom Computer entfernt.

PS C:> Unregister-PSSessionConfiguration -Name NewConfig

Weitere Informationen finden Sie unter Aufheben der Registrierung von PSSessionConfiguration.

Wiederherstellen einer Sitzungskonfiguration

Verwenden Sie das Cmdlet Enable-PSRemoting, um eine Standardsitzungskonfiguration wiederherzustellen, die versehentlich gelöscht (nicht registriert) wurde.

Das Cmdlet Enable-PSRemoting erstellt alle Standardsitzungskonfigurationen neu, die auf dem Computer nicht vorhanden sind. Die Eigenschaftenwerte 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 Parameter ConfigurationName 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 Parameter ConfigurationName, um die WithProfile-Konfiguration auf dem Server01-Computer auszuwählen.

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

Dieser Befehl ist nur erfolgreich, wenn der aktuelle Benutzer über die Berechtigung zur 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 Einstellungsvariablen finden Sie unter about_Preference_Variables.

SCHLÜSSELWÖRTER

about_Endpoints about_SessionConfigurations

Weitere Informationen