about_Session_Configurations

Kort beskrivning

Beskriver sessionskonfigurationer som avgör vilka användare som kan ansluta till datorn via fjärranslutning och vilka kommandon de kan köra.

Lång beskrivning

En sessionskonfiguration, även kallad "slutpunkt", är en grupp med inställningar på den lokala datorn som definierar miljön för De PowerShell-sessioner som skapas när fjärranslutna eller lokala användare ansluter till PowerShell på den lokala datorn.

Administratörer på datorn kan använda sessionskonfigurationer för att skydda datorn och definiera anpassade miljöer för användare som ansluter till datorn.

Administratörer kan också använda sessionskonfigurationer för att fastställa vilka behörigheter som krävs för att ansluta till datorn via fjärranslutning. Som standard har endast medlemmar i gruppen Administratörer behörighet att använda sessionskonfigurationen för fjärranslutning, men du kan ändra standardinställningarna så att alla användare eller valda användare kan ansluta via fjärranslutning till datorn.

Från och med PowerShell 3.0 kan du använda en sessionskonfigurationsfil för att definiera elementen i en sessionskonfiguration. Den här funktionen gör det enkelt att anpassa sessioner utan att skriva kod och identifiera egenskaperna för en sessionskonfiguration. Om du vill skapa en sessionskonfigurationsfil använder du cmdleten New-PSSessionConfiguration. Mer information om sessionskonfigurationsfiler finns i about_Session_Configuration_Files.

Sessionskonfigurationer är en funktion i WSMAN-baserad PowerShell-fjärrkommunikation. De används bara när du använder cmdletarna , Invoke-Commandeller Enter-PSSession för att ansluta till en fjärransluten New-PSSessionWindows-dator.

Om du vill hantera sessionskonfigurationerna på en Windows-dator startar du PowerShell med alternativet Kör som administratör .

Om sessionskonfigurationer

Varje PowerShell-session använder en sessionskonfiguration. Detta omfattar beständiga sessioner som du skapar med hjälp av cmdletarna New-PSSession eller Enter-PSSession och de tillfälliga sessioner som PowerShell skapar när du använder parametern ComputerName för en cmdlet som använder WS-Management-baserad fjärrkommunikationsteknik, till exempel Invoke-Command.

Administratörer kan använda sessionskonfigurationer för att skydda datorns resurser och för att skapa anpassade miljöer för användare som ansluter till datorn. Du kan till exempel använda en sessionskonfiguration för att begränsa storleken på objekt som datorn tar emot i sessionen, för att definiera sessionens språkläge och för att ange de cmdletar, leverantörer och funktioner som är tillgängliga i sessionen.

Genom att konfigurera säkerhetsbeskrivningen för en sessionskonfiguration bestämmer du vem som kan använda sessionskonfigurationen för att ansluta till datorn. Användarna måste ha behörighet att köra en sessionskonfiguration för att kunna använda den i en session. Om en användare inte har de behörigheter som krävs för att använda någon av sessionskonfigurationerna på en dator kan användaren inte ansluta till datorn via fjärranslutning.

Som standard har endast administratörer på datorn behörighet att använda standardkonfigurationerna för sessioner. Men du kan ändra säkerhetsbeskrivningarna så att alla, ingen eller bara valda användare kan använda sessionskonfigurationerna på datorn.

Inbyggda sessionskonfigurationer

PowerShell 3.0 innehåller inbyggda sessionskonfigurationer med namnet Microsoft.PowerShell och Microsoft.PowerShell.Workflow. På datorer som kör 64-bitarsversioner av Windows tillhandahåller PowerShell även Microsoft.PowerShell32, en 32-bitars sessionskonfiguration.

Microsoft.PowerShell-sessionskonfigurationen används som standard för sessioner, dvs. när ett kommando för att skapa en session inte innehåller parametern ConfigurationName för cmdleten New-PSSession, Enter-PSSession eller Invoke-Command.

