Condividi tramite


Novità in Windows PowerShell 5.0

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

Windows PowerShell 5.0 è retrocompatibile. Cmdlet, provider, moduli, snap-in, script, funzioni e profili progettati per Windows PowerShell 4.0, Windows PowerShell 3.0 e Windows PowerShell 2.0 generalmente funzionano in Windows PowerShell 5.0 senza modifiche.

Installazione di Windows PowerShell

Windows PowerShell 5.0 è installato di default su Windows Server 2016 Technical Preview e Windows 10.

Per installare Windows PowerShell 5.0 su Windows Server 2012 R2, Windows 8.1 Enterprise o Windows 8.1 Pro, scarica e installa Windows Management Framework 5.0. Assicurati di leggere i dettagli del download e di soddisfare tutti i requisiti di sistema prima di installare Windows Management Framework 5.0.

In questo argomento

Aggiornamenti di Windows PowerShell 4.0 nel rollup degli aggiornamenti di novembre 2014 (KB 3000850)

Molti aggiornamenti e miglioramenti alla configurazione dello stato desiderato (DSC) di Windows PowerShell in Windows PowerShell 4.0 sono disponibili nel rollup degli aggiornamenti di novembre 2014 per Windows RT 8.1, Windows 8.1 e Windows Server 2012 R2 (KB3000850). Puoi determinare se KB3000850 è installato sul tuo sistema eseguendo Get-Hotfix -Id KB3000850 Windows PowerShell.

  • Aggiornamenti ai cmdlet esistenti nel modulo PSDesiredStateConfiguration

  • Nuovi cmdlet nel modulo PSDesiredStateConfiguration

  • Miglioramenti linguistici

    • DependsOn ora supporta risorse composite.
    • DependsOn ora supporta i numeri nei nomi delle istanze delle risorse.
    • Le espressioni dei nodi che valutano a vuoto non generano più errori.
    • Un errore che si verifica se un'espressione di un nodo si valuta a vuoto è stato corretto.
    • Le configurazioni che chiamano le configurazioni ora funzionano nella console PowerShell di Windows.
  • Miglioramenti della modalità pull

    • La modalità pull ora supporta tutti i file ZIP.
    • AllowModuleOverwrite ora funziona correttamente.
  • Miglioramenti della resilienza

    • La nuova DebugMode ti permette di ricaricare i moduli risorse.
    • Se si verifica un guasto di configurazione, il file pending.mof non viene eliminato.
    • Il Local Configuration Manager (LCM) è ora più resistente quando le impostazioni di metaconfigurazione sono corrotte.
  • Miglioramenti della diagnostica

    • Viene mostrato un avviso quando il LCM imposta il timer su impostazioni diverse da quelle specificate.
    • I file di log degli errori ora contengono lo stack di chiamate per le risorse PowerShell di Windows.
  • Miglioramenti della flessibilità

    • La risorsa LocalConfigurationManager ha una nuova proprietà, ActionAfterReboot.
      • ContinueConfiguration (valore predefinito): Riprende automaticamente una configurazione dopo il riavvio di un nodo target.
      • StopConfiguration: Non riprendere automaticamente una configurazione dopo il riavvio di un nodo.
    • Una run di coerenza può ora avvenire più spesso di un'operazione PULL, o viceversa.
    • Supporto per il versioning: DSC ora può riconoscere un documento generato su un client più recente (incluso con WMF 5.0).
  • Miglioramenti nella prevenzione degli errori

    • La versione del modulo viene ora applicata prima che venga applicata una configurazione.
    • DebugPreference ora è impostato correttamente per le chiamate Get-, Set- o Test-TargetResource.
  • Miglioramenti nella gestione delle credenziali

    • Ora viene utilizzato un certificato se sono specificati sia Certificate che PSDscAllowTextPassword .
    • Le credenziali vengono decriptate, anche per Get-TargetResource.
    • Le credenziali di metaconfigurazione vengono criptate e decriptate.
    • I PSCredentials vengono ora decrittati quando si trovano in un oggetto incorporato.
  • Miglioramenti integrati delle risorse

    • La risorsa Package
      • Non installa più il pacchetto sbagliato (né da fonti locali né web).
      • Ora supporta HTTPS.
    • Ora c'è supporto per HTTPS nella risorsa Package.
    • Archive Resource ora supporta le credenziali.

Nuove funzionalità in Windows PowerShell 5.0

