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 für die Remoteverbindung mit dem Computer erforderlich sind. Standardmäßig verfügen nur Mitglieder der Gruppe "Administratoren" über die Berechtigung, die Sitzungskonfiguration für die Remoteverbindung zu verwenden. 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. Dieses Feature erleichtert das Anpassen von Sitzungen, ohne Code zu schreiben und die Eigenschaften einer Sitzungskonfiguration zu ermitteln. Verwenden Sie das Cmdlet New-PSSessionConfiguration, um eine Sitzungskonfigurationsdatei zu erstellen. 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-PSSession
Windows-Remotecomputer Invoke-Command
Enter-PSSession
oder 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 Cmdlets "New-PSSession" oder "Enter-PSSession" erstellen, sowie die temporären Sitzungen, die PowerShell erstellt, wenn Sie den Parameter "ComputerName" 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 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 können.
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, d. h., 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 nur Mitgliedern der Gruppe "Administratoren" auf dem lokalen Computer, sie zu verwenden. 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 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, aber es gibt 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 Dem lokalen Computer, und verwenden Sie dann das WSMAN:-Laufwerk, um die Sitzungskonfigurationen anzuzeigen.
Beispielsweise fügt der folgende Befehl 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.
Zum 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 Sicherheitsdeskriptoren der Sitzungskonfigurationen ändern, um den Remotezugriff zu ermöglichen.
Verwenden Sie das Cmdlet Enable-PSRemoting, um den Remotezugriff auf die Sitzungskonfigurationen auf dem Computer zu aktivieren. 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 versehen.
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 für alle von Ihnen erstellten Sitzungskonfigurationen ändern.
Um anderen Benutzern remote die Berechtigung zum Herstellen einer Verbindung mit dem Computer zu erteilen, verwenden Sie das Cmdlet Set-PSSessionConfiguration, um diesen Benutzern Berechtigungen für die Sicherheitsdeskriptoren der Sitzungskonfigurationen "Microsoft.PowerShell" und "Microsoft.PowerShell32" 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
Um alle Berechtigungen für alle Sitzungskonfigurationen auf dem Computer zu verweigern, verwenden Sie das Cmdlet Disable-PSSessionConfiguration. Mit dem folgenden Befehl werden beispielsweise die Standardsitzungskonfigurationen auf dem Computer deaktiviert.
PS C:> Disable-PSSessionConfiguration -Name Microsoft.PowerShell
Um zu verhindern, dass Remotebenutzer eine Verbindung mit dem Computer herstellen, aber lokale Benutzer die Verbindung herstellen können, verwenden Sie das Cmdlet Disable-PSRemoting. Disable-PSRemoting fügt allen Sitzungskonfigurationen auf dem Computer einen Eintrag "Network_Deny_All" 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 Sicherheitsbeschreibung 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.
Zum 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 sie die von einem Remotebefehl empfangenen Daten auf 20 MB beschränkt. (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.
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 Unregister-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 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
Verwenden Sie den ConfigurationName-Parameter "New-PSSession", "Enter-PSSession" oder "Invoke-Command", um eine bestimmte Sitzungskonfiguration für eine Sitzung auszuwählen.
Beispielsweise verwendet dieser Befehl 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 zum Verwenden 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
Siehe auch
- 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