about_Windows_Powershell_5.1

Descrizione breve

Descrive le nuove funzionalità incluse in Windows PowerShell 5.1.

Descrizione lunga

Windows PowerShell 5.1 include nuove funzionalità significative che ne estendono l'uso, ne migliorano l'usabilità e consentono di controllare e gestire gli ambienti basati su Windows in modo più semplice e completo.

Windows PowerShell 5.1 è compatibile con le versioni precedenti. Cmdlet, provider, moduli, snap-in, script, funzioni e profili progettati per Windows PowerShell 4.0, Windows PowerShell 3.0 e Windows PowerShell 2.0 funzionano in genere in Windows PowerShell 5.1 senza modifiche.

  • Nuovi cmdlet: utenti locali e gruppi; Get-ComputerInfo
  • I miglioramenti apportati a PowerShellGet includono l'applicazione di moduli firmati e l'installazione di moduli JEA
  • È stato aggiunto il supporto di PackageManagement per i contenitori, l'installazione di CBS, l'installazione basata su EXE e i pacchetti CAB
  • Miglioramenti del debug per le classi DSC e PowerShell
  • Miglioramenti relativi alla sicurezza, incluso quando si usano i cmdlet PowerShellGet e quando si applicano i moduli firmati da catalogo provenienti dal server di pull
  • Risposte ad alcune richieste o problemi segnalati da utenti

Windows PowerShell 5.1 è installato per impostazione predefinita in Windows Server versione 2016 e successive e client Windows versione 10 e successive.

Per installare Windows PowerShell 5.1 nelle versioni precedenti di Windows, vedere Installare e configurare WMF 5.1. Assicurarsi di leggere i dettagli del download e soddisfare tutti i requisiti di sistema prima di installare Windows Management Framework 5.1.

È anche possibile leggere le informazioni sulle modifiche apportate a Windows PowerShell 5.1 in Novità di Windows PowerShell.

Edizioni di PowerShell

A partire dalla versione 5.1, PowerShell è disponibile in diverse edizioni che indicano diversi set di funzionalità e compatibilità della piattaforma.

  • Desktop Edition: basata su .NET Framework, fornisce la compatibilità con script e moduli destinati a versioni di PowerShell che eseguono edizioni a impatto completo di Windows, ad esempio Server Core e Windows Desktop.
  • Core Edition: basata su .NET Core, fornisce la compatibilità con script e moduli destinati a versioni di PowerShell che eseguono edizioni a impatto ridotto di Windows, ad esempio Nano Server e Windows IoT.

Altre informazioni sull'uso delle edizioni di PowerShell

Cmdlet di catalogo

Nel modulo Microsoft.PowerShell.Security sono stati aggiunti due nuovi cmdlet. Questi cmdlet generano e convalidano i file di catalogo di Windows.

New-FileCatalog

New-FileCatalog crea un file di catalogo di Windows per un set di cartelle e file. Questo file di catalogo contiene gli hash per tutti i file nei percorsi specificati. Gli utenti possono distribuire il gruppo di cartelle con il corrispondente file di catalogo che rappresenta le cartelle. Queste informazioni sono utili per convalidare se sono state apportate modifiche alle cartelle dall'ora di creazione del catalogo.

New-FileCatalog [-CatalogFilePath] <string> [[-Path] <string[]>]
 [-CatalogVersion <int>] [-WhatIf] [-Confirm] [<CommonParameters>]

Sono supportate le versioni 1 e 2 del catalogo. La versione 1 usa l'algoritmo di hash SHA1 per creare hash di file; la versione 2 usa SHA256. È consigliabile usare la versione 2 del catalogo.

Per verificare l'integrità dei file di catalogo (Pester.cat nell'esempio precedente), accedere tramite il cmdlet Set-AuthenticodeSignature.

Test-FileCatalog

Test-FileCatalog convalida il catalogo che rappresenta un set di cartelle.

Test-FileCatalog [-Detailed] [-FilesToSkip <String[]>]
 [-CatalogFilePath] <String> [[-Path] <String[]>]
 [-WhatIf] [-Confirm] [<CommonParameters>]

Questo cmdlet confronta tutti gli hash dei file e i relativi percorsi trovati in un catalogo con i file su disco. Se rileva una mancata corrispondenza tra hash di file e percorsi, restituisce lo stato come ValidationFailed. Gli utenti possono recuperare tutte queste informazioni usando il parametro Detailed . Visualizza anche lo stato della firma del catalogo nella proprietà Signature , equivalente alla chiamata del cmdlet Get-AuthenticodeSignature nel file di catalogo. Gli utenti possono anche ignorare qualsiasi file durante la convalida usando il parametro FilesToSkip .

Modulo Analysis Cache

A partire da WMF 5.1, PowerShell fornisce il controllo sul file usato per memorizzare nella cache i dati relativi a un modulo, ad esempio i comandi che esporta.

Per impostazione predefinita, questa cache è archiviata nel file ${env:LOCALAPPDATA}\Microsoft\Windows\PowerShell\ModuleAnalysisCache. La cache viene in genere letta all'avvio durante la ricerca di un comando e viene scritta in un thread in background ad un certo punto dopo l'importazione di un modulo.

Per modificare il percorso predefinito della cache, impostare la variabile di ambiente $env:PSModuleAnalysisCachePath prima di avviare PowerShell. Le modifiche apportate a questa variabile di ambiente influiscono solo sui processi figlio. Il valore deve denominare un percorso completo (nome di file incluso) per il quale PowerShell dispone dell'autorizzazione per creare e scrivere file. Per disabilitare la cache del file, impostare questo valore su un percorso non valido, ad esempio:

$env:PSModuleAnalysisCachePath = 'nul'

Questo imposta il percorso su un dispositivo non valido. Se PowerShell non riesce a scrivere nel percorso, non viene restituito alcun errore, ma è possibile visualizzare la segnalazione degli errori usando una traccia:

Trace-Command -PSHost -Name Modules -Expression {
  Import-Module Microsoft.PowerShell.Management -Force
}

Quando si scrive la cache, PowerShell verifica la presenza di moduli che non esistono più per evitare una cache inutilmente di grandi dimensioni. È possibile disabilitare i controlli usando l'impostazione seguente:

$env:PSDisableModuleAnalysisCacheCleanup = 1

L'impostazione di questa variabile di ambiente diventa effettiva immediatamente nel processo corrente.

Specifica della versione del modulo

In WMF 5.1 using module si comporta esattamente come altre costruzioni correlate ai moduli di PowerShell. In precedenza non era possibile specificare una versione specifica del modulo. Se sono presenti più versioni, si è verificato un errore.

In WMF 5.1:

  • È possibile usare il costruttore ModuleSpecification (Hashtable). Questa tabella hash ha lo stesso formato di Get-Module -FullyQualifiedName.

    Esempio: using module @{ModuleName = 'PSReadLine'; RequiredVersion = '1.1'}

  • Se sono presenti più versioni del modulo, PowerShell usa la stessa logica di risoluzione di Import-Module e non restituisce un errore.

Miglioramenti a Pester

In WMF 5.1 la versione di Pester fornita con PowerShell è stata aggiornata dalla versione 3.3.5 alla 3.4.0. È possibile esaminare le modifiche apportate alle versioni da 3.3.5 a 3.4.0 esaminando CHANGELOG nel repository GitHub.

PAROLE CHIAVI

Novità di Windows PowerShell 5.1