Nuove funzionalità in Windows PowerShell

  • A partire da Windows PowerShell 5.0, puoi sviluppare utilizzando classi, sintassi formale e semantica simili ad altri linguaggi di programmazione orientati agli oggetti. Class, Enum e altre parole chiave sono state aggiunte al linguaggio PowerShell di Windows per supportare la nuova funzionalità. Per maggiori informazioni sul lavoro con le classi, vedi about_Classes.

  • Windows PowerShell 5.0 introduce un nuovo flusso di informazioni strutturato che puoi utilizzare per trasmettere dati strutturati tra uno script e i suoi chiamanti (o l'ambiente hosting). Ora puoi usare Write-Host per emettere output al flusso informativo. I flussi informativi funzionano anche per PowerShell.Streams, lavori, lavori programmati e flussi di lavoro. Le seguenti funzionalità supportano il flusso informativo.

    • Un nuovo cmdlet Write-Information che ti permette di specificare come Windows PowerShell gestisce i dati del flusso di informazioni per un comando. Write-Host è un wrapper per Write-Information. Write-Information è anche un'attività supportata per il flusso di lavoro.
    • Due nuovi parametri comuni, InformationVariable e InformationAction, permettono di determinare come vengono visualizzati i flussi di informazioni da un comando. I valori validi di InformationAction sono SilentlyContinue, Stop, Continue, Inquire, Ignore o Suspend, con SilentlyContinue come predefinito. InformationVariable specifica una stringa come nome di una variabile a cui vuoi che i dati Write-Host di un comando vengano salvati.
    • Una nuova variabile di preferenze, InformationPreference, specifica la tua preferenza predefinita per i dati del flusso di informazioni in una sessione PowerShell di Windows. Il valore predefinito è SilentlyContinue.
    • Sono stati aggiunti due nuovi parametri comuni per il flusso di lavoro, PSInformation e InformationAction.
    • Quando usi il comando Format-Table, le colonne della tabella vengono formattate automaticamente valutando i primi 300ms di dati che passano attraverso il flusso.
  • In collaborazione con Microsoft Research, è stato aggiunto un nuovo cmdlet, ConvertFrom-String. ConvertFrom-String ti permette di estrarre e analizzare oggetti strutturati dal contenuto delle stringhe di testo. Per maggiori informazioni, vedi ConvertFrom-String.

  • Un nuovo cmdlet Convert-String formatta automaticamente il testo basandosi su un esempio che fornisci in un parametro -Example.

  • Un nuovo modulo, Microsoft.PowerShell.Archive, include cmdlet che permettono di comprimere file e cartelle in file archive (noti anche come ZIP), estrarre file da file ZIP esistenti e aggiornare file ZIP con versioni più recenti di file compressi al loro interno.

  • Un nuovo modulo, PackageManagement, ti permette di scoprire e installare pacchetti software su Internet. Il modulo PackageManagement (precedentemente noto come OneGet) è un gestore o multiplexer dei gestori di pacchetti esistenti (chiamati anche provider di pacchetti) per unificare la gestione dei pacchetti di Windows con un'unica interfaccia PowerShell di Windows.

  • Un nuovo modulo, PowerShellGet, ti permette di trovare, installare, pubblicare e aggiornare moduli e risorse DSC sulla PowerShell Gallery, o su un repository interno di moduli che puoi configurare eseguendo il cmdlet Register-PSRepository.

  • È stata aggiunta una nuova parola chiave linguistica, Hidden, per specificare che un membro (una proprietà o un metodo) non viene mostrato di default nei risultati Get-Member (a meno che non si aggiunga il parametro -Force). Proprietà o metodi che sono stati contrasposti come nascosti non compaiono nei risultati di IntelliSense, a meno che tu non sia in un contesto in cui il membro dovrebbe essere visibile; Ad esempio, la variabile automatica $This dovrebbe mostrare membri nascosti quando si trova nel metodo class.

  • Nuovi Oggetti, Rimuovi Oggetto e Get-ChildItem sono stati migliorati per supportare la creazione e la gestione di collegamenti simbolici. Il parametro -ItemType per New-Item accetta un nuovo valore, SymbolicLink. Ora puoi creare collegamenti simbolici in una singola riga eseguendo il cmdlet New-Item.

  • Get-ChildItem ha anche un nuovo parametro -Depth, che si usa con il parametro -Recurse per limitare la ricorsione. Ad esempio, Get-ChildItem -Recurse -Depth 2 restituisce i risultati della cartella corrente, di tutte le cartelle figlie all'interno della cartella corrente e di tutte le cartelle all'interno delle cartelle figlie.

  • Copy-Item ora ti permette di copiare file o cartelle da una sessione PowerShell di Windows a un'altra, il che significa che puoi copiare file in sessioni collegate a computer remoti (inclusi computer che eseguono Nano Server e quindi non hanno altra interfaccia). Per copiare i file, specifica gli ID PSSession come valore dei nuovi parametri -FromSession e -ToSession, e aggiungi -Path e -Destination per specificare rispettivamente il percorso di origine e la destinazione. Ad esempio, Copy-Item -Path c:\myFile.txt -ToSession $s -Destination d:\destinationFolder.

  • La trascrizione di Windows PowerShell è stata migliorata per applicarla a tutte le applicazioni di hosting (come Windows PowerShell ISE) oltre all'host della console (powershell.exe). Le opzioni di trascrizione (inclusa l'abilitazione di una trascrizione a livello di sistema) possono essere configurate attivando l'impostazione Attiva la Policy del Gruppo di Trascrizione PowerShell , presente in Modelli Amministrativi/Componenti Windows/PowerShell di Windows.

  • Una nuova funzione dettagliata di tracciamento degli script ti permette di abilitare il tracciamento e l'analisi dettagliate dell'uso degli script di Windows PowerShell su un sistema. Dopo aver abilitato il tracciamento dettagliato degli script, Windows PowerShell registra tutti i blocchi di script nel registro eventi Event Tracing for Windows (ETW), Microsoft-Windows-PowerShell/Operational.

  • A partire da Windows PowerShell 5.0, i nuovi cmdlet Crittografici della Sintassi dei Messaggi supportano la crittografia e la decrittografia dei contenuti utilizzando il formato standard IETF per la protezione crittografica dei messaggi come documentati da RFC5652. I cmdlet Get-CmsMessage, Protect-CmsMessage e Unprotect-CmsMessage sono stati aggiunti al modulo Microsoft.PowerShell.Security .

  • I nuovi cmdlet nel modulo Microsoft.PowerShell.Utility , Get-Runspace, Debug-Runspace, Get-RunspaceDebug, Enable-RunspaceDebug e Disable-RunspaceDebug, ti permettono di impostare le opzioni di debug su uno spazio di esecuzione e di avviare e interrompere il debug su uno spazio di runspace. Per il debug di runspace arbitrari (cioè runspace che non sono lo spazio di esecuzione predefinito per una console Windows PowerShell o una sessione ISE di Windows PowerShell) Windows PowerShell ti permette di impostare breakpoint in uno script e di aggiungere breakpoint che impedisce l'esecuzione dello script finché non puoi collegare un debugger per debugare lo script di runspace. Il supporto al debug annidato per runspace arbitrari è stato aggiunto al debugger script Windows PowerShell per gli runspace.

  • Un nuovo cmdlet Format-Hex è stato aggiunto al modulo Microsoft.PowerShell.Utility . Format-Hex permette di visualizzare testo o dati binari in formato esadecimale.

  • Get-Clipboard e Set-Clipboard cmdlet sono stati aggiunti al modulo Microsoft.PowerShell.Utility ; facilitano il trasferimento dei contenuti da e verso una sessione PowerShell di Windows. I cmdlet di Clipboard supportano immagini, file audio, liste di file e testo.

  • Un nuovo cmdlet, Clear-RecycleBin, è stato aggiunto al modulo Microsoft.PowerShell.Management ; questo cmdlet svuota il Cestino di Riciclo per un disco fisso, che include i dischi esterni. Di default, ti viene chiesto di confermare un comando Clear-RecycleBin, perché la proprietà ConfirmImpact del cmdlet è impostata su ConfirmImpact.High.

  • Un nuovo cmdlet, New-TemporaryFile, ti permette di creare un file temporaneo come parte dello scripting. Di default, il nuovo file temporaneo viene creato in C:\Users\<user name>\AppData\Local\Temp.

  • I cmdlet Out-File, Add-Content e Set-Content ora hanno un nuovo parametro -NoNewline, che omette una nuova riga dopo l'output.

  • Il cmdlet New-Guid sfrutta la classe Guid .NET Framework per generare un GUID, utile quando scrivi script o risorse DSC.

  • Poiché le informazioni sulle versioni del file possono essere fuorvianti, soprattutto dopo che un file è stato aggiornato, sono disponibili nuove proprietà di script FileVersionRaw e ProductVersionRaw per gli oggetti FileInfo. Ad esempio, puoi eseguire il seguente comando per visualizzare i valori di queste proprietà per powershell.exe, dove $pid contiene l'ID del processo per una sessione in esecuzione di Windows PowerShell: Get-Process -Id $pid -FileVersionInfo | Format-List *version* -Force

  • I nuovi cmdlet Enter-PSHostProcess e Exit-PSHostProcess ti permettono di debug script PowerShell di Windows in processi separati da quelli attuali che eruono nella console PowerShell di Windows. Esegui Enter-PSHostProcess per inserire o collegare un ID di processo specifico, poi esegui Get-Runspace per restituire gli spazi di esecuzione attivi all'interno del processo. Esegui Exit-PSHostProcess per staccarti dal processo quando hai finito di debugare lo script all'interno del processo.

  • Un nuovo cmdlet Wait-Debugger è stato aggiunto al modulo Microsoft.PowerShell.Utility . Puoi eseguire Wait-Debugger per fermare uno script nel debugger prima di eseguire la successiva istruzione nello script.

  • Il debugger di workflow PowerShell di Windows ora supporta il completamento di comandi o di schede, e puoi debugare funzioni di workflow annidate. Ora puoi premere Ctrl+Break per inserire il debugger in uno script in esecuzione, sia nelle sessioni locali che remote, e in uno script di workflow.

  • Un cmdlet Debug-Job è stato aggiunto al modulo Microsoft.PowerShell.Core per debugare script di lavoro in esecuzione per il flusso di lavoro PowerShell di Windows, background e job in esecuzione in sessioni remote.

  • È stato aggiunto un nuovo stato, AtBreakpoint, per i lavori PowerShell di Windows. Lo stato AtBreakpoint si applica quando un lavoro sta eseguendo uno script che include punti di interruzione impostati e lo script ha raggiunto un punto di interruzione. Quando un lavoro viene fermato a un punto di interruzione di debug, devi fare il debug eseguendo il cmdlet Debug-Job.

  • Windows PowerShell 5.0 implementa il supporto per più versioni di un singolo modulo PowerShell di Windows nella stessa cartella in $PSModulePath. Una proprietà RequiredVersion è stata aggiunta alla classe ModuleSpecification per aiutarti a ottenere la versione desiderata di un modulo; questa proprietà è mutuamente esclusiva con la proprietà ModuleVersion. RequiredVersion è ora supportato come parte del valore del parametro FullyQualifiedName dei cmdlet Get-Module, Import-Module e Remove-Module.

  • Ora puoi eseguire la validazione della versione del modulo eseguendo il cmdlet Test-ModuleManifest.

  • I risultati del cmdlet Get-Command ora mostrano una colonna Versione; una nuova proprietà Version è stata aggiunta alla classe CommandInfo. Get-Command mostra comandi provenienti da più versioni dello stesso modulo. La proprietà Version fa anche parte delle classi derivate di CmdletInfo: CmdletInfo e ApplicationInfo.

  • Get-Command ha un nuovo parametro, -ShowCommandInfo, che restituisce le informazioni di ShowCommand come PSObject. Questa è una funzionalità particolarmente utile quando Show-Command viene eseguito in Windows PowerShell ISE utilizzando Windows PowerShell remoting. Il parametro -ShowCommandInfo sostituisce la funzione Get-SerializedCommand esistente nel modulo Microsoft.PowerShell.Utility, ma lo script Get-SerializedCommand è ancora disponibile per supportare lo script downlevel.

  • Un nuovo cmdlet Get-ItemPropertyValue ti permette di ottenere il valore di una proprietà senza usare la notazione a punto. Ad esempio, nelle versioni più vecchie di Windows PowerShell, puoi eseguire il seguente comando per ottenere il valore della proprietà Application Base della chiave del registro PowerShellEngine: (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase). ApplicationBase. A partire da Windows PowerShell 5.0, puoi eseguire Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase.

  • La console PowerShell di Windows ora utilizza la colorazione sintassica, proprio come in Windows PowerShell ISE.

  • Un nuovo modulo NetworkSwitch contiene cmdlet che permettono di applicare switch, LAN virtuale (VLAN) e configurazione base delle porte di rete di Layer 2 agli switch di rete certificati con il logo Windows Server 2012 R2.

  • Il parametro FullyQualifiedName è stato aggiunto ai cmdlet Import-Module e Remove-Module, per supportare la memorizzazione di più versioni di un singolo modulo.

  • Save-Help, Update-Help, Import-PSSession, Export-PSSession e Get-Command hanno un nuovo parametro, FullQualifiedModule, di tipo ModuleSpecification. Aggiungi questo parametro per specificare un modulo con il suo nome completamente qualificato.

  • Il valore di $PSVersionTable.PSVersion è stato aggiornato alla versione 5.0.

  • WMF 5.0 (PowerShell 5.0) include il modulo Pester . Pester è un framework di unit testing per PowerShell. Fornisce alcune parole chiave semplici da usare che ti permettono di creare test per i tuoi script.

