Informazioni sulle configurazioni di sessioneAbout Session Configurations

DESCRIZIONE BREVESHORT DESCRIPTION

Descrive le configurazioni di sessione, che determinano gli utenti che possono connettersi al computer in remoto e i comandi che possono eseguire.Describes session configurations, which determine the users who can connect to the computer remotely and the commands they can run.

DESCRIZIONE LUNGALONG DESCRIPTION

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.A session configuration, also known as an "endpoint" is a group of settings on the local computer that define the environment for the PowerShell sessions that are created when remote or local users connect to PowerShell on the local computer.

Gli amministratori del computer possono utilizzare le configurazioni di sessione per proteggere il computer e definire ambienti personalizzati per gli utenti che si connettono al computer.Administrators of the computer can use session configurations to protect the computer and to define custom environments for users who connect to the computer.

Gli amministratori possono inoltre utilizzare le configurazioni di sessione per determinare le autorizzazioni necessarie per la connessione al computer in modalità remota.Administrators can also use session configurations to determine the permissions that are required to connect to the computer remotely. Per impostazione predefinita, solo i membri del gruppo Administrators dispongono dell'autorizzazione per utilizzare la configurazione di sessione per la connessione remota, ma è possibile modificare le impostazioni predefinite per consentire a tutti gli utenti o a utenti selezionati di connettersi in remoto al computer.By default, only members of the Administrators group have permission to use the session configuration to connect remotely, but you can change the default settings to allow all users, or selected users, to connect remotely to your computer.

A partire da PowerShell 3,0, è possibile usare un file di configurazione della sessione per definire gli elementi di una configurazione di sessione.Beginning in PowerShell 3.0, you can use a session configuration file to define the elements of a session configuration. Questa funzionalità consente di personalizzare facilmente le sessioni senza scrivere codice e di individuare le proprietà di una configurazione di sessione.This feature makes it easy to customize sessions without writing code and to discover the properties of a session configuration. Per creare un file di configurazione di sessione, usare il cmdlet New-PSSessionConfiguration.To create a session configuration file, use the New-PSSessionConfiguration cmdlet. Per altre informazioni sui file di configurazione delle sessioni, vedere about_Session_Configuration_Files.For more information about session configuration files, see about_Session_Configuration_Files.

Le configurazioni di sessione sono una funzionalità della comunicazione remota di PowerShell basata su Web Services for Management (WS-Management).Session configurations are a feature of Web Services for Management (WS-Management) based PowerShell remoting. Vengono usati solo quando si usano i cmdlet New-PSSession, Invoke-Command o Enter-PSSession per connettersi a un computer remoto.They are used only when you use the New-PSSession, Invoke-Command, or Enter-PSSession cmdlets to connect to a remote computer.

Nota: per gestire le configurazioni di sessione, avviare PowerShell con l'opzione "Esegui come amministratore".Note: To manage the session configurations, start PowerShell with the "Run as administrator" option.

Informazioni sulle configurazioni di sessioneAbout Session Configurations

Ogni sessione di PowerShell usa una configurazione di sessione.Every PowerShell session uses a session configuration. Sono incluse le sessioni permanenti 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.This includes persistent sessions that you create by using the New-PSSession or Enter-PSSession cmdlets, and the temporary sessions that PowerShell creates when you use the ComputerName parameter of a cmdlet that uses WS-Management-based remoting technology, such as Invoke-Command.

Gli amministratori possono utilizzare le configurazioni di sessione per proteggere le risorse del computer e creare ambienti personalizzati per gli utenti che si connettono al computer.Administrators can use session configurations to protect the resources of the computer and to create custom environments for users who connect to the computer. È ad esempio possibile utilizzare una configurazione di sessione per limitare le dimensioni degli oggetti ricevuti dal computer nella sessione, per definire la modalità di linguaggio della sessione e per specificare i cmdlet, i provider e le funzioni disponibili nella sessione.For example, you can use a session configuration to limit the size of objects that the computer receives in the session, to define the language mode of the session, and to specify the cmdlets, providers, and functions that are available in the session.

Configurando il descrittore di sicurezza di una configurazione di sessione, si determina chi può usare la configurazione di sessione per connettersi al computer.By configuring the security descriptor of a session configuration, you determine who can use the session configuration to connect to the computer. Per usarlo in una sessione, gli utenti devono disporre dell'autorizzazione Execute per una configurazione di sessione.Users must have Execute permission to a session configuration to use it in a session. Se un utente non dispone delle autorizzazioni necessarie per utilizzare una delle configurazioni di sessione in un computer, l'utente non sarà in grado di connettersi al computer in modalità remota.If a user does not have the required permissions to use any of the session configurations on a computer, the user cannot connect to the computer remotely.

