about_Session_Configurations

Korte beschrijving

Beschrijft sessieconfiguraties, die bepalen welke gebruikers op afstand verbinding kunnen maken met de computer en de opdrachten die ze kunnen uitvoeren.

Lange beschrijving

Een sessieconfiguratie, ook wel een eindpunt genoemd, is een groep instellingen op de lokale computer die de omgeving definieert voor de PowerShell-sessies die worden gemaakt wanneer externe of lokale gebruikers verbinding maken met PowerShell op de lokale computer.

Beheer istrators van de computer kunnen sessieconfiguraties gebruiken om de computer te beveiligen en aangepaste omgevingen te definiëren voor gebruikers die verbinding maken met de computer.

Beheer istrators kunnen ook sessieconfiguraties gebruiken om de machtigingen te bepalen die nodig zijn om op afstand verbinding te maken met de computer. Standaard zijn alleen leden van de groep Beheer istrators gemachtigd om de sessieconfiguratie te gebruiken om extern verbinding te maken, maar u kunt de standaardinstellingen wijzigen zodat alle gebruikers, of geselecteerde gebruikers, extern verbinding kunnen maken met uw computer.

Vanaf PowerShell 3.0 kunt u een sessieconfiguratiebestand gebruiken om de elementen van een sessieconfiguratie te definiëren. Met deze functie kunt u eenvoudig sessies aanpassen zonder code te schrijven en de eigenschappen van een sessieconfiguratie te detecteren. Gebruik de cmdlet New-PSSessionConfiguration om een sessieconfiguratiebestand te maken. Zie about_Session_Configuration_Files voor meer informatie over sessieconfiguratiebestanden.

Sessieconfiguraties zijn een functie van Web Services for Management (WS-Management) op basis van externe communicatie met PowerShell. Ze worden alleen gebruikt wanneer u de cmdlets New-PSSession, Invoke-Command of Enter-PSSession gebruikt om verbinding te maken met een externe computer.

Opmerking: Als u de sessieconfiguraties wilt beheren, start u PowerShell met de optie Uitvoeren als administrator.

Over sessieconfiguraties

Elke PowerShell-sessie maakt gebruik van een sessieconfiguratie. Dit omvat permanente sessies die u maakt met behulp van de cmdlets New-PSSession of Enter-PSSession, en de tijdelijke sessies die PowerShell maakt wanneer u de parameter ComputerName van een cmdlet gebruikt die gebruikmaakt van WS-Management-gebaseerde externe communicatietechnologie, zoals Invoke-Command.

Beheer istrators kunnen sessieconfiguraties gebruiken om de resources van de computer te beveiligen en aangepaste omgevingen te maken voor gebruikers die verbinding maken met de computer. U kunt bijvoorbeeld een sessieconfiguratie gebruiken om de grootte te beperken van objecten die de computer in de sessie ontvangt, om de taalmodus van de sessie te definiëren en om de cmdlets, providers en functies op te geven die beschikbaar zijn in de sessie.

Door de beveiligingsdescriptor van een sessieconfiguratie te configureren, bepaalt u wie de sessieconfiguratie kan gebruiken om verbinding te maken met de computer. Gebruikers moeten beschikken over de machtiging Uitvoeren voor een sessieconfiguratie om deze in een sessie te kunnen gebruiken. Als een gebruiker niet over de vereiste machtigingen beschikt om een van de sessieconfiguraties op een computer te gebruiken, kan de gebruiker geen verbinding maken met de computer op afstand.

Standaard zijn alleen Beheer istrators van de computer gemachtigd om de standaardsessieconfiguraties te gebruiken. Maar u kunt de beveiligingsdescriptors wijzigen zodat iedereen, niemand of alleen geselecteerde gebruikers de sessieconfiguraties op uw computer kunnen gebruiken.

Ingebouwde sessieconfiguraties

PowerShell 3.0 bevat ingebouwde sessieconfiguraties met de naam Microsoft.PowerShell en Microsoft.PowerShell.Workflow. Op computers met 64-bits versies van Windows biedt PowerShell ook Microsoft.PowerShell32, een 32-bits sessieconfiguratie.

De configuratie van de Microsoft.PowerShell-sessie wordt standaard gebruikt voor sessies, dat wil gezegd, wanneer een opdracht voor het maken van een sessie niet de parameter ConfigurationName van de cmdlet New-PSSession, Enter-PSSession of Invoke-Command bevat.