Nuove funzionalità nella configurazione dello stato desiderato di Windows PowerShell

  • I miglioramenti del linguaggio PowerShell di Windows permettono di definire le risorse di Configurazione dello Stato Desiderato (DSC) di Windows PowerShell utilizzando classi. Import-DscResource è ora una vera parola chiave dinamica; Windows PowerShell analizza il modulo radice del modulo specificato, cercando classi che contengano l'attributo DscResource. Ora puoi usare classi per definire le risorse DSC, in cui non è necessario né un file MOF né una sottocartella DSCResource nella cartella del modulo. Un file di modulo PowerShell di Windows può contenere più classi di risorse DSC.
  • Un nuovo parametro, ThrottleLimit, è stato aggiunto ai seguenti cmdlet nel modulo PSDesiredStateConfiguration. Aggiungi il parametro ThrottleLimit per specificare il numero di computer o dispositivi target su cui vuoi che il comando funzioni contemporaneamente.
    • Get-DscConfiguration
    • Get-DscConfigurationStatus
    • Get-DscLocalConfigurationManager
    • Restore-DscConfiguration
    • Test-DscConfiguration
    • Compare-DscConfiguration
    • Publish-DscConfiguration
    • Set-DscLocalConfigurationManager
    • Start-DscConfiguration
    • Update-DscConfiguration
  • Con la segnalazione centralizzata degli errori DSC, le informazioni di errore ricche non solo vengono registrate nel registro eventi, ma possono essere inviate a una posizione centrale per analisi successive. Puoi usare questa posizione centrale per memorizzare gli errori di configurazione DSC che si sono verificati su qualsiasi server nel loro ambiente. Dopo che il server di report è stato definito nella meta-configurazione, tutti gli errori vengono inviati al server di report e poi memorizzati in un database. Puoi configurare questa funzionalità indipendentemente dal fatto che un nodo target sia configurato per estrarre configurazioni da un server pull.
  • I miglioramenti a Windows PowerShell ISE facilitano l'authoring delle risorse DSC. Ora puoi fare quanto segue.
    • Elencare tutte le risorse DSC all'interno di un blocco di configurazione o nodo inserendo Ctrl+Spazio su una riga vuota all'interno del blocco.
    • Completamento automatico delle proprietà della risorsa del tipo di enumerazione .
    • Completamento automatico della proprietà DependsOn delle risorse DSC, basato su altre istanze di risorse nella configurazione.
    • Completamento a tab migliorato dei valori delle proprietà delle risorse.
  • Un utente può ora eseguire una risorsa sotto un insieme specificato di credenziali aggiungendo l'attributo PSDscRunAsCredential a un blocco Nodo. Ad esempio, PSDscRunAsCredential = Get-Credential Contoso\DscUser. Questa funzionalità è utile per creare configurazioni che eseguono Windows Installer e installatori eseguibili, accedano all'alveare per utente o svolgono altri compiti al di fuori del contesto utente corrente.
  • È stato aggiunto il supporto a 32 bit (basato su x86) per la parola chiave Configurazione .
  • Windows PowerShell ora include il supporto per l'assistenza personalizzata per configurazioni DSC, definita aggiungendo [CmdletBinding()] alla funzione di configurazione generata.
  • Un nuovo attributo DscLocalConfigurationManager designa un blocco di configurazione come meta-configurazione, che viene utilizzato per configurare il DSC Local Configuration Manager. Questo attributo limita una configurazione a contenere solo elementi che configurano il DSC Local Configuration Manager. Durante l'elaborazione, questa configurazione genera un file *.meta.mof che viene poi inviato ai nodi target appropriati eseguendo il cmdlet Set-DscLocalConfigurationManager.
  • Configurazioni parziali sono ora consentite in Windows PowerShell 5.0. Puoi consegnare documenti di configurazione a un nodo in frammenti. Perché un nodo riceva più frammenti di un documento di configurazione, il Local Configuration Manager del nodo deve prima essere impostato per specificare i frammenti attesi
  • La sincronizzazione tra computer è una novità in DSC in Windows PowerShell 5.0. utilizzando le risorse integrate di WaitFor* (WaitForAll, WaitForAny e WaitForSome), ora puoi specificare le dipendenze tra i computer durante le esecuzioni di configurazione, senza orchestrazioni esterne. Queste risorse forniscono sincronizzazione nodo-nodo utilizzando connessioni CIM tramite il protocollo WS-Man. Una configurazione può aspettare che lo stato specifico della risorsa di un altro computer cambi.
  • Just Enough Administration (JEA), una nuova funzione di sicurezza per delegare, sfrutta gli spazi di esecuzione limitati da DSC e Windows PowerShell per aiutare a proteggere le aziende dalla perdita o compromessa di dati da parte dei dipendenti, sia intenzionale che meno. Per maggiori informazioni su JEA, incluso dove scaricare la risorsa xJEA DSC, consulta Just Enough Administration.
  • I seguenti nuovi cmdlet sono stati aggiunti al modulo PSDesiredStateConfiguration.
    • Un nuovo cmdlet Get-DscConfigurationStatus ottiene informazioni di alto livello sullo stato della configurazione da un nodo target. Puoi ottenere lo stato dell'ultima o di tutte le configurazioni.
    • Un nuovo cmdlet Compare-DscConfiguration confronta una configurazione specificata con lo stato effettivo di uno o più nodi target.
    • Un nuovo cmdlet Publish-DscConfiguration copia un file MOF di configurazione su un nodo target, ma non applica la configurazione. La configurazione viene applicata durante il passaggio successivo di coerenza, o quando esegui il cmdlet Update-DscConfiguration.
    • Un nuovo cmdlet Test-DscConfiguration permette di verificare che una configurazione risultante corrisponda alla configurazione desiderata, restituendo o True se la configurazione corrisponde a quella desiderata, oppure False se la configurazione effettiva non corrisponde a quella desiderata.
    • Un nuovo cmdlet Update-DscConfiguration impone l'elaborazione di una configurazione. Se il Local Configuration Manager è in modalità pull, il cmdlet ottiene la configurazione dal pull server prima di applicarla.

