Come utilizzare i parametri predefiniti di PowerShell per modificare il comportamento dei comandi

Come utilizzare i parametri predefiniti di PowerShell per modificare il comportamento dei comandi

Molte persone preferiscono utilizzare PowerShell perché consente loro di eseguire operazioni che non possono essere eseguite con la GUI di Windows. Anche così, non si può negare che alcuni cmdlet di PowerShell possano essere un po' noiosi o complicati. Ma cosa accadrebbe se ci fosse un modo per poter modificare questi cmdlet e farli “comportare” nel modo desiderato? Che tu ci creda o no, c'è un modo semplice per farlo. È possibile modificare il comportamento del cmdlet modificando i valori dei parametri predefiniti di PowerShell. Questo articolo ti mostrerà come utilizzare i parametri predefiniti di PowerShell per modificare il comportamento dei comandi cmdlet.

Avvertimento

Prima di iniziare, ci sono alcune cose che devi tenere a mente. Sebbene la modifica dei parametri predefiniti di PowerShell e del comportamento cmdelt sia conveniente, può causare problemi. Se esegui uno script e lo script presuppone che il cmdlet modificato si comporterà in un determinato modo, potresti ottenere risultati imprevedibili. Pertanto, dovresti assicurarti di modificare attentamente i parametri predefiniti di PowerShell.

Recensione veloce

Esistono due concetti di PowerShell con cui è necessario avere familiarità per poter lavorare con i parametri predefiniti. Il primo concetto è variabile. In PowerShell i nomi delle variabili iniziano sempre con il simbolo del dollaro ed è possibile scrivere il contenuto di una variabile digitandone il nome.

Il secondo concetto con cui potresti avere familiarità è la tabella hash. Una tabella hash è essenzialmente un elenco composto da coppie chiave/valore. Ad esempio, supponiamo di voler creare una tabella hash contenente i nomi degli stati degli Stati Uniti e le relative abbreviazioni. Di seguito è riportato il codice:

$StateList = @{}
$StateList.add('Florida','FL')
$StateList.add('South Carolina','SC')
$StateList.add('Georgia','GA')
$StateList

La prima riga di codice crea una tabella hash vuota denominata $StateList . Le tre righe successive aggiungono voci alla tabella. Ogni voce è composta da una chiave (nome dello stato) e da un valore (abbreviazione dello stato). L'ultima riga elenca il contenuto della tabella. Puoi vedere il codice in azione nell'immagine qui sotto.

Questo è solo un esempio molto semplice ed esistono molti altri modi per utilizzare le tabelle hash.

Utilizza i parametri predefiniti di PowerShell

PowerShell dispone di una variabile incorporata utilizzata per archiviare i parametri predefiniti utilizzati con i relativi cmdlet. Questa variabile si chiama $PSDefaultParameterValues . Come avrai notato dall'introduzione iniziale e dal nome della variabile, questa non è una variabile ordinaria ma una tabella hash. Tuttavia, se inserisci il nome della variabile in PowerShell, vedrai rapidamente che la tabella è vuota, come mostrato di seguito.

Come utilizzare i parametri predefiniti di PowerShell per modificare il comportamento dei comandi

Allora cosa possiamo fare con questa variabile $PSDefaultParameterValues . Come accennato in precedenza, puoi controllare il comportamento dei cmdlet di PowerShell. L'unico punto è che non è possibile superare le capacità intrinseche del comando cmdlet. Quindi diamo un'occhiata a un esempio.

Questo esempio potrebbe non essere qualcosa che desideri utilizzare nella vita reale, ma ti mostrerà quanto sia facile modificare radicalmente il comportamento del cmdlet. Se inserisci il cmdlet Get-TimeZone in PowerShell, vedrai il nome del fuso orario per cui il tuo PC è attualmente configurato. Puoi vedere questo esempio nell'immagine qui sotto.

Come utilizzare i parametri predefiniti di PowerShell per modificare il comportamento dei comandi

Ora modifichiamo questo cmdlet in modo che non visualizzi il fuso orario che il sistema è configurato per utilizzare, ma invece i fusi orari disponibili. A tale scopo, è necessaria la sintassi del cmdlet utilizzando il cmdlet Get-Help seguito dal cmdlet Get-TimeZone . Di seguito è possibile visualizzare la sintassi del cmdlet.

Come utilizzare i parametri predefiniti di PowerShell per modificare il comportamento dei comandi

Questa sintassi include un parametro chiamato ListAvailable . Inserisci il comando seguente:

$PSDefaultParameterValues.Add("Get-TimeZone:ListAvailable",$True)

La prima parte di questo comando indica semplicemente a PowerShell che desideri aggiungere un valore alla tabella hash, proprio come abbiamo fatto con l'esempio dell'abbreviazione dello stato americano nella sezione precedente. Questa tabella hash contiene una coppia chiave/valore. In questo caso la chiave è il nome del cmdlet (Get-TimeZone) seguito da una virgola e dal nome del parametro che si desidera impostare. In questo caso, il nome del parametro è ListAvailable. La seconda parte di questo cmdlet è il valore che vuoi assegnare al parametro. Eccolo $True . Il parametro ListAvailable in genere non necessita di un valore, quindi specificando $True si indica a PowerShell di utilizzare questo parametro senza assegnargli un valore.