Per impostazione predefinita, solo gli amministratori del computer dispongono delle autorizzazioni per utilizzare le configurazioni di sessione predefinite.By default, only Administrators of the computer have permission to use the default session configurations. Tuttavia, è possibile modificare i descrittori di sicurezza per consentire a tutti, nessuno o solo agli utenti selezionati di usare le configurazioni di sessione nel computer.But, you can change the security descriptors to allow everyone, no one, or only selected users to use the session configurations on your computer.

Configurazioni di sessione predefiniteBuilt-in Session Configurations

PowerShell 3,0 include configurazioni di sessione predefinite denominate Microsoft. PowerShell e Microsoft. PowerShell. Workflow.PowerShell 3.0 includes built-in session configurations named Microsoft.PowerShell and Microsoft.PowerShell.Workflow. Nei computer che eseguono versioni di Windows a 64 bit, PowerShell fornisce anche Microsoft. PowerShell32, una configurazione di sessione a 32 bit.On computers running 64-bit versions of Windows, PowerShell also provides Microsoft.PowerShell32, a 32-bit session configuration.

Per impostazione predefinita, la configurazione di sessione Microsoft. PowerShell viene usata per le sessioni, ovvero quando un comando per creare una sessione non include il parametro ConfigurationName del cmdlet New-PSSession, Enter-PSSession o Invoke-Command.The Microsoft.PowerShell session configuration is used for sessions by default, that is, when a command to create a session does not include the ConfigurationName parameter of the New-PSSession, Enter-PSSession, or Invoke-Command cmdlet.

I descrittori di sicurezza per le configurazioni di sessione predefinite consentono solo ai membri del gruppo Administrators nel computer locale di usarli.The security descriptors for the default session configurations allow only members of the Administrators group on the local computer to use them. Di conseguenza, solo i membri del gruppo Administrators possono connettersi al computer in remoto, a meno che non si modifichino le impostazioni predefinite.As such, only members of the Administrators group can connect to the computer remotely unless you change the default settings.

È possibile modificare le configurazioni di sessione predefinite usando la variabile di preferenza $PSSessionConfigurationName.You can change the default session configurations by using the $PSSessionConfigurationName preference variable. Per altre informazioni, vedere about_Preference_Variables.For more information, see about_Preference_Variables.

Visualizzazione delle configurazioni di sessione nel computer localeViewing Session Configurations on the Local Computer

Per ottenere le configurazioni di sessione nel computer locale, usare il cmdlet Get-PSSessionConfiguration.To get the session configurations on your local computer, use the Get-PSSessionConfiguration cmdlet.

Ad esempio, digitare il comando seguente:For example, type:

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 configurazione di sessione viene espanso in PowerShell 3,0 per visualizzare le proprietà della configurazione di sessione configurate tramite un file di configurazione della sessione.The session configuration object is expanded in PowerShell 3.0 to display the properties of the session configuration that are configured by using a session configuration file.

Ad esempio, per visualizzare tutte le proprietà di un oggetto di configurazione di sessione, digitare:For example, to see all of the properties of a session configuration object, type:

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

È anche possibile usare il provider WSMan in PowerShell per visualizzare le configurazioni di sessione.You can also use the WSMan provider in PowerShell to view session configurations. Il provider WSMan crea un'unità WSMAN: nella sessione.The WSMan provider creates a WSMAN: drive in your session.

Nell'unità WSMAN: le configurazioni di sessione si trovano nel nodo plug-in.In the WSMAN: drive, session configurations are in the Plugin node. Tutte le configurazioni di sessione si trovano nel nodo plug-in, ma nel nodo plug-in sono presenti elementi che non sono configurazioni di sessione.(All session configurations are in the Plugin node, but there are items in the Plugin node that are not session configurations.)

Ad esempio, per visualizzare le configurazioni di sessione nel computer locale, digitare:For example, to view the session configurations on the local computer, type:

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 remotoViewing Session Configurations on a Remote Computer

Per visualizzare le configurazioni di sessione in un computer remoto, usare il cmdlet Connect-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.To view the session configurations on a remote computer, use the Connect-WSMan cmdlet to add a note for the remote computer to the WSMAN: drive on your local computer, and then use the WSMAN: drive to view the session configurations.

Ad esempio, il comando seguente aggiunge un nodo per il computer remoto Server01 all'unità WSMAN: nel computer locale.For example, the following command adds a node for the Server01 remote computer to the WSMAN: drive on the local computer.

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