Nuove funzionalità in Windows PowerShell ISE

  • Ora puoi modificare script e file remote di Windows PowerShell in una copia locale di Windows PowerShell ISE, eseguendo Enter-PSSession per avviare una sessione remota sul computer che memorizza i file che vuoi modificare, e poi eseguendo il percorso PSEdit <e il nome del file sul computer> remoto. Questa funzione facilita l'editing dei file PowerShell di Windows memorizzati sull'opzione di installazione Server Core di Windows Server, dove Windows PowerShell ISE non può essere eseguito.
  • Il cmdlet Start-Transcript ora è supportato in Windows PowerShell ISE.
  • Ora puoi debugare script remoti in Windows PowerShell ISE.
  • Un nuovo comando di menu, Break All (Ctrl+B), interrotta il debugger sia per script locali che in esecuzione remota.

Nuove funzionalità nei servizi web Windows PowerShell (Estensione Management OData IIS)

  • A partire da Windows PowerShell 5.0, puoi generare un set di cmdlet di Windows PowerShell basandoti sulla funzionalità esposta da un dato endpoint OData, eseguendo il Export-ODataEndpointProxy cmdlet presente nel nuovo modulo Microsoft.PowerShell.OdataUtils .

Correzioni di bug notevoli in Windows PowerShell 5.0

  • Windows PowerShell 5.0 include una nuova implementazione COM, che offre significativi miglioramenti delle prestazioni quando si lavora con oggetti COM.
  • Sono stati apportati significativi miglioramenti alle prestazioni al completamento della prima scheda in una sessione PowerShell di Windows, riducendo il tempo di completamento delle tabulazioni di quasi 500 ms.

Nuove funzionalità in Windows PowerShell 4.0

Windows PowerShell 4.0 è retrocompatibile. Cmdlet, provider, moduli, snap-in, script, funzioni e profili progettati per Windows PowerShell 3.0 e Windows PowerShell 2.0 funzionano in Windows PowerShell 4.0 senza modifiche.

Windows PowerShell 4.0 è installato di default su Windows 8.1 e Windows Server 2012 R2. Per installare Windows PowerShell 4.0 su Windows 7 con SP1, o Windows Server 2008 R2, scarica e installa Windows Management Framework 4.0. Assicurati di leggere i dettagli del download e di soddisfare tutti i requisiti di sistema prima di installare Windows Management Framework 4.0.

Windows PowerShell 4.0 include le seguenti nuove funzionalità.

Nuove funzionalità in Windows PowerShell

  • La Configurazione a Stato Desiderato (DSC) di Windows PowerShell è un nuovo sistema di gestione in Windows PowerShell 4.0 che consente il deployment e la gestione dei dati di configurazione per i servizi software e l'ambiente in cui questi servizi sono eseguiti. Per maggiori informazioni sul DSC, vedi Inizia con la configurazione dello stato desiderato di Windows PowerShell.
  • Save-Help ora ti permette di salvare l'aiuto per moduli installati su computer remoti. Puoi usare Save-Help per scaricare il modulo Help da un client connesso a Internet (su cui non sono necessariamente installati tutti i moduli per cui vuoi aiuto), e poi copiare l'Help salvato in una cartella condivisa remota o su un computer remoto che non ha accesso a Internet.
  • Il debugger di Windows PowerShell è stato migliorato per consentire il debug dei flussi di lavoro PowerShell di Windows, così come degli script che girano su computer remoti. I flussi di lavoro di Windows PowerShell ora possono essere debuggati a livello di script sia dalla riga di comando di Windows PowerShell sia da Windows PowerShell ISE. Gli script PowerShell di Windows, inclusi i flussi di lavoro di script, ora possono essere debuggati tramite sessioni remote. Le sessioni di debug remoti sono preservate su sessioni remote PowerShell di Windows che vengono disconnesse e poi successivamente riconnesse.
  • Un parametro RunNow per Register-ScheduledJob e Set-ScheduledJob elimina la necessità di impostare una data e un'ora di inizio immediata per i lavori utilizzando il parametro Trigger .
  • Invoke-RestMethod e Invoke-WebRequest ora ti permettono di impostare tutte le intestazioni usando il parametro Headers. Sebbene questo parametro sia sempre esistito, è stato uno dei diversi parametri per i web cmdlet che hanno portato a eccezioni o errori.
  • Get-Module ha un nuovo parametro, FullQualifiedName, del tipo ModuleSpecification[]. Il parametro FullyQualifiedName di Get-Module ora ti permette di specificare un modulo usando il nome, la versione e, opzionalmente, la sua GUID.
  • L'impostazione predefinita della policy di esecuzione su Windows Server 2012 R2 è RemoteSigned. Su Windows 8.1, non c'è alcuna modifica nell'impostazione predefinita.
  • A partire da Windows PowerShell 4.0, è supportata l'invocazione di metodi usando nomi dinamici di metodi. Puoi usare una variabile per memorizzare un nome di metodo e poi invocarlo dinamicamente chiamando la variabile.
  • I lavori di workflow asincroni non vengono più eliminati quando il periodo di time-out specificato dal parametro comune del workflow PSElapsedTimeoutSec è scaduto.
  • Un nuovo parametro, RepeatIndefinitely, è stato aggiunto ai cmdlet New-JobTrigger e Set-JobTrigger . Questo elimina la necessità di specificare un valore TimeSpan.MaxValue per il parametro RepetitionDuration per eseguire ripetutamente un lavoro programmato per un periodo indefinito.
  • Un parametro Passthru è stato aggiunto ai cmdlet Enable-JobTrigger e Disable-JobTrigger . Il parametro Passthru mostra tutti gli oggetti creati o modificati dal tuo comando.
  • I nomi dei parametri per specificare un gruppo di lavoro nei cmdlet Add-Computer e Remove-Computer sono ora coerenti. Entrambi i cmdlet ora utilizzano il parametro WorkgroupName.
  • È stato aggiunto un nuovo parametro comune, PipelineVariable. PipelineVariable ti permette di salvare i risultati di un comando tramite piping (o parte di un comando pipelato) come variabile che può essere passata attraverso il resto della pipeline.
  • Ora è supportato il filtraggio delle collezioni tramite una sintassi di metodo. Questo significa che ora puoi filtrare una collezione di oggetti usando una sintassi semplificata, simile a quella per Where() o Where-Object, formattata come chiamata metodo. Di seguito è un esempio: (Get-Process).where({$_. Nome -match 'powershell'})
  • Il cmdlet Get-Process ha un nuovo parametro switch, IncludeUserName.
  • È stato aggiunto un nuovo cmdlet, Get-FileHash, che restituisce un hash di file in uno dei diversi formati per un file specificato.
  • In Windows PowerShell 4.0, se un modulo utilizza la chiave DefaultCommandPrefix nel suo manifesto, o se l'utente importa un modulo con il parametro Prefisso , la proprietà ExportedCommands del modulo mostra i comandi presenti nel modulo con il prefisso. Quando esegui i comandi usando la sintassi modulo-qualificata, NomeModulo\NomeComando, i nomi dei comandi devono includere il prefisso.
  • Il valore di $PSVersionTable.PSVersion è stato aggiornato alla versione 4.0.
  • Dove() il comportamento dell'operatore è cambiato. Collection.Where('property -match name') non è più supportato accettare un'espressione di stringa in questo "Property -CompareOperator Value" formato. Tuttavia, l'operatore Where() accetta espressioni stringa nel formato di blocco di script; Questo è ancora supportato.

Nuove funzionalità nell'Ambiente Integrato di Scripting di Windows PowerShell (ISE)

  • Windows PowerShell ISE supporta sia il debug del flusso di lavoro Windows PowerShell sia il debug remoto di script.
  • Per i provider e le configurazioni del servizio Windows PowerShell Desired State Configuration è stato aggiunto il supporto di IntelliSense.

