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-PSSession
Cmdlets , Invoke-Command
oder 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
- about_Preference_Variables
- about_PSSessions
- about_Remote
- about_Session_Configuration_Files
- New-PSSession
- Disable-PSSessionConfiguration
- Enable-PSSessionConfiguration
- Get-PSSessionConfiguration
- Register-PSSessionConfiguration
- Set-PSSessionConfiguration
- Unregister-PSSessionConfiguration
- New-PSSessionConfigurationFile
- Test-PSSessionConfigurationFile