Delen via


about_Session_Configurations

Korte beschrijving

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

Lange beschrijving

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

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

Beheerders kunnen ook sessieconfiguraties gebruiken om de machtigingen te bepalen die vereist zijn om extern verbinding te maken met de computer. Standaard zijn alleen leden van de groep Administrators 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 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 externe communicatie met PowerShell op basis van WSMAN. Ze worden alleen gebruikt wanneer u de New-PSSessioncmdlets , Invoke-Commandof Enter-PSSession gebruikt om verbinding te maken met een externe Windows-computer.

Als u de sessieconfiguraties op een Windows-computer wilt beheren, start u PowerShell met de optie Als administrator uitvoeren .

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 gebruikt van een cmdlet die gebruikmaakt van externe communicatietechnologie op basis van WS Management, zoals Invoke-Command.

Beheerders 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 van objecten te beperken 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 de machtiging Uitvoeren hebben 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 niet extern verbinding maken met de computer.

Standaard zijn alleen beheerders 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 ConfigurationName-parameter van de cmdlet New-PSSession, Enter-PSSession of Invoke-Command bevat.

Met de beveiligingsdescriptors voor de standaardsessieconfiguraties kunnen alleen leden van de groep Administrators op de lokale computer deze gebruiken. Daarom kunnen alleen leden van de groep Administrators extern 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 op de lokale computer weergeven

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 van de sessieconfiguratie weer te geven die zijn geconfigureerd met behulp van een sessieconfiguratiebestand.

Als u bijvoorbeeld alle eigenschappen van een sessieconfiguratieobject wilt weergeven, 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 station WSMAN: bevinden de sessieconfiguraties zich in het knooppunt Invoegtoepassing. (Alle sessieconfiguraties bevinden zich in het invoegtoepassingsknooppunt, maar er zijn items in het invoegtoepassingsknooppunt 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 op een externe computer weergeven

Als u de sessieconfiguraties op een externe computer wilt weergeven, gebruikt u de cmdlet Connect-WSMan om een notitie voor de externe computer toe te voegen aan het WSMAN:-station op uw lokale computer en gebruikt u vervolgens het station WSMAN: 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.

Bijvoorbeeld:

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 security descriptor 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.

Gebruik de cmdlet Enable-PSRemoting om externe toegang tot de sessieconfiguraties op de computer in te schakelen. Met deze cmdlet maakt u twee sessieconfiguraties:

  • met de naam gedefinieerd als: 'PowerShell'. + 'current PowerShell version'
  • met de naam 'PowerShell.6', ongeacht een specifieke PowerShell-versie.

Bovendien hebben standaard alleen leden van de groep Administrators op de computer de machtiging Uitvoeren voor de standaardsessieconfiguraties, maar u kunt de beveiligingsdescriptors wijzigen voor de standaardsessieconfiguraties en voor alle 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 machtigingen voor uitvoeren voor die gebruikers toe te voegen aan de beveiligingsdescriptors van de microsoft.PowerShell- en Microsoft.PowerShell32-sessieconfiguraties.

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

Als u iedereen wilt weigeren voor alle sessieconfiguraties op de computer, gebruikt u de cmdlet Disable-PSSessionConfiguration. Met de volgende opdracht worden bijvoorbeeld de standaardsessieconfiguraties op de computer uitgeschakeld.

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

Als u wilt voorkomen dat externe gebruikers verbinding maken met de computer, maar lokale gebruikers toestaan verbinding te maken, gebruikt u de cmdlet Disable-PSRemoting. 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 voor de gebruikersinterface weer te geven waarmee u een nieuwe SDDL kunt maken.

Bijvoorbeeld:

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 microsoft.PowerShell-sessieconfiguratie, behalve dat de gegevens die van een externe opdracht worden ontvangen, worden beperkt tot 20 MEGAbytes (MB). (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 sessieconfiguratie-cmdlets. Deze wordt weergegeven in het station WSMAN: .

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 sessieconfiguratie NewConfig van de computer verwijderd.

PS C:> Unregister-PSSessionConfiguration -Name NewConfig

Zie De registratie van PSSessionConfiguration ongedaan maken 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 standaardsessieconfiguraties die niet op de computer bestaan, 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 parameter ConfigurationName van New-PSSession, Enter-PSSession of Invoke-Command.

Deze opdracht gebruikt bijvoorbeeld de cmdlet New-PSSession om een PSSession te starten op de Server01-computer. De opdracht maakt gebruik van de ConfigurationName parameter om de configuratie WithProfile 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 configuratie van de WithProfile-sessie te gebruiken of de referenties kan opgeven van een gebruiker die over de vereiste machtigingen beschikt.

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

ZOEKWOORDEN

about_Endpoints about_SessionConfigurations

Zie ook