Nuove funzionalità nel flusso di lavoro PowerShell di Windows

  • È stato aggiunto il supporto per un nuovo parametro comune PipelineVariable nel contesto delle pipeline iterative, come quelle utilizzate da System Center Orchestrator; cioè, pipeline che eseguono comandi semplicemente da sinistra a destra, invece che intercalate tramite streaming.
  • Il binding dei parametri è stato significativamente migliorato per funzionare al di fuori degli scenari di completamento delle tabulazioni, come con comandi che non esistono nello spazio di esecuzione attuale.
  • Il supporto per attività container personalizzate è stato aggiunto al flusso di lavoro PowerShell di Windows. Se un parametro di attività è di tipo Activity, Activity[] (o è una raccolta generica di attività) e l'utente ha fornito un blocco di script come argomento, allora il flusso di lavoro di Windows PowerShell converte il blocco di script in XAML, come avviene nella normale compilazione script-to-workflow di Windows PowerShell.
  • Dopo un crash, il flusso di lavoro PowerShell di Windows si riconnette automaticamente ai nodi gestiti.
  • Ora puoi limitare le istruzioni di attività Foreach -Parallel usando la proprietà ThrottleLimit .
  • Il parametro comune ErrorAction ha un nuovo valore valido, Suspend, che è esclusivamente per i flussi di lavoro.
  • Un endpoint di workflow ora si chiude automaticamente se non ci sono sessioni attive, nessun lavoro in corso e nessun job in sospeso. Questa funzione conserva le risorse sul computer che funge da server di workflow, quando sono state soddisfatte le condizioni di chiusura automatica.

Nuove funzionalità nei servizi web di Windows PowerShell

  • Quando si verifica un errore in Windows PowerShell Web Services (PSWS, chiamato anche Management OData IIS Extension), mentre un cmdlet è in esecuzione, vengono restituiti messaggi di errore più dettagliati al chiamante. Inoltre, i codici di errore seguono le linee guida per i codici di errore dell'API REST di Windows.
  • Un endpoint può ora definire la versione dell'API, oltre a imporre l'uso di una specifica versione dell'API. Ogni volta che si verificano disallineamenti di versione tra client e server, gli errori vengono mostrati sia al client che al server.
  • La gestione dello schema di dispatch è stata semplificata generando automaticamente i valori per eventuali campi mancanti nello schema. La generazione avviene come punto di partenza utile, anche se lo schema di dispatch non esiste.
  • La gestione dei tipi in PSWS è stata migliorata per supportare tipi che utilizzano un costruttore diverso da quello predefinito, comportandosi in modo simile a PSTypeConverter in Windows PowerShell. Questo ti permette di usare tipi complessi con PSWS.
  • PSWS ora consente di espandere un'istanza associata durante l'esecuzione di una query. Per contenuti binari più grandi (come immagini, audio o video), il costo di trasferimento è significativo ed è meglio trasferire dati binari senza codifica. PSWS utilizza flussi di risorse nominate per trasferire senza codifica. Il flusso di risorse denominato è una proprietà di un'entità del tipo Edm.Stream . Ogni flusso di risorse denominato ha un URI separato per le operazioni GET o UPDATE.
  • Le azioni OData ora forniscono un meccanismo per invocare metodi non CRUD (Crea, Leggi, Aggiorna e Elimina) su una risorsa. Puoi evocare un'azione inviando una richiesta HTTP POST all'URI definito per l'azione. I parametri per l'azione sono definiti nel corpo della richiesta POST.
  • Per essere coerenti con le linee guida di Windows Azure, tutti gli URL dovrebbero essere semplificati. Una modifica inclusa in Key As Segment permette di rappresentare singoli tasti come segmenti. Si noti che i riferimenti che utilizzano più valori chiave richiedono valori separati da virgole in notazione parentetica, come prima.
  • Prima di questa release di PSWS, l'unico modo per eseguire operazioni di Creazione, Aggiornamento o Cancella era invocare Post, Put o Delete su una risorsa di alto livello. Novità in questa versione di PSWS, le operazioni Contenuto di Risorse permettono agli utenti di ottenere gli stessi risultati raggiungendo la stessa risorsa in modo meno diretto, avvicinandosi come se queste risorse fossero contenute.

Nuove funzionalità in Windows PowerShell Web Access

  • Puoi disconnetterti e riconnetterti alle sessioni esistenti nella console web PowerShell Web Access di Windows. Un pulsante Salva nella console web ti permette di disconnetterti da una sessione senza eliminarla e riconnetterti alla sessione un'altra volta.
  • I parametri predefiniti possono essere visualizzati nella pagina di accesso. Per visualizzare i parametri predefiniti, configura i valori di tutte le impostazioni visualizzate nell'area Impostazioni di connessione opzionali della pagina di accesso in un file chiamatoweb.config. Puoi usare il fileweb.config per configurare tutte le impostazioni di connessione opzionali tranne un secondo o un insieme alternativo di credenziali.
  • In Windows Server 2012 R2, puoi gestire da remoto le regole di autorizzazione per Windows PowerShell Web Access. I cmdlet Add-PswaAuthorizationRule e Test-PswaAuthorizationRule ora includono un parametro Credential che consente agli amministratori di gestire le regole di autorizzazione da un computer remoto o in una sessione di accesso Web Windows PowerShell.
  • Ora puoi avere più sessioni di accesso web Windows PowerShell in una singola sessione browser utilizzando una nuova scheda per ogni sessione. Non è più necessario aprire una nuova sessione del browser per connettersi a una nuova sessione nella console web PowerShell di Windows.

Correzioni di bug notevoli in Windows PowerShell 4.0

  • Get-Counter ora può restituire segnalini che contengono un carattere apostrofo nelle edizioni francesi di Windows.
  • Ora puoi visualizzare il metodo GetType sugli oggetti deerializzati.
  • #Requires istruzioni ora permettono agli utenti di richiedere diritti di accesso Amministratore, se necessario.
  • Il cmdlet Import-Csv ora ignora le righe vuote.
  • Un problema in cui Windows PowerShell ISE usa troppa memoria quando si esegue un comando Invoke-WebRequest è stato risolto.
  • Get-Module ora mostra le versioni dei moduli in una colonna Version .
  • Remove-Item -Recurse ora rimuove gli elementi dalle sottocartelle come previsto.
  • È stata aggiunta una proprietà UserName agli oggetti di output Get-Process .
  • Il cmdlet Invoke-RestMethod restituisce ora tutti i risultati disponibili.
  • Add-Member ora ha effetto sugli hashtable, anche se i tavoli non sono ancora stati accessibili.
  • Select-Object -Espandere non fallisce più o genera un'eccezione se il valore della proprietà è nullo o vuoto.
  • Get-Process può ora essere utilizzato in una pipeline con altri comandi che ottengono la proprietà ComputerName dagli oggetti.
  • ConvertTo-Json e ConvertFrom-Json ora possono accettare termini tra virgolette doppie, e i suoi messaggi di errore sono ora localizzabili.
  • Get-Job ora restituisce tutti i lavori programmati completati, anche nelle nuove sessioni.
  • I problemi nel montaggio e nello smontaggio dei VHD tramite il provider FileSystem in Windows PowerShell 4.0 sono stati risolti. Windows PowerShell ora è in grado di rilevare nuovi dischi quando sono montati nella stessa sessione.
  • Non è più necessario caricare esplicitamente moduli ScheduledJob o Workflow per lavorare con i loro tipi di lavoro.
  • Sono stati apportati miglioramenti nelle prestazioni nel processo di importazione dei flussi di lavoro che definiscono i flussi di lavoro annidati; Questo processo ora è più veloce.

Nuove funzionalità in Windows PowerShell 3.0

Windows PowerShell 3.0 include le seguenti nuove funzionalità.

Flusso di lavoro PowerShell di Windows

Il flusso di lavoro di Windows PowerShell porta la potenza di Windows Workflow Foundation in Windows PowerShell. Puoi scrivere flussi di lavoro in XAML o nel linguaggio PowerShell di Windows e eseguirli proprio come faresti con un cmdlet. Il Get-Command cmdlet riceve comandi di workflow e il Get-Help cmdlet riceve aiuto per i workflow.

I flussi di lavoro sono sequenze di attività di gestione multicomputer che sono di lunga durata, ripetibili, frequenti, parallelizzabili, interrompibili, sospendibili e riavviabili. I flussi di lavoro possono essere ripresi a causa di un'interruzione intenzionale o accidentale, come un'interruzione di rete, un riavvio di Windows o un'interruzione di corrente.

I flussi di lavoro sono anche portatili; possono essere esportati come o importati da file XAML. Puoi scrivere configurazioni di sessione personalizzate che permettano di eseguire flussi di lavoro o attività in un flusso di lavoro da utenti delegati o subordinati.