Säkerhetsbeskrivningarna för standardsessionskonfigurationerna tillåter endast medlemmar i gruppen Administratörer på den lokala datorn att använda dem. Därför kan endast medlemmar i gruppen Administratörer ansluta till datorn via fjärranslutning om du inte ändrar standardinställningarna.

Du kan ändra standardkonfigurationerna för sessioner med hjälp av $PSSessionConfigurationName inställningsvariabeln. Mer information finns i about_Preference_Variables.

Visa sessionskonfigurationer på den lokala datorn

Om du vill hämta sessionskonfigurationerna på den lokala datorn använder du cmdleten Get-PSSessionConfiguration.

Skriv till exempel:

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

Sessionskonfigurationsobjektet expanderas i PowerShell 3.0 för att visa egenskaperna för sessionskonfigurationen som konfigureras med hjälp av en sessionskonfigurationsfil.

Om du till exempel vill se alla egenskaper för ett sessionskonfigurationsobjekt skriver du:

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

Du kan också använda WSMan-providern i PowerShell för att visa sessionskonfigurationer. WSMan-providern skapar en WSMAN:-enhet i sessionen.

I WSMAN:-enheten finns sessionskonfigurationer i noden Plugin. (Alla sessionskonfigurationer finns i noden Plugin, men det finns objekt i plugin-noden som inte är sessionskonfigurationer.)

Om du till exempel vill visa sessionskonfigurationerna på den lokala datorn skriver du:

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

Visa sessionskonfigurationer på en fjärrdator

Om du vill visa sessionskonfigurationerna på en fjärrdator använder du cmdleten Anslut-WSMan för att lägga till en anteckning för fjärrdatorn till WSMAN:-enheten på den lokala datorn och använder sedan WSMAN:-enheten för att visa sessionskonfigurationerna.

Följande kommando lägger till exempel till en nod för Server01-fjärrdatorn till WSMAN:-enheten på den lokala datorn.

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

När kommandot är klart kan du navigera till noden för Server01-datorn för att visa sessionskonfigurationerna.

Till exempel:

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

Ändra säkerhetsbeskrivningen för en sessionskonfiguration

I Windows Server 2012 och senare versioner av Windows Server är de inbyggda sessionskonfigurationerna aktiverade för fjärranvändare som standard. I andra versioner av Windows som stöds måste du ändra säkerhetsbeskrivningarna för sessionskonfigurationerna så att fjärråtkomst tillåts.

Om du vill aktivera fjärråtkomst till sessionskonfigurationerna på datorn använder du cmdleten Enable-PSRemoting. Den här cmdleten skapar två sessionskonfigurationer:

  • med namnet definierat som: "PowerShell." + "aktuell PowerShell-version"
  • med namnet "PowerShell.6", som inte är kopplat till någon specifik PowerShell-version.

Som standard har endast medlemmar i gruppen Administratörer på datorn behörighet att köra standardsessionskonfigurationerna, men du kan ändra säkerhetsbeskrivningarna för standardsessionskonfigurationerna och alla sessionskonfigurationer som du skapar.

Om du vill ge andra användare behörighet att fjärransluta till datorn använder du cmdleten Set-PSSessionConfiguration för att lägga till "Kör"-behörigheter för dessa användare i säkerhetsbeskrivningarna för sessionskonfigurationerna Microsoft.PowerShell och Microsoft.PowerShell32.

Följande kommando öppnar till exempel en egenskapssida där du kan ändra säkerhetsbeskrivningen för standardsessionskonfigurationen för Microsoft.PowerShell.

Set-PSSessionConfiguration -name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Om du vill neka alla behörighet till alla sessionskonfigurationer på datorn använder du cmdleten Disable-PSSessionConfiguration. Följande kommando inaktiverar till exempel standardkonfigurationerna för sessioner på datorn.

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

