about_Session_Configurations

Aggiornamento: maggio 2014

Si applica a: Windows PowerShell 2.0, Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

ARGOMENTO

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") consiste in un gruppo di impostazioni del computer locale che definiscono l'ambiente per le sessioni di Windows PowerShell® create quando gli utenti remoti o locali si connettono a Windows PowerShell sul computer locale.

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

Gli amministratori possono anche usare le configurazioni di sessione al fine di determinare le autorizzazioni necessarie per connettersi al computer in modalità remota. Per impostazione predefinita, solo i membri del gruppo Administrators sono autorizzati a usare la configurazione della sessione per connettersi in modalità remota; tuttavia è possibile modificare le impostazioni predefinite per consentire a tutti gli utenti o agli utenti selezionati di connettersi in remoto al computer.

A partire da Windows PowerShell 3.0, è possibile usare un file di configurazione sessione per definire gli elementi di una configurazione di sessione. Questa funzionalità facilita la personalizzazione delle sessioni senza scrivere codice e il rilevamento delle proprietà relative a una configurazione di sessione. Per creare un file di configurazione sessione, usare il cmdlet New-PSSessionConfiguration. Per altre informazioni sui file di configurazione sessione, vedere about_Session_Configuration_Files (https://go.microsoft.com/fwlink/?LinkId=236023).

Le configurazioni di sessione rappresentano funzionalità della comunicazione remota di Windows PowerShell basata su WS-Management (Web Services for Management). Queste configurazioni vengono usate soltanto insieme ai cmdlet New-PSSession, Invoke-Command o Enter-PSSession per connettersi a un computer remoto.

Nota: Per gestire le configurazioni di sessione, avviare Windows PowerShell usando l'opzione "Esegui come amministratore".

INFORMAZIONI SULLE CONFIGURAZIONI DI SESSIONE

Tutte le sessioni di Windows PowerShell usano una configurazione di sessione. Tali sessioni includono quelle permanenti create usando il cmdlet New-PSSession o Enter-PSSession e quelle temporanee che Windows PowerShell crea quando si usa il parametro ComputerName di un cmdlet che ricorre alla comunicazione remota basata su WS-Management, ad esempio, Invoke-Command.

Gli amministratori possono usare le configurazioni di sessione per proteggere le risorse del computer e per creare ambienti personalizzati per gli utenti che si connettono al computer. Ad esempio, è possibile usare una configurazione di sessione per limitare la dimensione degli oggetti che il computer riceve nella sessione, per definire la modalità linguaggio della sessione e per specificare i cmdlet, i provider e le funzionalità disponibili nella sessione.

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

Per impostazione predefinita, soltanto gli amministratori del computer sono autorizzati a usare le configurazioni di sessione predefinite. Tuttavia, è possibile modificare i descrittori di protezione per consentire a tutti gli utenti, a quelli selezionati o a nessuno di usare le configurazioni di sessione sul computer. Inserire sezione secondaria qui.

CONFIGURAZIONI DI SESSIONE PREDEFINITE

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

La configurazione di sessione di Windows PowerShell viene usata per impostazione predefinita, quando un comando di creazione della 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 possono essere usati soltanto dai membri del gruppo Administrators nel computer locale. Di conseguenza, soltanto i membri del gruppo Administrators possono connettersi al computer in modalità remota se non si modificano le impostazioni predefinite.

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

VISUALIZZAZIONE DI CONFIGURAZIONI DI SESSIONE NEL COMPUTER LOCALE

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

Ad esempio, digitare:

        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 sessione viene espanso in Windows PowerShell 3.0 al fine di visualizzare le proprietà di configurazione della sessione che vengono configurate usando un file di configurazione di sessione.

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

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

È anche possibile usare il provider di WS-Management in Windows PowerShell per visualizzare le configurazioni di sessione. Il provider di WS-Management consente di creare un'unità WSMAN: nella sessione.

Nell'unità WSMAN: le configurazioni di sessione sono presenti nel nodo Plugin. Tutte le configurazioni di sessione si trovano nel nodo Plugin; tuttavia, sono disponibili elementi nel nodo Plugin che non rappresentano configurazioni di sessione.

Ad esempio, per visualizzare le configurazioni nel computer locale, digitare: Inserire il testo della sottosezione qui.

         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.workf... microsoft.powershell.workflow
         Container       {Name=microsoft.powershell32}       microsoft.powershell32

VISUALIZZAZIONE DI CONFIGURAZIONI DI SESSIONE IN UN COMPUTER REMOTO

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

Ad esempio, il comando seguente consente di aggiungere un nodo per il computer remoto Server01 nell'unità WSMAN: nel computer locale.

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

Una volta completato il comando, è possibile accedere al nodo del 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\Plugin


        Type            Keys                                Name
        ----            ----                                ----
        Container       {Name=microsoft.powershell}         microsoft.powershell
        Container       {Name=microsoft.powershell.workf... microsoft.powershell.workflow
        Container       {Name=microsoft.powershell32}       microsoft.powershell32

MODIFICA DEL DESCRITTORE DI SICUREZZA RELATIVO A UNA CONFIGURAZIONE DI SESSIONE

In Windows Server 2012 e nelle versioni più recenti, le configurazioni di sessione predefinite sono attivate 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 del computer, usare il cmdlet Enable-PSRemoting. Inserire il corpo della sottosezione qui.

Per impostazione predefinita, soltanto i membri del gruppo Administrators del computer dispongono dell'autorizzazione Execute per le configurazioni di sessione predefinite; tuttavia, è possibile modificare i descrittori di sicurezza nelle configurazioni di sessione predefinite e in tutte le configurazioni di sessione create dall'utente.

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

Ad esempio, il comando seguente consente di aprire una pagina delle proprietà che consente di modificare il descrittore di sicurezza relativo alla configurazione di sessione predefinita di Microsoft.PowerShell.

        PS C:\> Set-PSSessionConfiguration -name Microsoft.PowerShell -ShowSecurityDescriptorUI

Per negare a tutti gli utenti l'autorizzazione per visualizzare 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 di connettersi al computer, ma per abilitare 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, il cmdlet Enable-PSRemoting o PSSessionConfiguration. Ad esempio, il comando seguente consente di accedere in remoto alle configurazioni di sessione predefinite.

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

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

Ad esempio:

        PS C:\> 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 Windows PowerShell e i parametri del cmdlet Register-PSSessionConfiguration.

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

        PS C:\> Register-PSSessionConfiguration -Name NewConfig --MaximumReceivedDataSizePerCommandMB                    20

Quando si crea una configurazione di sessione, è possibile gestirla tramite gli altri cmdlet di configurazione di 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 seguente comando 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 che è stata eliminata (non registrata) per errore, usare il cmdlet Enable-PSRemoting.

Il cmdlet Enable-PSRemoting crea di nuovo tutte le configurazioni di sessioni predefinite che non esistono più nel computer. Non sovrascrivere o modificare i valori delle proprietà relative alle configurazioni di sessione esistenti.

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

SELEZIONE DI UNA CONFIGURAZIONE DI SESSIONE

Per selezionare una determinata configurazione di sessione, usare il parametro ConfigurationName del cmdlet New-PSSession, invio-PSSession o Invoke-Command.

Ad esempio, il primo 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 dispone dell'autorizzazione per usare la configurazione di sessione WithProfile o è in grado di specificare 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 CHIAVE

about_Endpoints

about_SessionConfigurations

VEDERE ANCHE

about_Preference_Variables

about_PSSession

about_Remote

about_Session_Configuration_Files

New-PSSession

Disable-PSSessionConfiguration

Enable-PSSessionConfiguration

Get-PSSessionConfiguration

New-PSSessionConfigurationFile

Register-PSSessionConfiguration

Set-PSSessionConfiguration

Test-PSSessionConfigurationFile

Unregister-PSSessionConfiguration