Uso del motore di Windows PowerShell 2.0Using the Windows PowerShell 2.0 Engine

Windows PowerShell è progettato per essere compatibile con le versioni precedenti.Windows PowerShell is designed to be backward compatible with previous versions. I cmdlet, i provider, gli snap-in, i moduli e gli script scritti per Windows PowerShell 2.0 possono essere eseguiti senza modifiche nelle nuove versioni di Windows PowerShell.Cmdlets, providers, snap-ins, modules, and scripts written for Windows PowerShell 2.0 run unchanged in newer versions Windows PowerShell. A causa di una modifica dei criteri di attivazione del runtime in Microsoft .NET Framework 4, tuttavia,However, Microsoft .NET Framework 4 changed the runtime activation policy. i programmi host di Windows PowerShell scritti per Windows PowerShell 2.0 e compilati con Common Language Runtime (CLR) 2.0 non possono essere eseguiti senza modifiche in nuove versioni di Windows PowerShell compilate con CLR 4.0 (o versione successiva).Windows PowerShell host programs written for Windows PowerShell 2.0 and compiled with Common Language Runtime (CLR) 2.0 cannot run without modification in new versions Windows PowerShell that are compiled with CLR 4.0 (or higher).

Il motore di Windows PowerShell 2.0 deve essere usato solo quando non è possibile eseguire un programma host o uno script esistente perché non è compatibile con Windows PowerShell 5.1.The Windows PowerShell 2.0 Engine is intended to be used only when an existing script or host program cannot run because it is incompatible with Windows PowerShell 5.1. Questa situazione si verifica, ad esempio, con versioni precedenti di moduli Exchange o SQL Server.Examples of this include older versions of Exchange or SQL Server modules. È previsto che questi casi siano rari.Such cases are expected to be rare.

Molte applicazioni che richiedono l'uso del motore di Windows PowerShell 2.0 lo avviano automaticamente.Many programs that require the Windows PowerShell 2.0 Engine start it automatically. Queste istruzioni sono incluse per i rari casi in cui è necessario avviare il motore manualmente.These instructions are included for the rare situations in which you need to start the engine manually.

Problemi di sicurezza e deprecazioneDeprecation and security concerns

Windows PowerShell 2.0 è stato deprecato nell'agosto 2017.Windows PowerShell 2.0 was deprecated in August, 2017. Per altre informazioni, vedere l'annuncio corrispondente nel blog di PowerShell.For more information, see the announcement on the PowerShell blog.

In Windows PowerShell 2.0 manca una quantità significativa di funzionalità di protezione e sicurezza aggiunte nelle versioni 3, 4 e 5.Windows PowerShell 2.0 is missing a significant amount of the hardening and security features added in versions 3, 4, and 5. Se possibile, quindi, si consiglia di non usarlo.We highly, highly recommend that users not use it if they can help it. Per altre informazioni, vedere gli articoli A Comparison of Shell and Scripting Language Security (Confronto tra la sicurezza della shell e del linguaggio di scripting) e PowerShell ♥ the Blue Team (PowerShell e il Blue Team).For more information, see A Comparison of Shell and Scripting Language Security and PowerShell ♥ the Blue Team.

Installazione e abilitazione delle applicazioni necessarieInstalling and Enabling Required Programs

Prima di avviare il motore di Windows PowerShell 2.0, abilitare il motore di Windows PowerShell 2.0 Engine e Microsoft .NET Framework 3.5 con Service Pack 1.Before starting the Windows PowerShell 2.0 Engine, enable the Windows PowerShell 2.0 Engine and Microsoft .NET Framework 3.5 with Service Pack 1. Per istruzioni, vedere Installazione di Windows PowerShell.For instructions, see Installing Windows PowerShell.

I sistemi in cui è installato Windows Management Framework 3.0 o versione successiva hanno tutti i componenti necessari.Systems on which Windows Management Framework 3.0 or higher is installed have all of the required components. Non è richiesta alcuna configurazione aggiuntiva.No further configuration is necessary. Per informazioni sull'installazione di Windows Management Framework, vedere Installare e configurare WMF.For information about installing Windows Management Framework, see Install and configure WMF.

Come avviare il motore di Windows PowerShell 2.0How to start the Windows PowerShell 2.0 Engine

Quando si avvia Windows PowerShell, per impostazione predefinita viene eseguita la versione più recente.When you start Windows PowerShell the newest version starts by default. Per avviare Windows PowerShell con il motore di Windows PowerShell 2.0, usare il parametro Version di PowerShell.exe.To start Windows PowerShell with the Windows PowerShell 2.0 Engine, use the Version parameter of PowerShell.exe. Si può eseguire il comando in qualsiasi prompt dei comandi, inclusi Windows PowerShell e Cmd.exe.You can run the command at any command prompt, including Windows PowerShell and Cmd.exe.

