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:


Informazioni sulla funzionalità Termina operazione in Windows

Informazioni sulla funzionalità Termina operazione in Windows

Termina operazione è una funzionalità di Task Manager di Microsoft Windows. Si trova nella scheda Applicazioni e consente agli utenti di chiudere qualsiasi programma che risponde o non risponde.

Windows + V: scorciatoia utile che molti utenti Windows non conoscono

Windows + V: scorciatoia utile che molti utenti Windows non conoscono

Come molte altre piattaforme, Windows dispone anche di un gestore di appunti specializzato chiamato "Cronologia degli appunti".

Come installare il widget macOS Big Sur/iOS 14 su Windows 10

Come installare il widget macOS Big Sur/iOS 14 su Windows 10

La versione macOS Big Sur è stata annunciata ufficialmente alla recente conferenza WWDC. E puoi portare completamente l'interfaccia di macOS Big Sur su Windows 10 con lo strumento Rainmeter.

Come proteggere il desktop remoto dal malware RDStealer

Come proteggere il desktop remoto dal malware RDStealer

RDStealer è un malware che tenta di rubare credenziali e dati infettando un server RDP e monitorandone le connessioni remote.

I 7 migliori software di gestione file per Windows per sostituire Esplora file

I 7 migliori software di gestione file per Windows per sostituire Esplora file

Forse è ora di dire addio a Esplora file e utilizzare software di gestione file di terze parti? Ecco le 7 migliori alternative a Esplora file di Windows.

Come funziona LoRaWAN? Perché è importante per l’IoT?

Come funziona LoRaWAN? Perché è importante per l’IoT?

LoRaWAN o Long Range Wireless Area Network è utile nella comunicazione tra dispositivi a basso consumo su lunghe distanze.

8 modi per aprire le Opzioni di avvio avanzate su Windows 10

8 modi per aprire le Opzioni di avvio avanzate su Windows 10

Navigando verso Opzioni di avvio avanzate, puoi reimpostare Windows 10, ripristinare Windows 10, ripristinare Windows 10 da un file immagine creato in precedenza, correggere errori di avvio, aprire il prompt dei comandi per eseguire opzioni, scegliere diverse, aprire le impostazioni UEFI, modificare le impostazioni di avvio.. ..

Perché dovresti riflettere attentamente prima di accedere con un account di social network?

Perché dovresti riflettere attentamente prima di accedere con un account di social network?

Ogni volta che ti iscrivi a un nuovo servizio, puoi scegliere un nome utente e una password o semplicemente accedere con Facebook o Twitter. Ma dovresti farlo?

Istruzioni per cambiare Google DNS 8.8.8.8 e 8.8.4.4

Istruzioni per cambiare Google DNS 8.8.8.8 e 8.8.4.4

DNS Google 8.8.8.8 8.8.4.4 è uno dei DNS che molti utenti scelgono di utilizzare, soprattutto per velocizzare l'accesso alla rete o l'accesso bloccato a Facebook.

Come avviare Microsoft Edge sempre in modalità InPrivate su Windows 10

Come avviare Microsoft Edge sempre in modalità InPrivate su Windows 10

Se utilizzi Microsoft Edge su un computer Windows 10 condiviso e desideri mantenere privata la cronologia di navigazione, puoi fare in modo che Edge venga sempre avviato in modalità InPrivate.