Di seguito sono riportati i vantaggi del flusso di lavoro PowerShell di Windows

  • Automazione di compiti sequenziati e di lunga durata.
  • Monitoraggio remoto di compiti di lunga durata. Lo stato e l'andamento delle attività sono visibili in qualsiasi momento.
  • Gestione multicomputer. Esegui simultaneamente le attività come flussi di lavoro su centinaia di nodi gestiti. Il flusso di lavoro di Windows PowerShell include una libreria integrata di parametri di gestione comuni, come PSComputerName, che consentono scenari di gestione multi-computer.
  • Esecuzione di un singolo compito di processi complessi. Puoi combinare script correlati che implementano un intero scenario end-to-end in un unico flusso di lavoro.
  • Persistenza: un flusso di lavoro viene salvato (o check-point) in punti specifici definiti dal suo autore, così puoi riprendere il flusso di lavoro dall'ultimo task persistente (o checkpoint), invece di riavviare il workflow dall'inizio.
  • Robustezza. Recupero automatico dei guasti. I flussi di lavoro resistono ai riavvii pianificati e non pianificati. Puoi sospendere l'esecuzione del flusso di lavoro e poi riprendere il flusso dal punto di persistenza precedente. Gli autori del workflow possono designare attività specifiche da rieseguire in caso di guasto su uno o più nodi gestiti.
  • Capacità di disconnettersi, riconnettersi e eseguire in sessioni disconnesse. Gli utenti possono connettersi e disconnettersi dal server del workflow, ma il workflow continua a funzionare. Puoi disconnetterti dal computer client o riavviarlo e monitorare l'esecuzione del flusso di lavoro da un altro computer senza interrompere il flusso di lavoro.
  • Pianificazione. I compiti di workflow possono essere programmati come qualsiasi cmdlet o script di Windows PowerShell.
  • Flusso di lavoro e limitazione delle connessioni. L'esecuzione del flusso di lavoro e le connessioni ai nodi possono essere limitate, consentendo così scalabilità e scenari di alta disponibilità.

Accesso Web di Windows PowerShell

Windows PowerShell Web Access è una funzione di Windows Server 2012 che permette agli utenti di eseguire comandi e script PowerShell di Windows in una console web. I dispositivi che utilizzano la console web non richiedono Windows PowerShell, software di gestione remota o installazioni di plug-in per browser. Tutto ciò che serve è un gateway Windows PowerShell Web Access configurato correttamente e un browser client che supporti JavaScript e accetti cookie.

Per ulteriori informazioni, vedi Deploy Windows PowerShell Web Access.

Nuove funzionalità ISE di Windows PowerShell

Per Windows PowerShell 3.0, Windows PowerShell Integrated Scripting Environment (ISE) offre molte nuove funzionalità, tra cui IntelliSense, Show-Command finestra, un pannello console unificato, frammenti, corrispondenza tra bracci, sezioni espandi-collasso, salvataggio automatico, lista degli elementi recenti, copia arricchita, copia a blocchi e pieno supporto per la scrittura di flussi di lavoro di script Windows PowerShell. Per maggiori informazioni, vedi about_Windows_PowerShell_ISE.

Supporto per Microsoft .NET Framework 4

Windows PowerShell è costruito secondo il Common Language Runtime 4.0. Gli autori di cmdlet, script e workflow possono utilizzare le nuove classi Microsoft .NET Framework 4 in Windows PowerShell, con funzionalità che includono Compatibilità e Distribuzione delle Applicazioni, Framework di Estessibilità Gestita, Calcolo Parallelo, Reti, Windows Communication Foundation e Windows Workflow Foundation.

Supporto per l'ambiente di preinstallazione di Windows

Windows PowerShell 3.0 è un componente opzionale di Windows Preinstallation Environment (Windows PE) 4.0 per Windows 8. Windows PE è un sistema operativo minimale che avvia un computer senza sistema operativo e lo prepara per l'installazione di Windows. Windows PE può essere utilizzato per partizionare e formattare hard disk, copiare immagini disco su un computer e avviare la configurazione di Windows da una condivisione di rete. Windows PowerShell 3.0 può essere utilizzato su Windows PE per gestire scenari di deployment, diagnostica e recupero.

Sessioni Disconnesse

A partire da Windows PowerShell 3.0, le sessioni gestite dall'utente ("PSSessions") che si creano usando il cmdlet New-PSSession vengono salvate sul computer remoto. Non dipendono più dalla sessione in cui sono stati creati.

Ora puoi disconnetterti da una sessione senza interrompere i comandi che sono in esecuzione nella sessione. Puoi chiudere la sessione e spegnere il computer. Successivamente, puoi riconnetterti alla sessione da un'altra sessione sullo stesso computer o su un altro computer.

Il parametro ComputerName del Get-PSSession cmdlet ora riceve tutte le sessioni dell'utente che si collegano al computer, anche se sono state avviate in una sessione diversa su un computer diverso. Puoi connetterti alle sessioni, ottenere i risultati dei comandi, avviarne nuovi e poi disconnetterti dalla sessione.

Sono stati aggiunti nuovi cmdlet per supportare la funzione Disconnected Sessions, inclusi Disconnect-PSSession, Connect-PSSession, e Receive-PSSession, e nuovi parametri sono stati aggiunti ai cmdlet che gestiscono i PSSession, come il parametro InDisconnectedSession del Invoke-Command cmdlet.

La funzione Disconnected Sessions è supportata solo quando i computer sia all'estremità di origine ("client") che a quella di terminazione ("server") della connessione stanno eseguendo Windows PowerShell 3.0.

Connettività robusta delle sessioni

Windows PowerShell 3.0 rileva perdite inaspettate di connettività tra client e server e tenta di ristabilire la connettività e riprendere l'esecuzione automaticamente. Se la connessione client-server non può essere ristabilita nel tempo stabilito, l'utente viene notificato e la sessione viene interrotta. Durante il tentativo di riconnettersi, Windows PowerShell fornisce un feedback continuo all'utente.

Se la sessione disconnessa è stata avviata usando InvokeCommand, Windows PowerShell crea un lavoro per la sessione disconnessa per facilitare la riconnessione e la ripresa dell'esecuzione.

Queste funzionalità offrono un'esperienza di remot più affidabile e recuperabile e permettono agli utenti di svolgere compiti di lunga durata che richiedono sessioni robuste, come i flussi di lavoro.

Sistema di Aiuto Aggiornabile

Ora puoi scaricare file di aiuto aggiornati per i cmdlet nei tuoi moduli. Il Update-Help cmdlet identifica i file di aiuto più recenti, li scarica da Internet, li discompila, li valida e li installa nella directory specifica del modulo per la lingua corretta.

Per usare i file di aiuto aggiornati, basta digitare Get-Help. Non è necessario riavviare Windows o PowerShell di Windows. Per aggiornare l'aiuto per i moduli nella cartella $pshome, avvia Windows PowerShell con l'opzione "Esegui come amministratore".

Per supportare utenti che non hanno accesso a Internet e quelli dietro firewall, il nuovo Save-Help cmdlet scarica i file di aiuto in una directory del file system, come una condivisione file. Gli utenti possono quindi utilizzare il Update-Help cmdlet per ottenere aggiornamenti dei file di aiuto dalla condivisione file.

Puoi usare il Update-Help cmdlet per aggiornare file di aiuto per tutti o per moduli particolari in tutte le culture UI supportate. Puoi persino inserire un Update-Help comando nel tuo profilo PowerShell di Windows. Di default, Windows PowerShell scarica i file di aiuto di un modulo non più di una volta al giorno.

I moduli di Windows 8 e Windows Server 2012 non includono file di aiuto. Per scaricare gli ultimi file di aiuto, digita Update-Help. Per maggiori informazioni, digita Get-Help (senza parametri) o vedi about_Updatable_Help.

Quando i file di aiuto per un cmdlet non sono installati sul computer, il Get-Help cmdlet ora mostra l'aiuto generato automaticamente. L'aiuto generato automaticamente include la sintassi dei comandi e le istruzioni per usare il Update-Help cmdlet per scaricare i file di aiuto.

Qualsiasi autore di modulo può supportare Updatable Help per il proprio modulo. Puoi includere file di aiuto nel modulo e usare Updatable Help per aggiornarli oppure omettere i file di help e usare Updatable Help per installarli. Per maggiori informazioni su come supportare Updatable Help, consulta Supporting Updatable Help.

