about_Session_Configurations

Descrizione breve

Descrive le configurazioni di sessione, che determinano gli utenti che possono connettersi al computer in remoto e i comandi che possono eseguire.

Descrizione lunga

Una configurazione di sessione, nota anche come "endpoint" è un gruppo di impostazioni nel computer locale che definiscono l'ambiente per le sessioni di PowerShell create quando gli utenti remoti o locali si connettono a PowerShell nel computer locale.

Amministrazione istrator del computer possono usare le configurazioni di sessione per proteggere il computer e definire ambienti personalizzati per gli utenti che si connettono al computer.

Amministrazione istrator può anche usare le configurazioni di sessione per determinare le autorizzazioni necessarie per connettersi al computer in remoto. Per impostazione predefinita, solo i membri del gruppo Amministrazione istrators dispongono dell'autorizzazione per usare la configurazione di sessione per connettersi in remoto, ma è possibile modificare le impostazioni predefinite per consentire a tutti gli utenti o agli utenti selezionati di connettersi in remoto al computer.

A partire da PowerShell 3.0, è possibile usare un file di configurazione della sessione per definire gli elementi di una configurazione di sessione. Questa funzionalità semplifica la personalizzazione delle sessioni senza scrivere codice e individuare le proprietà di una configurazione di sessione. Per creare un file di configurazione della sessione, usare il cmdlet New-PSSessionConfiguration. Per altre informazioni sui file di configurazione delle sessioni, vedere about_Session_Configuration_Files.

Le configurazioni di sessione sono una funzionalità della comunicazione remota di PowerShell basata su WSMAN. Vengono usati solo quando si usano i New-PSSessioncmdlet , Invoke-Commando Enter-PSSession per connettersi a un computer Windows remoto.

Per gestire le configurazioni di sessione in un computer Windows, avviare PowerShell con l'opzione Esegui come amministratore .

Informazioni sulle configurazioni di sessione

Ogni sessione di PowerShell usa una configurazione di sessione. Sono incluse le sessioni persistenti create usando i cmdlet New-PSSession o Enter-PSSession e le sessioni temporanee create da PowerShell quando si usa il parametro ComputerName di un cmdlet che usa la tecnologia di comunicazione remota basata su WS-Management, ad esempio Invoke-Command.

Amministrazione istrator può usare configurazioni di sessione per proteggere le risorse del computer e creare ambienti personalizzati per gli utenti che si connettono al computer. Ad esempio, è possibile usare una configurazione di sessione per limitare le dimensioni degli oggetti ricevuti dal computer nella sessione, definire la modalità di linguaggio della sessione e specificare i cmdlet, i provider e le funzioni disponibili nella sessione.

Configurando il descrittore di sicurezza di una configurazione di sessione, si determina chi può usare la configurazione di sessione per connettersi al computer. Gli utenti devono disporre dell'autorizzazione Execute per una configurazione di sessione per usarla in una sessione. Se un utente non dispone delle autorizzazioni necessarie per utilizzare le configurazioni di sessione in un computer, l'utente non può connettersi al computer in modalità remota.

Per impostazione predefinita, solo Amministrazione istrator del computer dispongono dell'autorizzazione per usare le configurazioni di sessione predefinite. Tuttavia, è possibile modificare i descrittori di sicurezza per consentire a tutti, nessuno o solo gli utenti selezionati di usare le configurazioni di sessione nel computer.

Configurazioni di sessione predefinite

PowerShell 3.0 include configurazioni di sessione predefinite denominate Microsoft.PowerShell e Microsoft.PowerShell.Workflow. Nei computer che eseguono versioni a 64 bit di Windows, PowerShell fornisce anche Microsoft.PowerShell32, una configurazione di sessione a 32 bit.

La configurazione della sessione Di Microsoft.PowerShell viene usata per le sessioni per impostazione predefinita, ovvero quando un comando per creare una sessione non include il parametro ConfigurationName del cmdlet New-PSSession, Enter-PSSession o Invoke-Command.