PowerShell.exe -Version 2

Come avviare una sessione remota con il motore di Windows PowerShell 2.0How to start a remote session with the Windows PowerShell 2.0 Engine

Per eseguire il motore di Windows PowerShell 2.0 in una sessione remota, creare una configurazione di sessione (detta anche endpoint ) nel computer remoto che carica il motore di Windows PowerShell 2.0.To run the Windows PowerShell 2.0 Engine in a remote session, create a session configuration (also known as an endpoint ) on the remote computer that loads the Windows PowerShell 2.0 Engine. La configurazione di sessione viene salvata nel computer remoto e può essere usata da qualsiasi utente autorizzato a creare sessioni che usano il motore di Windows PowerShell 2.0.The session configuration is saved on the remote computer and can be used by any authorized user to create sessions that use the Windows PowerShell 2.0 Engine.

Si tratta di un'attività avanzata, che in genere viene eseguita dagli amministratori di sistema.This is an advanced task that is typically performed by a system administrator.

La procedura seguente usa il parametro PSVersion del cmdlet Register-PSSessionConfiguration per creare una configurazione di sessione che usa il motore di Windows PowerShell 2.0.The following procedure uses the PSVersion parameter of the Register-PSSessionConfiguration cmdlet to create a session configuration that uses the Windows PowerShell 2.0 Engine. Si può anche usare il parametro PowerShellVersion del cmdlet New-PSSessionConfigurationFile per creare un file di configurazione per una sessione che carica il motore di Windows PowerShell 2.0. Per modificare una configurazione di sessione in modo che usi il motore di Windows PowerShell 2.0 si può usare il parametro PSVersion del cmdlet Set-PSSessionConfiguration.You can also use the PowerShellVersion parameter of the New-PSSessionConfigurationFile cmdlet to create a session configuration file for a session that loads the Windows PowerShell 2.0 Engine and you can use the PSVersion parameter of the Set-PSSessionConfiguration parameter to change a session configuration to use the Windows PowerShell 2.0 Engine.

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. Per informazioni sulle configurazioni di sessione, incluse le funzionalità di impostazione e sicurezza, vedere about_Session_Configurations.For information about session configurations, including setup and security, see about_Session_Configurations.

Per avviare una sessione remota di Windows PowerShell 2.0To start a remote Windows PowerShell 2.0 session

  1. Per creare una configurazione di sessione che richiede il motore di Windows PowerShell 2.0, usare il parametro PSVersion del cmdlet Register-PSSessionConfigurationimpostando il valore 2.0.To create a session configuration that requires the Windows PowerShell 2.0 Engine, use the PSVersion parameter of the Register-PSSessionConfiguration cmdlet with a value of 2.0. Eseguire questo comando nel computer che si trova sul "lato server" o ricevente della connessione.Run this command on the computer at the "server side" or receiving end of the connection.

    Il comando di esempio seguente crea la configurazione di sessione PS2 nel computer Server01.The following sample command creates the PS2 session configuration on the Server01 computer. Per eseguire il comando, avviare Windows PowerShell con l'opzione Esegui come amministratore.To run this command, start Windows PowerShell with the Run as administrator option.

    Register-PSSessionConfiguration -Name PS2 -PSVersion 2.0
    
  2. Per creare nel computer Server01 una sessione che usa la configurazione di sessione PS2, usare il parametro ConfigurationName dei cmdlet per la creazione di una sessione remota, ad esempio "New-PSSession".To create a session on the Server01 computer that uses the PS2 session configuration, use the ConfigurationName parameter of cmdlets that create a remote session, such as the `New-PSSession cmdlet.

    All'avvio di una sessione che usa la configurazione di sessione, il motore di Windows PowerShell 2.0 viene caricato automaticamente.When a session that uses the session configuration starts, the Windows PowerShell 2.0 Engine is automatically loaded into the session.

    Il comando seguente avvia nel computer Server01 una sessione che usa la configurazione di sessione PS2.The following command starts a session on the Server01 computer that uses the PS2 session configuration. Il comando salva la sessione nella variabile $s.The command saves the session in the $s variable.

    $s = New-PSSession -ComputerName Server01 -ConfigurationName PS2
    

Come avviare un processo in background con il motore di Windows PowerShell 2.0How to start a background job with the Windows PowerShell 2.0 Engine

Per avviare un processo in background con il motore di Windows PowerShell 2.0, usare il parametro PSVersion del cmdlet Start-Job.To start a background job with the Windows PowerShell 2.0 Engine, use the PSVersion parameter of the Start-Job cmdlet.

Il comando seguente avvia un processo in background con il motore di Windows PowerShell 2.0The following command starts a background job with the Windows PowerShell 2.0 Engine

Start-Job {Get-Process} -PSVersion 2.0

Per altre informazioni sui processi in background, vedere about_Jobs.For more information about background jobs, see about_Jobs.