Aiuto Online Avanzato

L'aiuto online di Windows PowerShell è una risorsa preziosa per tutti gli utenti, ma è particolarmente importante per chi non installa o non può installare file di aiuto aggiornati.

Per ottenere assistenza online per qualsiasi cmdlet PowerShell di Windows, digita:

Get-Help <cmdlet-name> -Online

Windows PowerShell apre la versione online dell'argomento di aiuto nel tuo browser Internet predefinito.

La funzione Get-Help -Online in Windows PowerShell 3.0 è ora ancora più potente perché funziona anche quando i file di aiuto per il cmdlet non sono installati sul computer. La funzioneGet-Help -Online ottiene l'URI per l'argomento di assistenza online dalla proprietà HelpUri dei cmdlet e delle funzioni avanzate.

PS C:\>(Get-Command Get-ScheduledJob).HelpUri
https://go.microsoft.com/fwlink/?LinkID=223923

A partire da Windows PowerShell 3.0, gli autori dei cmdlet C# possono popolare la proprietà HelpUri creando un attributo HelpUri sulla classe cmdlet. Gli autori di funzioni avanzate possono definire una proprietà HelpUri sull'attributo CmdletBinding . Il valore della proprietà HelpUri deve iniziare con "http" o "https".

Puoi anche includere un valore HelpUri nel primo link correlato di un file di aiuto cmdlet basato su XML o nel file . Direttiva di link per l'assistenza basata sui commenti in una funzione.

Per maggiori informazioni su come supportare l'aiuto online, vedi Supporto online.

Integrazione CIM

Windows PowerShell 3.0 include il supporto per il Common Information Model (CIM), che fornisce definizioni comuni di informazioni di gestione per sistemi, reti, applicazioni e servizi, permettendo loro lo scambio di informazioni di gestione tra sistemi eterogenei. Supporto per CIM in Windows PowerShell 3.0, inclusa la possibilità di creare cmdlet per Windows PowerShell basati su classi CIM nuove o esistenti, comandi basati su file XML di definizione di cmdlet, supporto per CIM .NET Framework. API, cmdlet di gestione CIM e provider WMI 2.0.

File di configurazione della sessione

A partire da Windows PowerShell 3.0, puoi progettare una configurazione di sessione personalizzata usando un file. Il nuovo file di configurazione della sessione permette di determinare l'ambiente delle sessioni che utilizzano la configurazione della sessione, inclusi quali moduli, script e file di formato vengono caricati nelle sessioni, quali cmdlet ed elementi linguistici gli utenti possono utilizzare, quali moduli e script possono eseguire e quali variabili possono vedere.

Puoi progettare una sessione in cui gli utenti possono eseguire i cmdlet solo da un modulo specifico, oppure una sessione in cui gli utenti abbiano il linguaggio completo, accesso a tutti i moduli e script che svolgono compiti avanzati.

Nelle versioni precedenti di Windows PowerShell, il controllo a questo livello era disponibile solo per chi sapeva scrivere un programma C# o uno script di avvio complesso. Ora, qualsiasi membro del gruppo Administrators sul computer può personalizzare la configurazione di una sessione usando un file di configurazione.

Per creare un file di configurazione della sessione, usare il cmdlet New-PSSessionConfigurationFile. Per applicare il file di configurazione della sessione a una configurazione di sessione, usa i Register-PSSessionConfiguration cmdlet o 'Set-PSSessionConfiguration.

Per maggiori informazioni, vedi about_Session_Configuration_Files e New-PSSessionConfigurationFile.

Job programmati e integrazione del pianificatore delle attività

Ora puoi programmare i job in background di Windows PowerShell e gestirli in Windows PowerShell e nel Task Scheduler.

I job programmati di Windows PowerShell sono un utile ibrido tra i job in background di Windows PowerShell e i task del Task Scheduler.

Come i job in background di Windows PowerShell, i job programmati vengono eseguiti in modo asincrono in background. Le istanze di job programmati che sono state completate possono essere gestite usando i compiti di lavoro, come Start-Job e Get-Job.

Come per le attività del Task Scheduler, puoi eseguire i job programmati con un programma una tantum o ricorrente, oppure in risposta a un'azione o a un evento. Puoi visualizzare e gestire i job programmati in Task Scheduler, abilitarli e disabilitarli secondo necessità, eseguirli o usarli come template, e impostare condizioni in base all'inizio dei job.

Inoltre, i lavori programmati includono un set personalizzato di cmdlet per la loro gestione. I cmdlet ti permettono di creare, modificare, gestire, disabilitare e riabilitare i job programmati, creare trigger per i job programmati e impostare opzioni per job programmati.

Per maggiori informazioni sui lavori programmati, vedi about_Scheduled_Jobs.

Miglioramenti del linguaggio PowerShell di Windows

Windows PowerShell 3.0 include molte funzionalità progettate per rendere il suo linguaggio più semplice, più facile da usare e per evitare errori comuni. I miglioramenti includono l'enumerazione delle proprietà, le proprietà di conteggio e lunghezza sugli oggetti scalari, nuovi operatori di reindirizzamento, il modificatore di scopo $Using, la variabile automatica PSItem, la formattazione degli script flessibile, attributi delle variabili, argomenti di attributo semplificati, nomi di comandi numerici, l'operatore Stop-Parsing, miglioramento dello splatting degli array, nuovi operatori di bit, dizionari ordinati, cast PSCustomObject e un aiuto basato sui commenti migliorato.

Nuovi Comandanti Core

Sono stati aggiunti nuovi cmdlet all'installazione di Windows PowerShell, inclusi i cmdlet per gestire i lavori programmati, le sessioni disconnesse, l'integrazione con CIM e l'Updatable Help System.

  • CimCmdlets
    • Get-CimAssociatedInstance
    • Get-CimClass
    • Get-CimInstance
    • Get-CimSession
    • Invoke-CimMethod
    • New-CimInstance
    • New-CimSession
    • New-CimSessionOption
    • Register-CimIndicationEvent
    • Remove-CimInstance
    • Remove-CimSession
    • Set-CimInstance
  • Microsoft.PowerShell.Core
    • Connect-PSSession
    • Disconnect-PSSession
    • New-PSSessionConfigurationFile
    • New-PSTransportOption
    • Receive-PSSession
    • Resume-Job
    • Save-Help
    • Suspend-Job
    • Test-PSSessionConfigurationFile
    • Update-Help
  • Microsoft.PowerShell.Diagnostics
    • New-WinEvent
  • Microsoft.PowerShell.Management
    • Get-ControlPanelItem
    • Rename-Computer
    • Show-ControlPanelItem
  • Microsoft.PowerShell.Utility
    • ConvertFrom-Json
    • ConvertTo-Json
    • Get-TypeData
    • Invoke-RestMethod
    • Invoke-WebRequest
    • Remove-TypeData
    • Show-Command
    • Unblock-File
  • PSScheduledJob
    • Add-JobTrigger
    • Disable-JobTrigger
    • Disable-ScheduledJob
    • Enable-JobTrigger
    • Enable-ScheduledJob
    • Get-JobTrigger
    • Get-ScheduledJob
    • Get-ScheduledJobOption
    • New-JobTrigger
    • New-ScheduledJobOption
    • Register-ScheduledJob
    • Set-JobTrigger
    • Set-ScheduledJob
    • Set-ScheduledJobOption
    • Unregister-ScheduledJob
  • PSWorkflow
    • New-PSWorkflowExecutionOption
    • New-PSWorkflowSession
  • PSWorkflowUtility
    • Invoke-AsWorkflow
  • ISE
    • Get-IseSnippet
    • Import-IseSnippet
    • New-IseSnippet

Miglioramenti ai Comandanti e Fornitori Core esistenti

Windows PowerShell 3.0 include nuove funzionalità per i cmdlet esistenti, inclusa la sintassi semplificata e nuovi parametri per i seguenti cmdlet: cmdlet computer, cmdlet CSV, Get-ChildItem, Get-Command, Get-Content, Get-History, Measure-Object, cmdlet di sicurezza, Select-object, Select-Object, Select-String, Split-Path, Start-Process, Tee-object, Test-Connection, Add-Member e WMI cmdlet.

