Uso del motore di Windows PowerShell 2.0

Windows PowerShell è progettato per essere compatibile con le versioni precedenti. 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. A causa di una modifica dei criteri di attivazione del runtime in Microsoft .NET Framework 4, tuttavia, 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).

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. Questa situazione si verifica, ad esempio, con versioni precedenti di moduli Exchange o SQL Server. È previsto che questi casi siano rari.

Molte applicazioni che richiedono l'uso del motore di Windows PowerShell 2.0 lo avviano automaticamente. Queste istruzioni sono incluse per i rari casi in cui è necessario avviare il motore manualmente.

Problemi di sicurezza e deprecazione

Windows PowerShell 2.0 è stato deprecato nell'agosto 2017. Per altre informazioni, vedere l'annuncio corrispondente nel blog di PowerShell.

In Windows PowerShell 2.0 manca una quantità significativa di funzionalità di protezione e sicurezza aggiunte nelle versioni 3, 4 e 5. Se possibile, quindi, si consiglia di non usarlo. 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).

Installazione e abilitazione delle applicazioni necessarie

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. Per istruzioni, vedere Installazione di Windows PowerShell.

I sistemi in cui è installato Windows Management Framework 3.0 o versione successiva hanno tutti i componenti necessari. Non è richiesta alcuna configurazione aggiuntiva. Per informazioni sull'installazione di Windows Management Framework, vedere Installare e configurare WMF.

Come avviare il motore di Windows PowerShell 2.0

Quando si avvia Windows PowerShell, per impostazione predefinita viene eseguita la versione più recente. Per avviare Windows PowerShell con il motore di Windows PowerShell 2.0, usare il parametro Version di PowerShell.exe. Si può eseguire il comando in qualsiasi prompt dei comandi, inclusi Windows PowerShell e Cmd.exe.

PowerShell.exe -Version 2

Come avviare una sessione remota con il motore di Windows PowerShell 2.0

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. 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.

Si tratta di un'attività avanzata, che in genere viene eseguita dagli amministratori di sistema.

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. 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.

Per altre informazioni sui file di configurazione delle sessioni, vedere about_Session_Configuration_Files. Per informazioni sulle configurazioni di sessione, incluse le funzionalità di impostazione e sicurezza, vedere about_Session_Configurations.

Per avviare una sessione remota di Windows PowerShell 2.0

  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. Eseguire questo comando nel computer che si trova sul "lato server" o ricevente della connessione.

    Il comando di esempio seguente crea la configurazione di sessione PS2 nel computer Server01. Per eseguire il comando, avviare Windows PowerShell con l'opzione Esegui come amministratore.

    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".

    All'avvio di una sessione che usa la configurazione di sessione, il motore di Windows PowerShell 2.0 viene caricato automaticamente.

    Il comando seguente avvia nel computer Server01 una sessione che usa la configurazione di sessione PS2. Il comando salva la sessione nella variabile $s.

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

Come avviare un processo in background con il motore di Windows PowerShell 2.0

Per avviare un processo in background con il motore di Windows PowerShell 2.0, usare il parametro PSVersion del cmdlet Start-Job.

Il comando seguente avvia un processo in background con il motore di Windows PowerShell 2.0

Start-Job {Get-Process} -PSVersion 2.0

Per altre informazioni sui processi in background, vedere about_Jobs.