La prossima versione principale di PowerShell è disponibile e apporta alcune modifiche significative. La settima versione include funzionalità come l'esecuzione parallela, l'importazione di moduli per l'esecuzione remota, nuovi operatori e altro. In questo post, esaminiamo tutte le nuove funzionalità su PowerShell 7.0.
Modifiche alla directory di PowerShell
Quando installi PowerShell 7, verrà installato in una nuova directory e verrà eseguito insieme a PowerShell 5.1. Se stai eseguendo l'aggiornamento da PowerShell Core 6.x, quindi sovrascriverà la directory di PowerShell 6 e rimuoverà tutti i file non necessari. Ecco l'elenco delle directory che dovresti conoscere:
PowerShell 7 è installato per-
%programmi%\PowerShell\7
Il %programmi%\PowerShell\7 la cartella viene aggiunta a $env:PATH
I pacchetti di installazione di PowerShell 7 aggiornano le versioni precedenti di PowerShell Core 6.X:
PowerShell Core 6.x su Windows:
%programmi%\PowerShell\6
è sostituito da
%programmi%\PowerShell\7
Linux:
/opt/microsoft/powershell/6
è sostituito da
/opt/microsoft/powershell/7
Mac OS:
/usr/local/microsoft/powershell/6
è sostituito da
/usr/local/microsoft/powershell/7
Nuove funzionalità in PowerShell 7
Ho provato a spiegare brevemente ciascuna di queste funzionalità e come aiuterà gli utenti di PowerShell. Tuttavia, assicurati di leggere più in dettaglio nella pagina ufficiale di Microsoft.
- Parallelizzazione della pipeline
- Nuovi operatori
- ConciseView e Get-Error cmdlet
- Notifiche automatiche di nuova versione
- Richiama le risorse DSC direttamente da PowerShell 7
- Livello di compatibilità
Assicurati sempre di controllare la variabile d'ambiente prima di testare i codici effettivi.
1] Parallelizzazione della pipeline
Ora puoi eseguire o gestire oggetti in parallelo invece del metodo sequenza quando usi ForEach-Object -Parallel. Nel nostro post sulla disinstallazione di WIM, questo metodo può smontare tre immagini WIM in poco meno di 10 secondi invece di quasi 25 secondi durante l'esecuzione in sequenza. Ecco un codice di esempio per questo:
Get-WindowsImage -Montato | foreach -Parallel Misura-Comando Dismount-WindowsImage -Discard -Path $_.Sentiero
2] Nuovi operatori
Ci sono tre nuovi operatori-Operatore ternario: a ? b : c, Operatori della catena di gasdotti: || e operatori condizionali && e Null: ?? e ??=. Questi si comportano come si comporta come un'istruzione if-else semplificata. Semplificano la scrittura del codice invece di utilizzare sempre il ciclo If-else.
3] Vista concisa e il cmdlet Get-Error
ConciseView è una visualizzazione selezionabile dall'utente che è abilitata come visualizzazione predefinita di PowerShell 7. Se l'errore non proviene dallo script, riceverai un errore di riga singola. Tuttavia, se proviene dallo script o c'è un errore di analisi, riceverai un messaggio di errore multilinea e un puntatore che mostra su quale riga si è verificato l'errore.
Quindi hai un nuovo cmdlet Get-Error che può aiutarti a ottenere una visione dettagliata dell'errore quando lo desideri. Può visualizzare tutti i dettagli, comprese le eccezioni interne, dell'ultimo errore che si è verificato.
$Errore | Get-Error Get-Error -Newest 3 # Visualizza gli ultimi tre errori che si sono verificati nella sessione
4] Notifiche automatiche di nuova versione
A partire da PowerShell 7, il sistema controllerà gli aggiornamenti una volta al giorno e notificherà una nuova versione, se disponibile. Le informazioni vengono visualizzate solo all'inizio delle sessioni successive. Sono disponibili tre flag per l'aggiornamento di PowerShell
- Predefinito Rilasci GA, Anteprima e RC
- spento disattiva la funzione di notifica degli aggiornamenti
- È notifica solo gli aggiornamenti alle versioni GA con manutenzione a lungo termine (LTS)
Se vuoi disattivare le notifiche di aggiornamento in PowerShell 7, esegui questo comando nella finestra di PowerShell.
$Env:POWERSHELL_UPDATECHECK = 'Off'
5] Richiama le risorse DSC direttamente da PowerShell 7
Il cmdlet Invoke-DscResource esegue un metodo di una risorsa DSC (Desidered State Configuration) di PowerShell specificata. È una funzione sperimentale.
Utilizzando questo cmdlet, i prodotti di gestione della configurazione possono gestire Windows o Linux utilizzando le risorse DSC. Questo cmdlet consente anche il debug delle risorse quando il motore DSC è in esecuzione con il debug abilitato.
6] Strato di compatibilità
Consente agli utenti di PowerShell di importare moduli in una sessione implicita di Windows PowerShell. Usando questo, sarai in grado di eseguire il vero comando come una sessione sul computer remoto e restituire i risultati alla sessione locale. Ora che supporta l'importazione di moduli, puoi eseguire questi moduli su computer remoti.
PowerShell è un software open source disponibile anche su Linux e macOS. È fantastico vedere così tante nuove funzionalità in PowerShell 7 e speriamo che continui a crescere. Puoi leggere di più su Microsoft.