I descrittori di sicurezza per le configurazioni di sessione predefinite consentono solo ai membri del gruppo Amministrazione istrators nel computer locale di usarli. Di conseguenza, solo i membri del gruppo Amministrazione istrators possono connettersi al computer in modalità remota, a meno che non si modifichi le impostazioni predefinite.

È possibile modificare le configurazioni di sessione predefinite usando la variabile di preferenza $PSSessionConfigurationName. Per altre informazioni, vedere about_Preference_Variables.

Visualizzazione delle configurazioni di sessione nel computer locale

Per ottenere le configurazioni di sessione nel computer locale, usare il cmdlet Get-PSSessionConfiguration.

Ad esempio, digitare il comando seguente:

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

L'oggetto di configurazione della sessione viene espanso in PowerShell 3.0 per visualizzare le proprietà della configurazione di sessione configurate usando un file di configurazione della sessione.

Ad esempio, per visualizzare tutte le proprietà di un oggetto di configurazione sessione, digitare:

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

È anche possibile usare il provider WSMan in PowerShell per visualizzare le configurazioni di sessione. Il provider WSMan crea un'unità WSMAN: nella sessione.

Nell'unità WSMAN: le configurazioni di sessione si trovano nel nodo Plug-in. Tutte le configurazioni di sessione si trovano nel nodo Plug-in, ma sono presenti elementi nel nodo Plug-in che non sono configurazioni di sessione.

Ad esempio, per visualizzare le configurazioni di sessione nel computer locale, digitare:

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

Visualizzazione delle configurazioni di sessione in un computer remoto

Per visualizzare le configurazioni di sessione in un computer remoto, usare il cmdlet Connessione-WSMan per aggiungere una nota per il computer remoto all'unità WSMAN: nel computer locale e quindi usare l'unità WSMAN: per visualizzare le configurazioni di sessione.

Ad esempio, il comando seguente aggiunge un nodo per il computer remoto Server01 all'unità WSMAN: nel computer locale.

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

Al termine del comando, è possibile passare al nodo per il computer Server01 per visualizzare le configurazioni di sessione.

Ad esempio:

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

Modifica del descrittore di sicurezza di una configurazione di sessione

In Windows Server 2012 e versioni successive di Windows Server, le configurazioni di sessione predefinite sono abilitate per gli utenti remoti per impostazione predefinita. In altre versioni supportate di Windows, è necessario modificare i descrittori di sicurezza delle configurazioni di sessione per consentire l'accesso remoto.

Per abilitare l'accesso remoto alle configurazioni di sessione nel computer, usare il cmdlet Enable-PSRemoting. Questo cmdlet crea due configurazioni di sessione:

  • con il nome definito come" "PowerShell". + "Versione corrente di PowerShell"
  • con il nome "PowerShell.6", non inserito in una versione specifica di PowerShell.

Inoltre, per impostazione predefinita, solo i membri del gruppo Amministrazione istrators nel computer dispongono dell'autorizzazione Execute per le configurazioni di sessione predefinite, ma è possibile modificare i descrittori di sicurezza nelle configurazioni di sessione predefinite e in tutte le configurazioni di sessione create.

Per concedere ad altri utenti l'autorizzazione per connettersi al computer in modalità remota, usare il cmdlet Set-PSSessionConfiguration per aggiungere le autorizzazioni "Execute" per tali utenti ai descrittori di sicurezza delle configurazioni di sessione Microsoft.PowerShell e Microsoft.PowerShell32.

Ad esempio, il comando seguente apre una pagina delle proprietà che consente di modificare il descrittore di sicurezza per la configurazione di sessione predefinita di Microsoft.PowerShell.

Set-PSSessionConfiguration -name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Per negare a tutti le autorizzazioni per tutte le configurazioni di sessione nel computer, usare il cmdlet Disable-PSSessionConfiguration. Ad esempio, il comando seguente disabilita le configurazioni di sessione predefinite nel computer.

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