Anche i provider PowerShell di Windows sono stati notevolmente migliorati, incluso il supporto dei fornitori di certificati per la gestione dei certificati Secure Socket Layer (SSL) per l'hosting web, il supporto per credenziali, unità di rete persistenti e flussi di dati alternativi nei file system.

Importazione e scoperta remota di moduli

Windows PowerShell 3.0 estende le capacità di scoperta, importazione e remot implicito dei moduli su computer remoti. I moduli cmdlet ricevono i moduli su computer remoti e li importano sul computer remoto o locale utilizzando il remot Windows PowerShell. Il nuovo supporto per le sessioni CIM permette di usare CIM e WMI per gestire computer non Windows importando comandi sul computer locale che vengono eseguiti implicitamente sul computer remoto.

Per maggiori informazioni, consulta gli argomenti di aiuto per i Get-Module cmdlet e Import-Module e .

Completamento migliorato delle schede

Il completamento delle tabulazioni nella console PowerShell di Windows ora completa i nomi dei cmdlet, parametri, valori dei parametri, enumerazioni, tipi di .NET Frameworks, oggetti COM, directory nascoste e altro ancora. La funzione di completamento delle tabulature è stata completamente riscritta basandosi su un nuovo parser e un albero sintattico astratto per supportare più scenari, inclusi alberi di analisi in memoria e completamento delle tabulazioni a metà linea.

Caricamento automatico del modulo

Il Get-Command cmdlet ora riceve tutti i cmdlet e le funzioni di tutti i moduli installati sul computer, anche se il modulo non viene importato nella sessione corrente.

Quando ottieni il cmdlet di cui hai bisogno, puoi usarlo immediatamente senza dover importare alcun modulo. I moduli PowerShell di Windows ora vengono importati automaticamente quando usi qualsiasi cmdlet nel modulo. Non è più necessario cercare il modulo e importarlo per usarne i cmdlet.

L'importazione automatica dei moduli viene attivata usando il cmdlet in un comando, eseguendo Get-Command per un cmdlet senza jolly, o eseguendo Get-Help per un cmdlet senza jolly.

Puoi abilitare, disabilitare e configurare l'importazione automatica dei moduli usando la variabile di preferenze $PSModuleAutoLoadingPreference .

Per maggiori informazioni, consulta about_Modules, about_Preference_Variables e gli argomenti di aiuto per i Get-Command cmdlet e Import-Module e i moduli di aiuto.

Miglioramenti dell'esperienza del modulo

Windows PowerShell 3.0 offre un supporto avanzato alle funzionalità dei moduli, incluse le seguenti nuove funzionalità.

  1. Logging dei moduli per i singoli moduli (LogPipelineExecutionDetails) e la nuova impostazione "Attiva il registro dei moduli"
  2. Oggetti moduli estesi che espongono i valori del manifesto del modulo
  3. Nuova proprietà ExportedCommands dei moduli, inclusi i moduli annidati, che combina comandi di tutti i tipi
  4. Scoperta migliorata dei moduli disponibili (non importati), incluso il permettere i parametri Path e ListAvailable nello stesso comando
  5. La nuova chiave DefaultCommandPrefix nei manifesti del modulo evita conflitti di nomi senza cambiare il codice del modulo.
  6. Requisiti di modulo migliorati, inclusi moduli requisiti completamente qualificati con versione e GUID e importazione automatica dei moduli richiesti
  7. Funzionamento più silenzioso e snello del New-ModuleManifest comandante.
  8. Nuovo parametro del modulo per #Requires
  9. Cmdlet migliorato Import-Module con parametri sia MinimumVersion che RequiredVersion .

Scoperta semplificata dei comandi

Non è più necessario importare tutti i moduli per scoprire i comandi disponibili nella sessione. In Windows PowerShell 3.0, il Get-Command cmdlet riceve tutti i comandi da tutti i moduli installati. E, se usi un comando, il modulo che esporta il comando viene importato automaticamente nella tua sessione.

Il nuovo Show-Command cmdlet è progettato appositamente per principianti. Puoi cercare comandi in una finestra. Puoi visualizzare tutti i comandi o filtrare per modulo, importare un modulo cliccando su un pulsante, usare caselle di testo e liste a tendina per costruire un comando valido, e poi copiare o eseguire il comando senza mai uscire dalla finestra.

Migliore supporto per la registrazione, la diagnostica e le politiche di gruppo

Windows PowerShell 3.0 migliora il supporto per la logging e il tracciamento di comandi e moduli con il supporto per i log Event Tracing in Windows (ETW), una proprietà modificabile LogPipelineExecutionDetails dei moduli e l'impostazione "Attiva il logging dei moduli". Ora puoi ottenere i valori dei parametri dai dettagli dei log visualizzando le proprietà dei log.

Miglioramenti nella formattazione e nell'output

Nuovi miglioramenti nella formattazione e nell'output migliorano l'efficienza di tutti gli utenti di Windows PowerShell. I miglioramenti includono la reindirizzazione dell'output per tutti i flusso, un cmdlet Update-Type migliorato che aggiunge tipi dinamicamente senza file Format.ps1xml, word wrap nell'output, proprietà di formattazione predefinite degli oggetti personalizzati, il tipo PSCustomObject , formattazione migliorata per gli oggetti WMI e oggetti eterogenei, e il supporto per la scoperta di sovraccarichi di metodi.

Esperienza migliorata per l'host della console

Il programma host della console Windows PowerShell ha nuove funzionalità in Windows PowerShell 3.0, inclusi appartamenti a singolo thread di default. La nuova opzione "Esegui con PowerShell" in Esplora file ti permette di eseguire script in una sessione senza restrizioni semplicemente cliccando con il tasto destro. La nuova logica di avvio dell'host console avvia Windows PowerShell più velocemente e nuovi font permettono di personalizzare la familiare esperienza delle finestre della console.

Nuovo Cmdlet e API di Hosting

La nuova Cmdlet API e l'API di Hosting includono API pubbliche ad alberi di sintassi avanzata (AST) e API per la paginazione della pipeline, pipeline annidate, completamento delle schede dei pool di runspace, Windows RT, l'attributo Obsolete cmdlet e le proprietà Verbo e Nome dell'oggetto FunctionInfo.

Miglioramenti delle prestazioni

Miglioramenti significativi nelle prestazioni di Windows PowerShell derivano dal nuovo parser del linguaggio, costruito su Dynamic Runtime Language (DLR) in .NET Framework 4., insieme alla compilazione di script in tempo reale, miglioramenti nell'affidabilità del motore e modifiche all'algoritmo Get-ChildItem che ne migliorano le prestazioni, specialmente durante la ricerca di condivisioni di rete.

RunAs e supporto per host condivisi

Windows PowerShell 3.0 include il supporto per le funzionalità RunAs e Shared Host.

La funzione RunAs , progettata per Windows PowerShell Workflow, consente agli utenti di una configurazione di sessione creare sessioni che si seguono con il permesso di un account utente condiviso. Questo permette agli utenti meno privilegiati di eseguire comandi e script particolari con permessi amministratori, e riduce la necessità di aggiungere utenti meno anziani al gruppo Administrators.

La funzione SharedHost permette a più utenti su più computer di connettersi contemporaneamente a una sessione di workflow e monitorare l'evoluzione di un workflow. Gli utenti possono avviare un flusso di lavoro su un computer e poi connettersi alla sessione di flusso di lavoro su un altro computer senza disconnettere la sessione dal computer originale. Gli utenti devono avere gli stessi permessi e utilizzare la stessa configurazione di sessione. Per maggiori informazioni, consulta "Esecuzione di un flusso di lavoro PowerShell di Windows" in Iniziare con il flusso di lavoro PowerShell di Windows.

Miglioramenti speciali nella gestione dei personaggi

Per migliorare la capacità di Windows PowerShell 3.0 di interpretare e gestire correttamente i caratteri speciali, il parametro LiteralPath , che gestisce i caratteri speciali nei percorsi, è valido su quasi tutti i cmdlet che hanno un parametro Path , inclusi i nuovi Update-Help e Save-Help i cmdlet. Il parser include anche una logica speciale per migliorare la gestione del carattere backtick (`) e delle parentesi quadrate nei nomi dei file e nei percorsi.

Vedere anche