Om du vill förhindra att fjärranslutna användare ansluter till datorn, men tillåter att lokala användare ansluter, använder du cmdleten Disable-PSRemoting. Disable-PSRemoting lägger till en "Network_Deny_All"-post till alla sessionskonfigurationer på datorn.

PS C:> Disable-PSRemoting

Om du vill tillåta fjärranvändare att använda alla sessionskonfigurationer på datorn använder du cmdleten Enable-PSRemoting eller Enable-PSSessionConfiguration. Följande kommando aktiverar till exempel fjärråtkomst till de inbyggda sessionskonfigurationerna.

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

Om du vill göra andra ändringar i säkerhetsbeskrivningen för en sessionskonfiguration använder du cmdleten Set-PSSessionConfiguration. Använd parametern SecurityDescriptorSDDL för att skicka ett SDDL-strängvärde. Använd parametern ShowSecurityDescriptorUI för att visa ett egenskapsblad för användargränssnittet som hjälper dig att skapa en ny SDDL.

Till exempel:

Set-PSSessionConfiguration -Name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Skapa en ny sessionskonfiguration

Om du vill skapa en ny sessionskonfiguration på den lokala datorn använder du cmdleten Register-PSSessionConfiguration. Om du vill definiera den nya sessionskonfigurationen kan du använda en C#-sammansättning, ett PowerShell-skript och parametrarna för cmdleten Register-PSSessionConfiguration.

Följande kommando skapar till exempel en sessionskonfiguration som är identisk med Microsoft.PowerShell-sessionskonfigurationen, förutom att den begränsar de data som tas emot från ett fjärrkommando till 20 MEGABYTE (MB). (Standardvärdet är 50 MB).

Register-PSSessionConfiguration -Name NewConfig `
  -MaximumReceivedDataSizePerCommandMB 20

När du skapar en sessionskonfiguration kan du hantera den med hjälp av de andra cmdletarna för sessionskonfiguration och den visas på WSMAN:-enheten.

Mer information finns i Register-PSSessionConfiguration.

Ta bort en sessionskonfiguration

Om du vill ta bort en sessionskonfiguration från den lokala datorn använder du cmdleten Unregister-PSSessionConfiguration. Följande kommando tar till exempel bort konfigurationen av NewConfig-sessionen från datorn.

PS C:> Unregister-PSSessionConfiguration -Name NewConfig

Mer information finns i Avregistrera PSSessionConfiguration.

Återställa en sessionskonfiguration

Om du vill återställa en standardkonfiguration för sessioner som tagits bort (avregistrerats) av misstag använder du cmdleten Enable-PSRemoting.

Cmdleten Enable-PSRemoting återskapar alla standardsessionskonfigurationer som inte finns på datorn. Den skriver inte över eller ändrar inte egenskapsvärdena för befintliga sessionskonfigurationer.

Om du vill återställa de ursprungliga egenskapsvärdena för en standardkonfiguration använder du avregistrera-PSSessionConfiguration för att ta bort sessionskonfigurationen och använder sedan cmdleten Enable-PSRemoting för att återskapa den.

Välja en sessionskonfiguration

Om du vill välja en viss sessionskonfiguration för en session använder du parametern ConfigurationName för New-PSSession, Enter-PSSession eller Invoke-Command.

Det här kommandot använder till exempel cmdleten New-PSSession för att starta en PSSession på Server01-datorn. Kommandot använder parametern ConfigurationName för att välja WithProfile-konfigurationen på Server01-datorn.

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

Det här kommandot lyckas endast om den aktuella användaren har behörighet att använda konfigurationen för WithProfile-sessionen eller kan ange autentiseringsuppgifterna för en användare som har de behörigheter som krävs.

Du kan också använda $PSSessionConfigurationName inställningsvariabeln för att ändra standardkonfigurationen för sessioner på datorn. Mer information om $PSSessionConfigurationName-inställningsvariabeln finns i about_Preference_Variables.

SÖKORD

about_Endpoints about_SessionConfigurations

Se även