Per impedire agli utenti remoti di connettersi al computer, ma consentire agli utenti locali di connettersi, usare il cmdlet Disable-PSRemoting. Disable-PSRemoting aggiunge una voce "Network_Deny_All" a tutte le configurazioni di sessione nel computer.

PS C:> Disable-PSRemoting

Per consentire agli utenti remoti di usare tutte le configurazioni di sessione nel computer, usare il cmdlet Enable-PSRemoting o Enable-PSSessionConfiguration. Ad esempio, il comando seguente consente l'accesso remoto alle configurazioni di sessione predefinite.

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

Per apportare altre modifiche al descrittore di sicurezza di una configurazione di sessione, usare il cmdlet Set-PSSessionConfiguration. Usare il parametro SecurityDescriptorSDDL per inviare un valore stringa SDDL. Usare il parametro ShowSecurityDescriptorUI per visualizzare una finestra delle proprietà dell'interfaccia utente che consente di creare un nuovo SDDL.

Ad esempio:

Set-PSSessionConfiguration -Name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Creazione di una nuova configurazione di sessione

Per creare una nuova configurazione di sessione nel computer locale, usare il cmdlet Register-PSSessionConfiguration. Per definire la nuova configurazione di sessione, è possibile usare un assembly C#, uno script di PowerShell e i parametri del cmdlet Register-PSSessionConfiguration.

Ad esempio, il comando seguente crea una configurazione di sessione identica alla configurazione di sessione di Microsoft.PowerShell, ad eccezione del fatto che limita i dati ricevuti da un comando remoto a 20 megabyte (MB). Il valore predefinito è 50 MB.

Register-PSSessionConfiguration -Name NewConfig `
  -MaximumReceivedDataSizePerCommandMB 20

Quando si crea una configurazione di sessione, è possibile gestirla usando gli altri cmdlet di configurazione della sessione e viene visualizzata nell'unità WSMAN: .

Per altre informazioni, vedere Register-PSSessionConfiguration.

Rimozione di una configurazione di sessione

Per rimuovere una configurazione di sessione dal computer locale, usare il cmdlet Unregister-PSSessionConfiguration. Ad esempio, il comando seguente rimuove la configurazione della sessione NewConfig dal computer.

PS C:> Unregister-PSSessionConfiguration -Name NewConfig

Per altre informazioni, vedere Unregister-PSSessionConfiguration.

Ripristino di una configurazione di sessione

Per ripristinare una configurazione di sessione predefinita eliminata (annullata) accidentalmente, usare il cmdlet Enable-PSRemoting.

Il cmdlet Enable-PSRemoting ricrea tutte le configurazioni di sessioni predefinite che non esistono nel computer. Non sovrascrive o modifica i valori delle proprietà delle configurazioni di sessione esistenti.

Per ripristinare i valori delle proprietà originali di una configurazione di sessione predefinita, usare Unregister-PSSessionConfiguration per eliminare la configurazione della sessione e quindi usare il cmdlet Enable-PSRemoting per ricrearlo.

Selezione di una configurazione di sessione

Per selezionare una particolare configurazione di sessione per una sessione, usare il parametro ConfigurationName di New-PSSession, Enter-PSSession o Invoke-Command.

Ad esempio, questo comando usa il cmdlet New-PSSession per avviare una sessione PSSession nel computer Server01. Il comando usa il parametro ConfigurationName per selezionare la configurazione WithProfile nel computer Server01.

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

Questo comando avrà esito positivo solo se l'utente corrente ha l'autorizzazione per usare la configurazione della sessione WithProfile o può fornire le credenziali di un utente che dispone delle autorizzazioni necessarie.

È anche possibile usare la variabile di preferenza $PSSessionConfigurationName per modificare la configurazione di sessione predefinita nel computer. Per altre informazioni sulla variabile di preferenza $PSSessionConfigurationName, vedere about_Preference_Variables.

PAROLE CHIAVI

about_Endpoints about_SessionConfigurations

Vedi anche