Met de beveiligingsdescriptors voor de standaardsessieconfiguraties kunnen alleen leden van de groep Beheer istrators op de lokale computer deze gebruiken. Als zodanig kunnen alleen leden van de groep Beheer istrators op afstand verbinding maken met de computer, tenzij u de standaardinstellingen wijzigt.

U kunt de standaardsessieconfiguraties wijzigen met behulp van de $PSSessionConfigurationName voorkeursvariabele. Zie about_Preference_Variables voor meer informatie.

Sessieconfiguraties weergeven op de lokale computer

Gebruik de cmdlet Get-PSSessionConfiguration om de sessieconfiguraties op uw lokale computer op te halen.

Typ bijvoorbeeld:

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

Het sessieconfiguratieobject wordt uitgebreid in PowerShell 3.0 om de eigenschappen weer te geven van de sessieconfiguratie die zijn geconfigureerd met behulp van een sessieconfiguratiebestand.

Als u bijvoorbeeld alle eigenschappen van een sessieconfiguratieobject wilt zien, typt u:

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

U kunt ook de WSMan-provider in PowerShell gebruiken om sessieconfiguraties weer te geven. De WSMan-provider maakt een WSMAN: station in uw sessie.

In het WSMAN: station bevinden sessieconfiguraties zich in het knooppunt van de invoegtoepassing. (Alle sessieconfiguraties bevinden zich in het knooppunt Invoegtoepassing, maar er zijn items in het knooppunt Invoegtoepassing die geen sessieconfiguraties zijn.)

Als u bijvoorbeeld de sessieconfiguraties op de lokale computer wilt weergeven, typt u:

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

Sessieconfiguraties weergeven op een externe computer

Als u de sessieconfiguraties op een externe computer wilt weergeven, gebruikt u de cmdlet Verbinding maken-WSMan om een notitie voor de externe computer toe te voegen aan de WSMAN: station op uw lokale computer en gebruikt u vervolgens het station WSMAN: station om de sessieconfiguraties weer te geven.

Met de volgende opdracht wordt bijvoorbeeld een knooppunt voor de externe Server01-computer toegevoegd aan het WSMAN-station op de lokale computer.

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

Wanneer de opdracht is voltooid, kunt u naar het knooppunt voor de Server01-computer navigeren om de sessieconfiguraties weer te geven.

Voorbeeld:

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

De beveiligingsdescriptor van een sessieconfiguratie wijzigen

In Windows Server 2012 en nieuwere versies van Windows Server zijn de ingebouwde sessieconfiguraties standaard ingeschakeld voor externe gebruikers. In andere ondersteunde versies van Windows moet u de beveiligingsdescriptors van de sessieconfiguraties wijzigen om externe toegang toe te staan.

Als u externe toegang tot de sessieconfiguraties op de computer wilt inschakelen, gebruikt u de cmdlet Enable-PSRemoting.

Standaard hebben alleen leden van de groep Beheer istrators op de computer de machtiging Uitvoeren voor de standaardsessieconfiguraties, maar u kunt de beveiligingsdescriptors wijzigen voor de standaardsessieconfiguraties en op eventuele sessieconfiguraties die u maakt.

Als u andere gebruikers toestemming wilt geven om op afstand verbinding te maken met de computer, gebruikt u de cmdlet Set-PSSessionConfiguration om 'Execute'-machtigingen voor die gebruikers toe te voegen aan de beveiligingsdescriptors van de sessieconfiguraties Microsoft.PowerShell en Microsoft.PowerShell32.

Met de volgende opdracht wordt bijvoorbeeld een eigenschappenpagina geopend waarmee u de beveiligingsdescriptor voor de standaardsessieconfiguratie van Microsoft.PowerShell kunt wijzigen.

Set-PSSessionConfiguration -name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Gebruik de cmdlet Disable-PSSessionConfiguration om iedereen toestemming te geven voor alle sessieconfiguraties op de computer. Met de volgende opdracht worden bijvoorbeeld de standaardsessieconfiguraties op de computer uitgeschakeld.

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

Gebruik de cmdlet Disable-PSRemoting om te voorkomen dat externe gebruikers verbinding maken met de computer, maar lokale gebruikers toestaan verbinding te maken. Disable-PSRemoting voegt een vermelding 'Network_Deny_All' toe aan alle sessieconfiguraties op de computer.