Al termine del comando, è possibile passare al nodo del computer Server01 per visualizzare le configurazioni di sessione.When the command is complete, you can navigate to the node for the Server01 computer to view the session configurations.

Ad esempio:For example:

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 sessioneChanging the Security Descriptor of a Session Configuration

In Windows Server 2012 e versioni più recenti di Windows Server, per impostazione predefinita le configurazioni di sessione predefinite sono abilitate per gli utenti remoti.In Windows Server 2012 and newer releases of Windows Server, the built-in session configurations are enabled for remote users by default. In altre versioni supportate di Windows, è necessario modificare i descrittori di sicurezza delle configurazioni di sessione per consentire l'accesso remoto.In other supported versions of Windows, you must change the security descriptors of the session configurations to allow remote access.

Per abilitare l'accesso remoto alle configurazioni di sessione nel computer, usare il cmdlet Enable-PSRemoting.To enable remote access to the session configurations on the computer, use the Enable-PSRemoting cmdlet. Questo cmdlet crea due configurazioni di sessione:This cmdlet creates two session configurations:

  • con il nome definito come: "PowerShell".with the name defined as: "PowerShell." + "versione corrente di PowerShell"+ "current PowerShell version"
  • con il nome "PowerShell. 6", non associato ad alcuna versione specifica di PowerShell.with name "PowerShell.6", untied to any specific PowerShell version.

Inoltre, per impostazione predefinita, solo i membri del gruppo Administrators 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.Also, by default, only members of the Administrators group on the computer have Execute permission to the default session configurations, but you can change the security descriptors on the default session configurations and on any session configurations that you create.

Per concedere ad altri utenti l'autorizzazione per la connessione 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.To give other users permission to connect to the computer remotely, use the Set-PSSessionConfiguration cmdlet to add "Execute" permissions for those users to the security descriptors of the Microsoft.PowerShell and Microsoft.PowerShell32 session configurations.

Ad esempio, il comando seguente apre una pagina delle proprietà che consente di modificare il descrittore di sicurezza per la configurazione di sessione predefinita Microsoft. PowerShell.For example, the following command opens a property page that lets you change the security descriptor for the Microsoft.PowerShell default session configuration.

Set-PSSessionConfiguration -name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Per negare tutti le autorizzazioni per tutte le configurazioni di sessione nel computer, usare il cmdlet Disable-PSSessionConfiguration.To deny everyone permission to all the session configurations on the computer, use the Disable-PSSessionConfiguration cmdlet. Ad esempio, il comando seguente disabilita le configurazioni di sessione predefinite nel computer.For example, the following command disables the default session configurations on the 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.To prevent remote users from connecting to the computer, but allow local users to connect, use the Disable-PSRemoting cmdlet. Disable-PSRemoting aggiunge una voce "Network_Deny_All" a tutte le configurazioni di sessione nel computer.Disable-PSRemoting adds a "Network_Deny_All" entry to all session configurations on the 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.To allow remote users to use all session configurations on the computer, use the Enable-PSRemoting or Enable-PSSessionConfiguration cmdlet. Il comando seguente, ad esempio, consente l'accesso remoto alle configurazioni di sessione predefinite.For example, the following command enables remote access to the built-in session configurations.

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.To make other changes to the security descriptor of a session configuration, use the Set-PSSessionConfiguration cmdlet. Usare il parametro SecurityDescriptorSDDL per inviare un valore stringa SDDL.Use the SecurityDescriptorSDDL parameter to submit an SDDL string value. Usare il parametro ShowSecurityDescriptorUI per visualizzare una finestra delle proprietà dell'interfaccia utente che consente di creare un nuovo SDDL.Use the ShowSecurityDescriptorUI parameter to display a user interface property sheet that helps you to create a new SDDL.

Ad esempio:For example:

Set-PSSessionConfiguration -Name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Creazione di una nuova configurazione di sessioneCreating a New Session Configuration

Per creare una nuova configurazione di sessione nel computer locale, usare il cmdlet Register-PSSessionConfiguration.To create a new session configuration on the local computer, use the Register-PSSessionConfiguration cmdlet. Per definire la nuova configurazione di sessione, è possibile usare un assembly C#, uno script di PowerShell e i parametri del cmdlet Register-PSSessionConfiguration.To define the new session configuration, you can use a C# assembly, a PowerShell script, and the parameters of the Register-PSSessionConfiguration cmdlet.

