Note sulla versione di Windows Management Framework (WMF) 5.x
Modifiche a WMF 5.0
- PowerShell 5.0 aggiunge un nuovo flusso di informazioni strutturate
- Miglioramenti a DSC, incluse quattro nuove risorse DSC:
- WindowsFeatureSet
- WindowsOptionalFeatureSet
- ServiceSet
- ProcessSet
- Aggiunta di Just Enough Administration per abilitare l'amministrazione basata su ruoli tramite la comunicazione remota di PowerShell
- PowerShell 5.0 estende il linguaggio in modo da includere classi ed enumerazioni definite dall'utente
- Funzionalità di debug migliorate in PowerShell ISE e aggiunta del debug remoto
- Aggiunta dei moduli PowerShellGet e PackageManagement
- Registrazione e trascrizioni avanzate degli script di PowerShell
- Aggiungere i cmdlet Cryptographic Message Syntax
- WMF 5.0 include il modulo NetworkSwitchManager per Windows
- Aggiunta del modulo Microsoft.PowerShell.ODataUtils
- Aggiunta del supporto per la registrazione inventario software (SIL)
- Sever new or update cmdlets in response to user requests and issues
Modifiche a WMF 5.1
WMF 5.1 include i componenti PowerShell, WMI, WinRM e Registrazione inventario software rilasciati con Windows Server 2016. WMF 5.1 può essere installato in Windows 7, Windows 8.1, Windows Server 2008 R2, 2012 e 2012 R2 e offre diversi miglioramenti rispetto a WMF 5.0, tra cui:
- Nuovi cmdlet
- I miglioramenti di PowerShellGet includono l'applicazione di moduli firmati e l'installazione di moduli JEA
- PackageManagement ha aggiunto il supporto per contenitori, installazione CBS, installazione basata su EXE, pacchetti CAB
- Miglioramenti del debug per le classi DSC e PowerShell
- Miglioramenti della sicurezza, inclusa l'applicazione di moduli firmati dal catalogo provenienti dal server di pull e quando si usano i cmdlet PowerShellGet
- Risposte a una serie di richieste e problemi utente
Importante
Prima di installare WMF 5.1 in Windows Server 2008 o Windows 7, verificare che WMF 3.0 non sia installato. Per altre informazioni, vedere prerequisiti di WMF 5.1 per Windows Server 2008 R2 SP1 e Windows 7 SP1.
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 e offre compatibilità con script e moduli destinati alle versioni di PowerShell in esecuzione su edizioni con footprint completo di Windows, ad esempio Server Core e Windows Desktop.
- Core Edition: basata su .NET Core e offre compatibilità con script e moduli destinati a versioni di PowerShell in esecuzione su edizioni con footprint ridotto di Windows, ad esempio Nano Server e Windows IoT.
Altre informazioni sull'uso delle edizioni di PowerShell
- Determinare l'edizione in esecuzione di PowerShell usando $PSVersionTable
- Filtrare Get-Module risultati in base a CompatiblePSEditions usando il parametro PSEdition
- Impedire l'esecuzione di script a meno che non venga eseguita in un'edizione compatibile di PowerShell
- Dichiarare la compatibilità di un modulo per specifiche versioni di PowerShell
Cache di analisi dei moduli
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 viene 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 qualche volta 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 influiranno solo sui processi figlio. Il valore deve denominare un percorso completo (incluso il nome file) che PowerShell ha l'autorizzazione per creare e scrivere file. Per disabilitare la cache dei file, impostare questo valore su un percorso non valido, ad esempio:
$env:PSModuleAnalysisCachePath = 'nul'
In questo modo viene impostato il percorso di 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 verificherà la presenza di moduli che non esistono più per evitare una cache inutilmente di grandi dimensioni. A volte questi controlli non sono auspicabili, nel qual caso è possibile disattivarli impostando:
$env:PSDisableModuleAnalysisCacheCleanup = 1
L'impostazione di questa variabile di ambiente avrà effetto immediatamente nel processo corrente.
Specifica della versione del modulo
In WMF 5.1, using module
si comporta allo stesso modo di altre costruzioni correlate ai moduli in PowerShell.
In precedenza non era possibile specificare una particolare versione del modulo; se sono presenti più versioni, si è verificato un errore.
In WMF 5.1:
È possibile usare ModuleSpecification Constructor (Hashtable).
Questa tabella hash ha lo stesso formato di
Get-Module -FullyQualifiedName
.Esempio di :
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 comportamento di errore, ovvero lo stesso comportamento diImport-Module
eImport-DscResource
.
Miglioramenti a Pester
In WMF 5.1 la versione di Pester fornita con PowerShell è stata aggiornata dalla versione 3.3.5 alla versione 3.4.0. Questo aggiornamento consente un comportamento migliore per Pester in Nano Server.
È possibile esaminare le modifiche in Pest esaminando il