PS C:> Disable-PSRemoting

Als u wilt toestaan dat externe gebruikers alle sessieconfiguraties op de computer gebruiken, gebruikt u de cmdlet Enable-PSRemoting of Enable-PSSessionConfiguration. Met de volgende opdracht kunt u bijvoorbeeld externe toegang tot de ingebouwde sessieconfiguraties inschakelen.

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

Als u andere wijzigingen wilt aanbrengen in de beveiligingsdescriptor van een sessieconfiguratie, gebruikt u de cmdlet Set-PSSessionConfiguration. Gebruik de parameter SecurityDescriptorSDDL om een SDDL-tekenreekswaarde te verzenden. Gebruik de parameter ShowSecurityDescriptorUI om een eigenschappenvenster van de gebruikersinterface weer te geven waarmee u een nieuwe SDDL kunt maken.

Voorbeeld:

Set-PSSessionConfiguration -Name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Een nieuwe sessieconfiguratie maken

Als u een nieuwe sessieconfiguratie op de lokale computer wilt maken, gebruikt u de cmdlet Register-PSSessionConfiguration. Als u de nieuwe sessieconfiguratie wilt definiëren, kunt u een C#-assembly, een PowerShell-script en de parameters van de cmdlet Register-PSSessionConfiguration gebruiken.

Met de volgende opdracht maakt u bijvoorbeeld een sessieconfiguratie die identiek is aan de configuratie van de Microsoft.PowerShell-sessie, behalve dat de gegevens die zijn ontvangen van een externe opdracht worden beperkt tot 20 MB (megabytes). (De standaardwaarde is 50 MB).

Register-PSSessionConfiguration -Name NewConfig `
  -MaximumReceivedDataSizePerCommandMB 20

Wanneer u een sessieconfiguratie maakt, kunt u deze beheren met behulp van de andere cmdlets voor sessieconfiguratie en wordt deze weergegeven in het station WSMAN: station.

Zie Register-PSSessionConfiguration voor meer informatie.

Een sessieconfiguratie verwijderen

Als u een sessieconfiguratie van de lokale computer wilt verwijderen, gebruikt u de cmdlet Unregister-PSSessionConfiguration. Met de volgende opdracht wordt bijvoorbeeld de configuratie van de NewConfig-sessie van de computer verwijderd.

PS C:> Unregister-PSSessionConfiguration -Name NewConfig

Zie Unregister-PSSessionConfiguration voor meer informatie.

Een sessieconfiguratie herstellen

Als u een standaardsessieconfiguratie wilt herstellen die per ongeluk is verwijderd (niet geregistreerd), gebruikt u de cmdlet Enable-PSRemoting.

Met de cmdlet Enable-PSRemoting worden alle standaardconfiguraties voor sessies die niet bestaan op de computer opnieuw gemaakt. De eigenschapswaarden van bestaande sessieconfiguraties worden niet overschreven of gewijzigd.

Als u de oorspronkelijke eigenschapswaarden van een standaardsessieconfiguratie wilt herstellen, gebruikt u de unregister-PSSessionConfiguration om de sessieconfiguratie te verwijderen en gebruikt u vervolgens de cmdlet Enable-PSRemoting om deze opnieuw te maken.

Een sessieconfiguratie selecteren

Als u een bepaalde sessieconfiguratie voor een sessie wilt selecteren, gebruikt u de ConfigurationName-parameter van New-PSSession, Enter-PSSession of Invoke-Command.

Met deze opdracht wordt bijvoorbeeld de cmdlet New-PSSession gebruikt om een PSSession op de Server01-computer te starten. De opdracht gebruikt de parameter ConfigurationName om de WithProfile-configuratie op de Server01-computer te selecteren.

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

Deze opdracht slaagt alleen als de huidige gebruiker gemachtigd is om de WithProfile-sessieconfiguratie te gebruiken of de referenties kan opgeven van een gebruiker met de vereiste machtigingen.

U kunt ook de $PSSessionConfigurationName voorkeursvariabele gebruiken om de standaardsessieconfiguratie op de computer te wijzigen. Zie about_Preference_Variables voor meer informatie over de $PSSessionConfigurationName voorkeursvariabele.

ZOEKWOORDEN

about_Endpoints about_SessionConfigurations

Zie ook