Introduzione alla PowerShell Gallery

Il PowerShell Gallery è la destinazione ultima per tutte le tue esigenze di PowerShell, che tu sia un principiante o un utente esperto. E la buona notizia è che c’è una vasta collezione di documentazione, script, moduli e altre risorse create dalla comunità di PowerShell.

In questo tutorial, imparerai a trovare, scaricare e installare risorse dalla PowerShell Gallery.

Resta sintonizzato e eleva il tuo gioco di scripting oggi!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Per seguirci, assicurati di avere un sistema con PowerShell 5.1 o versioni successive installato. Questo tutorial utilizza Windows 10 con PowerShell 5.3 installato, ma dovrebbero funzionare anche altre versioni di Windows e PowerShell.

Installazione del framework .NET

Prima di immergerti nella PowerShell Gallery, hai bisogno prima di un modo per interagire con essa, e il framework .NET è il modo principale.

Devi prima installare il framework .NET, che è cruciale per il modulo PowerShellGet. Il modulo PowerShellGet richiede almeno il framework .NET v4.5+. Il modulo PowerShellGet ti consente di scoprire, installare, aggiornare e pubblicare artefatti PowerShell.

Ma in questo tutorial, installerai il framework .NET v4.8.

?Nota che il framework .NET v4.8 potrebbe già essere installato sul tuo sistema. In tal caso, puoi saltare questo passaggio. Ma se hai una versione più vecchia del framework .NET, disinstallala e aggiorna a una versione più recente.

Per installare il framework .NET, segui questi passaggi:

1. Apri il tuo browser web preferito e vai alla pagina di download ufficiale del framework .NET.

2. Successivamente, clicca sul link Scarica il pacchetto sviluppatore .NET Framework 4.8 per scaricare un file simile a ndp48-devpack-enu. Questo file è il pacchetto di installazione per la versione 4.8 del framework .NET.

Downloading .NET Framework 4.8

3. Attendi il completamento del download e fai doppio clic sul file scaricato per avviare l’installazione del framework .NET.

Launching the .NET Framework installer

?Se stai riscontrando problemi nell’installazione del framework .NET, prova ad eseguire il file di installazione in [modalità di compatibilità]

4. Seleziona la casella di controllo in fondo per accettare i termini della licenza e clicca sul pulsante Installa per installare il framework .NET 4.8.

Accepting the license terms and conditions

Di seguito, puoi vedere il progresso dell’installazione, che potrebbe richiedere alcuni minuti a seconda della configurazione del tuo sistema.

Viewing the installation progress

5. Ora, clicca sul pulsante Chiudi per chiudere l’installatore una volta completata l’installazione.

Finishing the .NET Framework installation

6. Infine, apri PowerShell come amministratore ed esegui il seguente comando [Start-Process] per aprire l’applicazione Aggiungi o Rimuovi programmi (appwiz.cpl). Questa app ti consente di visualizzare un elenco dei programmi installati sul tuo sistema.

Start-Process "appwiz.cpl”

Vedrai voci per il Framework .NET 4.8 nell’elenco dei programmi installati, come mostrato di seguito.

Verifying the .NET Framework 4.8 installation

Installazione del modulo PowerShellGet

Con il Framework .NET installato e in esecuzione, puoi ora installare il componente principale della PowerShell Gallery, il modulo PowerShellGet.

La versione di PowerShellGet (1.0.0.1) preinstallata con Windows PowerShell 5.1 ha funzionalità limitate. Se stai utilizzando Windows PowerShell 5.1 o una versione precedente, considera di utilizzare le funzionalità aggiornate di PowerShell Gallery. La versione più recente è 3.0.17-beta17 al momento della scrittura.

Per installare il modulo PowerShellGet, segui i passaggi seguenti:

1. Esegui il seguente comando, che non produce output, ma abilita il Transport Layer Security (TLS) 1.2 nella tua sessione di PowerShell. TLS è un protocollo di sicurezza che crittografa i dati trasmessi su Internet.

Abilitare TLS 1.2 è cruciale poiché PowerShell non è configurato per utilizzare TLS 1.2 per impostazione predefinita. Questo comando imposta il SecurityProtocol per l’oggetto System.Net.ServicePointManager su TLS 1.2 (Tls12). A sua volta, ottieni l’accesso a PowerShell Gallery utilizzando TLS 1.2 o superiore.

