How To

Come recuperare i valori del Registro di sistema utilizzando PowerShell

February 14, 2026 4 minuti di lettura Updated: February 14, 2026

Gestire i valori del Registro di sistema su Windows spesso sembra come cercare di decifrare una lingua straniera. Alcune chiavi del Registro di sistema sono nascoste dietro livelli di complessità e sapere cosa eseguire in PowerShell non è sempre sufficiente, soprattutto se si sta risolvendo un problema o automatizzando alcune operazioni.È piuttosto fastidioso quando i comandi per recuperare questi valori non funzionano come previsto o generano errori incomprensibili. Quindi, questa guida è praticamente una raccolta di metodi che ho trovato utili per estrarre informazioni dal Registro di sistema in modo affidabile, anche quando le cose sembrano strane. Dopo aver provato questi metodi, è possibile verificare, interrogare o semplicemente dare un’occhiata alle voci del Registro di sistema senza problemi. La chiave è capire quando e perché ogni metodo funziona, perché a volte il comando più semplice è quello che fallisce e bisogna cambiare strategia. Aspettatevi di ottenere una visione più chiara della struttura del Registro di sistema, che può essere utile se state cercando di disabilitare gli elementi di avvio, controllare gli stati di installazione o semplicemente risolvere qualche strano comportamento di Windows.

Come ottenere i valori delle chiavi del Registro di sistema in PowerShell senza perdere la testa

Test-Path: esiste davvero quel percorso del registro?

Questa parte è piuttosto elementare, ma molto utile.Test-PathIl cmdlet di Windows PowerShell è un primo controllo per verificare se una chiave o un valore del registro esiste prima di provare a fare qualcosa di complicato.È ottimo per lo scripting, soprattutto nella gestione degli errori. In pratica, si esegue un comando come Test-Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Run, e se la chiave è presente, si ottiene $true. Se manca, si ottiene $false. A volte, il percorso contiene spazi o caratteri strani, quindi è meglio tenerlo tra virgolette doppie: Test-Path "HKLM:\Some\Really Weird Path". Ho visto casi in cui un percorso è tecnicamente corretto, ma PowerShell restituisce $false a causa di permessi mancanti o errori di battitura. Tuttavia, è un ottimo primo passo per evitare di bloccare lo script o di eseguire comandi su chiavi inesistenti. In alcune configurazioni, è un po’ instabile, ma in generale aiuta a mantenere le cose in ordine.

Test-RegistryValue: il valore che desideri è davvero presente?

Verificare un valore di registro specifico non è sempre così semplice come cercare un percorso: a volte si tratta di verificare se una determinata stringa o un numero è memorizzato all’interno della chiave. La funzione seguente (che è possibile copiare o modificare) aiuta a verificarlo. Funziona perché cerca di ottenere una proprietà specifica (come un elemento di avvio o un flag di configurazione) e poi ne indica la presenza.È utile, ad esempio, se si desidera assicurarsi che un determinato programma sia impostato per l’esecuzione all’accesso o che un flag di funzionalità sia abilitato. La sintassi è la seguente:

Function Test-RegistryValue ($regkey, $name) { if (Get-ItemProperty -Path $regkey -Name $name -ErrorAction Ignore) { $true } else { $false } }

Quindi, sostituisci $regkeycon il percorso del registro, ad esempio HKCU:\Software\YourApp, e $namecon il valore specifico che stai cercando, ad esempio Enabled. Su una macchina, questo potrebbe funzionare immediatamente; su un’altra, potrebbe richiedere i diritti di sudo/admin.È un po’ strano, ma di solito rimarrai sorpreso da quanto spesso questo piccolo controllo ti risparmi un sacco di grattacapi durante la creazione di script o la risoluzione dei problemi.

Reg Query: riga di comando e PowerShell, finalmente insieme

Se i comandi di PowerShell non sono sufficienti o si preferisce il metodo tradizionale, reg queryè comunque utile. Si tratta di un’utilità da riga di comando che esegue il dump del contenuto di una chiave di registro, il che la rende perfetta per controlli rapidi o script da file batch. Quando si esegue qualcosa come reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run", vengono elencati tutti gli elementi di avvio sotto quella chiave. Il trucco è ricordarsi di eseguire PowerShell o il Prompt dei comandi come amministratore a volte, soprattutto se le autorizzazioni bloccano l’accesso. Inoltre, è possibile integrarlo in PowerShell eseguendo, Invoke-Expression 'reg query...'se necessario.È un po’ vecchio stile, ma estremamente affidabile per ottenere un elenco enorme o semplicemente per confermare che una chiave o un valore siano impostati correttamente.

Get-Item e i suoi amici: la potenza di PowerShell per l’accesso al registro

Sono un grande fan di Get-Iteme Get-ItemProperty, perché rappresentano un modo più umano per curiosare tra le cose del registro. Due metodi principali per estrarre i valori: Get-ItemPropertyValue e Get-ChildItem. Forniscono diverse tipologie di informazioni, ma entrambe sono ottime scelte.

Get-ItemPropertyValue — Facile e preciso

Questo comando è come chiedere un dato specifico: “Ehi, qual è il valore di questa voce del registro?”.Se, ad esempio, vuoi avviare Chromium, dovresti eseguire:

Get-ItemPropertyValue -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\Run -Name Chromium

Se il valore di registro esiste, il comando ne restituisce il contenuto. In caso contrario, genera un errore, a meno che non venga gestito con -ErrorAction. Ho usato questo comando quando volevo solo ottenere il valore rapidamente, senza dover scavare in una serie di sottochiavi.

Get-ChildItem — Elenca tutto ciò che è contenuto in una chiave del Registro di sistema

Questo comando è utile per ottenere un elenco completo di sottochiavi o valori all’interno di uno specifico percorso del registro. Funziona come un elenco di directory, ma per il registro. Eseguilo in questo modo:

Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion

Hai bisogno di restringere il campo? Puoi aggiungere parametri o filtrare con -Nameo -Exclude. Ad esempio, per ignorare le voci che iniziano con C: Get-ChildItem -Path HKCU:\Software\Microsoft\Windows\CurrentVersion -Exclude C*. Ha un aspetto un po’ più gradevole rispetto all’output grezzo di una query reg e, su alcuni sistemi, è più facile da interpretare.