Ad esempio, il comando seguente crea una configurazione di sessione identica alla configurazione di sessione Microsoft. PowerShell, ad eccezione del fatto che limita i dati ricevuti da un comando remoto a 20 megabyte (MB).For example, the following command creates a session configuration that is identical the Microsoft.PowerShell session configuration, except that it limits the data received from a remote command to 20 megabytes (MB). Il valore predefinito è 50 MB.(The default is 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:.When you create a session configuration, you can manage it by using the other session configuration cmdlets, and it appears in the WSMAN: drive.

Per altre informazioni, vedere Register-PSSessionConfiguration.For more information, see Register-PSSessionConfiguration.

Rimozione di una configurazione di sessioneRemoving a Session Configuration

Per rimuovere una configurazione di sessione dal computer locale, usare il cmdlet Unregister-PSSessionConfiguration.To remove a session configuration from the local computer, use the Unregister-PSSessionConfiguration cmdlet. Ad esempio, il comando seguente rimuove la configurazione di sessione NewConfig dal computer.For example, the following command removes the NewConfig session configuration from the computer.

PS C:> Unregister-PSSessionConfiguration -Name NewConfig

Per altre informazioni, vedere Unregister-PSSessionConfiguration.For more information, see Unregister-PSSessionConfiguration.

Ripristino di una configurazione di sessioneRestoring a Session Configuration

Per ripristinare accidentalmente una configurazione di sessione predefinita eliminata (annullata la registrazione), usare il cmdlet Enable-PSRemoting.To restore a default session configuration that was deleted (unregistered) accidentally, use the Enable-PSRemoting cmdlet.

Il cmdlet Enable-PSRemoting ricrea tutte le configurazioni di sessioni predefinite che non esistono nel computer.The Enable-PSRemoting cmdlet recreates all default sessions configurations that do not exist on the computer. Non sovrascrive o modifica i valori delle proprietà delle configurazioni di sessione esistenti.It does not overwrite or change the property values of existing session configurations.

Per ripristinare i valori originali della proprietà di una configurazione di sessione predefinita, usare il Unregister-PSSessionConfiguration per eliminare la configurazione di sessione e quindi usare il cmdlet Enable-PSRemoting per ricrearla.To restore the original property values of a default session configuration, use the Unregister-PSSessionConfiguration to delete the session configuration and then use the Enable-PSRemoting cmdlet to recreate it.

Selezione di una configurazione di sessioneSelecting a Session Configuration

Per selezionare una particolare configurazione di sessione per una sessione, usare il parametro ConfigurationName di New-PSSession, Enter-PSSession o Invoke-Command.To select a particular session configuration for a session, use the ConfigurationName parameter of New-PSSession, Enter-PSSession, or Invoke-Command.

Ad esempio, questo comando usa il cmdlet New-PSSession per avviare una sessione PSSession nel computer Server01.For example, this command uses the New-PSSession cmdlet to start a PSSession on the Server01 computer. Il comando usa il parametro ConfigurationName per selezionare la configurazione WithProfile nel computer Server01.The command uses the ConfigurationName parameter to select the WithProfile configuration on the Server01 computer.

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

Questo comando avrà esito positivo solo se l'utente corrente dispone delle autorizzazioni per usare la configurazione di sessione WithProfile o può fornire le credenziali di un utente che dispone delle autorizzazioni necessarie.This command will succeed only if the current user has permission to use the WithProfile session configuration or can supply the credentials of a user who has the required permissions.

È anche possibile usare la variabile di preferenza $PSSessionConfigurationName per modificare la configurazione di sessione predefinita nel computer.You can also use the $PSSessionConfigurationName preference variable to change the default session configuration on the computer. Per ulteriori informazioni sulla variabile di preferenza $PSSessionConfigurationName, vedere about_Preference_Variables.For more information about the $PSSessionConfigurationName preference variable, see about_Preference_Variables.

ParoleKEYWORDS

about_Endpoints about_SessionConfigurationsabout_Endpoints about_SessionConfigurations

VEDERE ANCHESEE ALSO

about_Preference_Variablesabout_Preference_Variables

about_PSSessionsabout_PSSessions

about_Remoteabout_Remote

about_Session_Configuration_Filesabout_Session_Configuration_Files

New-PSSessionNew-PSSession

Disable-PSSessionConfigurationDisable-PSSessionConfiguration

Enable-PSSessionConfigurationEnable-PSSessionConfiguration

Get-PSSessionConfigurationGet-PSSessionConfiguration

New-PSSessionConfigurationFileNew-PSSessionConfigurationFile

Register-PSSessionConfigurationRegister-PSSessionConfiguration

Set-PSSessionConfigurationSet-PSSessionConfiguration

Test-PSSessionConfigurationFileTest-PSSessionConfigurationFile

Unregister-PSSessionConfigurationUnregister-PSSessionConfiguration