Se guardi l'immagine qui sotto, vedrai cosa succede quando esegui il cmdlet Get-TimeZone.

Come utilizzare i parametri predefiniti di PowerShell per modificare il comportamento dei comandi

Cose da tenere a mente

La cosa più importante da capire è che l'aggiunta di un nuovo valore per un parametro predefinito di PowerShell significa modificare il comportamento predefinito del cmdlet, non rimuovere le funzionalità del cmdlet. Anche quando si modifica il cmdlet Get-TimeZone per mostrare i fusi orari disponibili invece di mostrare il fuso orario corrente. Puoi comunque visualizzare le informazioni sul fuso orario corrente se ne visualizzi di più.

Un'altra cosa che devi sapere è che i parametri predefiniti personalizzati possono essere rimossi. Per rimuovere un singolo elemento, utilizza il comando $PSDefaultParameterValues.Remove , seguito dal nome dell'elemento che desideri rimuovere. Per esempio:

$PSDefaultParameterValues.Remove("Get-TimeZone:ListAvailable")

Invece, puoi eliminare l'intero contenuto della tabella hash utilizzando questo comando:

$PSDefaultParameterValues.Clear();

Di seguito puoi vedere esempi di entrambe le tecniche:

Come utilizzare i parametri predefiniti di PowerShell per modificare il comportamento dei comandi

È possibile eliminare l'intera tabella hash o eliminare una singola voce.

La modifica del comportamento predefinito di un comando cmdlet è qualcosa che non fai spesso, ma quando ne hai bisogno sai già come modificarlo.

Ti auguro successo!

Vedi altro:


Qual è il processo Vmmem nel Task Manager di Windows?

Qual è il processo Vmmem nel Task Manager di Windows?

Hai riscontrato un processo denominato Vmmem nel Task Manager di Windows? Consuma troppa CPU, RAM e altre risorse di sistema, questo ti preoccupa?

Come utilizzare TurboVPN

Come utilizzare TurboVPN

Turbo VPN ti offre tutti i vantaggi dello sblocco di contenuti limitati o bloccati su telefoni Windows, macOS, iOS e Android.

Come abilitare/disabilitare i promemoria della schermata di blocco e le notifiche delle chiamate VoIP in Windows 10

Come abilitare/disabilitare i promemoria della schermata di blocco e le notifiche delle chiamate VoIP in Windows 10

Per impostazione predefinita, la schermata di blocco dell'account visualizza i messaggi Cortana e le notifiche delle chiamate VoIP in arrivo. Questa guida ti mostrerà come abilitare o disabilitare la visualizzazione dei promemoria e delle notifiche delle chiamate VoIP in arrivo sulla schermata di blocco in Windows 10.

Come aprire il menu Start a schermo intero su Windows 10

Come aprire il menu Start a schermo intero su Windows 10

Questo articolo ti mostrerà come aprire il menu Start a schermo intero su Windows 10.

Artistic Endeavors, il tema ufficiale di Microsoft, scaricalo e provalo

Artistic Endeavors, il tema ufficiale di Microsoft, scaricalo e provalo

Recentemente, Microsoft ha rilasciato un nuovo pacchetto di temi chiamato Artistic Endeavors esclusivamente per dispositivi che utilizzano Windows 10 sul Microsoft Store.

Come attivare e trovare il registro di avvio di Windows

Come attivare e trovare il registro di avvio di Windows

Il registro di avvio o il registro di inizializzazione del sistema è un file di testo che può essere creato durante la sequenza di avvio del computer.

Cosè la WBAN (Wireless Body Area Network)?

Cosè la WBAN (Wireless Body Area Network)?

Il termine “Wireless Body Area Network” è stato coniato nel 2001 da Van Dam. Fondamentalmente si tratta di una rete di nodi sensoriali attaccati al corpo umano, utilizzati per misurare i segnali biologici (frequenza cardiaca, pressione sanguigna, segnali cerebrali, ecc.) degli esseri umani.

Tabella riepilogativa dei comandi di base di PowerShell

Tabella riepilogativa dei comandi di base di PowerShell

PowerShell è un potente framework di automazione e gestione della configurazione che consente agli amministratori di sistema di lavorare in modo più efficiente automatizzando attività noiose e ripetitive. Di seguito sono riportati alcuni comandi di base di PowerShell per aiutarti a sfruttare appieno la potenza di questo strumento.

Come cambiare il carattere delleditor del Registro di sistema in Windows 10

Come cambiare il carattere delleditor del Registro di sistema in Windows 10

Questa guida ti mostrerà come modificare il carattere dell'Editor del Registro di sistema solo per il tuo account o per tutti gli utenti in Windows 10.

Come aprire leditor del Registro di sistema su Windows

Come aprire leditor del Registro di sistema su Windows

Tutte le modifiche al registro di Windows possono essere apportate tramite l'editor del registro, uno strumento incluso in tutte le versioni di Windows. Questo articolo ti guiderà come aprire l'editor del Registro di sistema.