[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12

? Nota che questa modifica si applica solo alla sessione corrente di PowerShell. Ma puoi configurare PowerShell per utilizzare sempre TLS 1.2 aggiungendo il comando sopra al tuo profilo PowerShell.

Next, esegui il comando Install-PackageProvider di seguito per installare il provider del pacchetto NuGet. Il provider del pacchetto NuGet ti consente di installare e gestire pacchetti dal repository dei pacchetti NuGet. Questo repository è un repository centrale di pacchetti open source per la piattaforma .NET.

Il provider del pacchetto NuGet è necessario prima di utilizzare il [Install-Module] cmdlet per installare moduli dalla PowerShell Gallery. Perché? Molti dei moduli nella PowerShell Gallery sono distribuiti come pacchetti NuGet.

Install-PackageProvider -Name NuGet -Force
Installing the NuGet package provider

Una volta installato, puoi ora sfruttare l’API di NuGet. L’API di NuGet ti consente di accedere al repository dei pacchetti NuGet per creare strumenti e applicazioni che possono interagire con il repository dei pacchetti NuGet. Come interagire? Esegui varie attività, come la ricerca, l’installazione e l’aggiornamento dei pacchetti.

In generale, ci sono due versioni dell’API di NuGet, che puoi utilizzare a seconda delle tue esigenze e delle capacità del tuo client e del tuo server.

Version Description Usage
v2 Uses XML as the data format for communication between the client and server.

This version is based on the original NuGet API introduced in 2011 and is the legacy version of the API.

The v2 API is recommended if you use an older version of NuGet or a client or server that does not support the v3 API.

This version is supported by all versions of NuGet and is compatible with older clients and servers.

v3 Uses JSON as the data format for communication between the client and server. This version was introduced in 2013 as an improvement over the v2 API and included many new features and improvements.

Many new features included are support for side-by-side package installation, improved search capabilities, and large package support.

The v3 API is recommended if you use a newer NuGet version. The v3 API is faster and more efficient than the v2 API.

This version is not supported by older versions of NuGet and may not be compatible with older clients and servers.

? In generale, si consiglia l’uso dell’API NuGet v3 in quanto fornisce le funzionalità e le capacità più aggiornate.

3. Esegui il comando Set-PSRepository qui sotto, che non fornisce output, ma imposta il tuo repository PowerShell Gallery (PSGallery) come fonte di pacchetti attendibile. Ciò ti consente di installare moduli dalla PowerShell Gallery.

Set-PSRepository -Name PSGallery -InstallationPolicy Trusted -ErrorAction Stop

4. Ora, esegui il comando Install-Module qui sotto per installare l’ultima versione (-AllowPrerelease) del modulo PowerShellGet.

Install-Module -Name PowerShellGet -AllowPrerelease -Force
Installing the latest version of PowerShellGet

5. Infine, esegui il comando Get-InstalledModule qui sotto per verificare che il modulo PowerShellGet sia stato installato con successo.

Get-InstalledModule PowerShellGet

Vedrai elencato il modulo PowerShellGet, come mostrato di seguito, con PSGallery come repository se installato correttamente.

Verifying the PowerShellGet module installation

Scoprire Moduli dalla PowerShell Gallery

Ora che hai installato il modulo PowerShellGet, puoi cercare e installare moduli dalla PowerShell Gallery. Ciò ti permette di ampliare le capacità del tuo ambiente PowerShell e automatizzare compiti complessi in modo più efficiente.

Per cercare un modulo nella PowerShell Gallery, puoi utilizzare il cmdlet Find-Module. Questo cmdlet cerca nella PowerShell Gallery i moduli che corrispondono ai criteri di ricerca specificati, come il nome del modulo, la versione o l’etichetta.

1. Esegui il comando Find-Module di seguito per cercare nella PowerShell Gallery i moduli con nomi che corrispondono a AzureRM.

Find-Module -Name AzureRM

L’output di seguito indica solo un modulo che corrisponde al nome AzureRM nella PowerShell Gallery. Puoi anche vedere informazioni di base su ciascun modulo, come il nome, la versione, il repository, ecc.

Discovering modules from the PowerShell Gallery

2. Successivamente, esegui uno dei comandi seguenti per cercare moduli utilizzando un -Tag con la parola chiave Azure. Il parametro -Tag non fa distinzione tra maiuscole e minuscole, quindi puoi utilizzare azure o Azure come parola chiave del tag.

Perché utilizzare i tag per un modulo? Un tag è una parola chiave o un’etichetta associata a un modulo, che descrive il suo contenuto e la sua funzionalità nella PowerShell Gallery.

Ad esempio, se un modulo è correlato alla piattaforma cloud di Azure, puoi etichettarlo con la parola chiave Azure. In questo modo, gli utenti interessati alle risorse legate ad Azure possono trovare e scoprire facilmente il modulo cercando il tag Azure.

Find-Module -Tag 'Azure'
Find-Module -Tag 'azure'

PowerShell Gallery è un ampio repository di risorse contribuite da una vasta gamma di autori e ci sono molti moduli correlati a parole chiave popolari come Azure.

Come risultato, vedrai un lungo elenco di moduli che corrispondono alla tua parola chiave o tag, come mostrato negli screenshot seguenti.

Searching for modules in the PowerShell Gallery using a tag

? Puoi anche utilizzare i tag per raggruppare moduli correlati e rendere più rapida la ricerca di risorse correlate. Ad esempio, utilizza il tag Virtualization per raggruppare moduli correlati alle tecnologie di virtualizzazione, come Hyper-V o VMware.

3. Ora, esegui il seguente comando per restringere la tua ricerca e trovare un modulo specifico combinando i parametri nel cmdlet Find-Module.

Il comando di seguito trova un modulo dalla PowerShell Gallery considerando i seguenti parametri:

  • -Name – Cerca moduli con un nome specifico Az.Compute.

  • -Tag – Cerca moduli con i tag Azure e Microsoft.
Find-Module -Name 'Az.Compute' -Tag 'Azure', 'Microsoft’
Filtering module search results

Installazione e Aggiornamento dei Moduli

Una volta trovato un modulo di tuo interesse, l’installazione di quel modulo è a pochi tasti di distanza. Puoi utilizzare il cmdlet Install-Module per scaricare moduli dalla PowerShell Gallery e installarli sul tuo sistema locale.

1. Esegui il comando seguente per scaricare e installare il modulo Az.Compute dalla PowerShell Gallery.

Se l’esecuzione di questo comando avrà successo, non produrrà alcun output, ma verificherai l’installazione nel passaggio successivo.

Install-Module -Name 'Az.Compute'

2. Successivamente, esegui il comando Get-InstalledModule seguente per verificare che il modulo Az.Compute sia stato installato nel tuo sistema.

Get-InstalledModule -Name 'Az.Compute'
Verifying a module installation

? In alternativa, esegui il cmdlet Get-InstalledModule senza parametri per visualizzare un elenco di tutti i moduli installati nel tuo sistema. Tieni presente che, se ci sono troppi moduli installati, potresti affaticare la vista scorrendo l’elenco.

Listing all installed modules

3. Ora, esegui il comando Update-Module riportato di seguito, il quale non fornirà alcun output, ma cercherà la versione più recente di un modulo specifico (ovvero Az.Compute) e lo aggiornerà.

L’aggiornamento dei moduli installati può includere correzioni di bug, nuove funzionalità o miglioramenti vari.

Update-Module -Name Az.Compute

Disinstallazione dei moduli PowerShell

A volte potresti voler rimuovere un modulo dal tuo sistema. Ad esempio, se non ne hai più bisogno o se sta causando problemi.

Per disinstallare un modulo dal tuo sistema, puoi utilizzare il cmdlet Uninstall-Module. Questo cmdlet rimuove un modulo e tutti i suoi file dal sistema, disinstallandolo efficacemente.

? Assicurati di considerare attentamente le implicazioni della disinstallazione di un modulo prima di procedere. La disinstallazione di un modulo potrebbe avere conseguenze indesiderate, come il malfunzionamento di altri programmi o script che dipendono dal modulo.

Esegui il seguente comando Uninstall-Module per disinstallare un modulo specifico (Az.Compute) dal tuo sistema. Questo comando non produrrà output se la disinstallazione avviene con successo.

Uninstall-Module -Name Az.Compute

? Se altri programmi o script stanno utilizzando attualmente il modulo, il cmdlet Uninstall-Module genererà un errore e la disinstallazione non avrà successo.

Conclusion

I moduli di PowerShell sono potenti strumenti che ti consentono di aggiungere funzionalità al tuo ambiente PowerShell in modo rapido. In questo tutorial, insieme alla PowerShell Gallery, puoi scoprire e installare moduli con pochi comandi.

Approfitta della PowerShell Gallery e cerca moduli di PowerShell per personalizzare e potenziare i tuoi script e flussi di lavoro PowerShell oggi stesso!

Source:
https://adamtheautomator.com/powershell-gallery/