{"id":12830,"date":"2026-02-14T15:05:03","date_gmt":"2026-02-14T15:05:03","guid":{"rendered":"https:\/\/howtogeek.blog\/it\/?p=12830"},"modified":"2026-02-14T15:05:03","modified_gmt":"2026-02-14T15:05:03","slug":"come-recuperare-i-valori-del-registro-di-sistema-utilizzando-powershell","status":"publish","type":"post","link":"https:\/\/howtogeek.blog\/it\/come-recuperare-i-valori-del-registro-di-sistema-utilizzando-powershell\/","title":{"rendered":"Come recuperare i valori del Registro di sistema utilizzando PowerShell"},"content":{"rendered":"<p>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\u00e0 e sapere cosa eseguire in PowerShell non \u00e8 sempre sufficiente, soprattutto se si sta risolvendo un problema o automatizzando alcune operazioni.\u00c8 piuttosto fastidioso quando i comandi per recuperare questi valori non funzionano come previsto o generano errori incomprensibili. Quindi, questa guida \u00e8 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, \u00e8 possibile verificare, interrogare o semplicemente dare un&#8217;occhiata alle voci del Registro di sistema senza problemi. La chiave \u00e8 capire quando e perch\u00e9 ogni metodo funziona, perch\u00e9 a volte il comando pi\u00f9 semplice \u00e8 quello che fallisce e bisogna cambiare strategia. Aspettatevi di ottenere una visione pi\u00f9 chiara della struttura del Registro di sistema, che pu\u00f2 essere utile se state cercando di disabilitare gli elementi di avvio, controllare gli stati di installazione o semplicemente risolvere qualche strano comportamento di Windows.<\/p>\n<h2>Come ottenere i valori delle chiavi del Registro di sistema in PowerShell senza perdere la testa<\/h2>\n<h3>Test-Path: esiste davvero quel percorso del registro?<\/h3>\n<p>Questa parte \u00e8 piuttosto elementare, ma molto utile.<code>Test-Path<\/code>Il cmdlet di Windows PowerShell \u00e8 un primo controllo per verificare se una chiave o un valore del registro esiste prima di provare a fare qualcosa di complicato.\u00c8 ottimo per lo scripting, soprattutto nella gestione degli errori. In pratica, si esegue un comando come <code>Test-Path HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run<\/code>, e se la chiave \u00e8 presente, si ottiene <strong>$true<\/strong>. Se manca, si ottiene <strong>$false<\/strong>. A volte, il percorso contiene spazi o caratteri strani, quindi \u00e8 meglio tenerlo tra virgolette doppie: <code>Test-Path \"HKLM:\\Some\\Really Weird Path\"<\/code>. Ho visto casi in cui un percorso \u00e8 tecnicamente corretto, ma PowerShell restituisce <strong>$false<\/strong> a causa di permessi mancanti o errori di battitura. Tuttavia, \u00e8 un ottimo primo passo per evitare di bloccare lo script o di eseguire comandi su chiavi inesistenti. In alcune configurazioni, \u00e8 un po&#8217; instabile, ma in generale aiuta a mantenere le cose in ordine.<\/p>\n<h3>Test-RegistryValue: il valore che desideri \u00e8 davvero presente?<\/h3>\n<p>Verificare un valore di registro specifico non \u00e8 sempre cos\u00ec semplice come cercare un percorso: a volte si tratta di verificare se una determinata stringa o un numero \u00e8 memorizzato all&#8217;interno della chiave. La funzione seguente (che \u00e8 possibile copiare o modificare) aiuta a verificarlo. Funziona perch\u00e9 cerca di ottenere una propriet\u00e0 specifica (come un elemento di avvio o un flag di configurazione) e poi ne indica la presenza.\u00c8 utile, ad esempio, se si desidera assicurarsi che un determinato programma sia impostato per l&#8217;esecuzione all&#8217;accesso o che un flag di funzionalit\u00e0 sia abilitato. La sintassi \u00e8 la seguente:<\/p>\n<p> <code><\/p>\n<pre>Function Test-RegistryValue ($regkey, $name) { if (Get-ItemProperty -Path $regkey -Name $name -ErrorAction Ignore) { $true } else { $false } }<\/pre>\n<p><\/code> <\/p>\n<p>Quindi, sostituisci <code>$regkey<\/code>con il percorso del registro, ad esempio <strong>HKCU:\\Software\\YourApp<\/strong>, e <code>$name<\/code>con il valore specifico che stai cercando, ad esempio <strong>Enabled<\/strong>. Su una macchina, questo potrebbe funzionare immediatamente; su un&#8217;altra, potrebbe richiedere i diritti di sudo\/admin.\u00c8 un po&#8217; 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.<\/p>\n<h3>Reg Query: riga di comando e PowerShell, finalmente insieme<\/h3>\n<p>Se i comandi di PowerShell non sono sufficienti o si preferisce il metodo tradizionale, <code>reg query<\/code>\u00e8 comunque utile. Si tratta di un&#8217;utilit\u00e0 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 <code>reg query \"HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\"<\/code>, vengono elencati tutti gli elementi di avvio sotto quella chiave. Il trucco \u00e8 ricordarsi di eseguire PowerShell o il Prompt dei comandi come amministratore a volte, soprattutto se le autorizzazioni bloccano l&#8217;accesso. Inoltre, \u00e8 possibile integrarlo in PowerShell eseguendo, <code>Invoke-Expression 'reg query...'<\/code>se necessario.\u00c8 un po&#8217; vecchio stile, ma estremamente affidabile per ottenere un elenco enorme o semplicemente per confermare che una chiave o un valore siano impostati correttamente.<\/p>\n<h3>Get-Item e i suoi amici: la potenza di PowerShell per l&#8217;accesso al registro<\/h3>\n<p>Sono un grande fan di <code>Get-Item<\/code>e <code>Get-ItemProperty<\/code>, perch\u00e9 rappresentano un modo pi\u00f9 umano per curiosare tra le cose del registro. Due metodi principali per estrarre i valori: <strong>Get-ItemPropertyValue<\/strong> e <strong>Get-ChildItem<\/strong>. Forniscono diverse tipologie di informazioni, ma entrambe sono ottime scelte.<\/p>\n<h4>Get-ItemPropertyValue \u2014 Facile e preciso<\/h4>\n<p>Questo comando \u00e8 come chiedere un dato specifico: &#8220;Ehi, qual \u00e8 il valore di questa voce del registro?&#8221;.Se, ad esempio, vuoi avviare <strong>Chromium<\/strong>, dovresti eseguire:<\/p>\n<p> <code><\/p>\n<pre>Get-ItemPropertyValue -Path HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Run -Name Chromium<\/pre>\n<p><\/code> <\/p>\n<p>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 <code>-ErrorAction<\/code>. Ho usato questo comando quando volevo solo ottenere il valore rapidamente, senza dover scavare in una serie di sottochiavi.<\/p>\n<h4>Get-ChildItem \u2014 Elenca tutto ci\u00f2 che \u00e8 contenuto in una chiave del Registro di sistema<\/h4>\n<p>Questo comando \u00e8 utile per ottenere un elenco completo di sottochiavi o valori all&#8217;interno di uno specifico percorso del registro. Funziona come un elenco di directory, ma per il registro. Eseguilo in questo modo:<\/p>\n<p> <code><\/p>\n<pre>Get-ChildItem -Path HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion<\/pre>\n<p><\/code> <\/p>\n<p>Hai bisogno di restringere il campo? Puoi aggiungere parametri o filtrare con <code>-Name<\/code>o <code>-Exclude<\/code>. Ad esempio, per ignorare le voci che iniziano con C: <code>Get-ChildItem -Path HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion -Exclude C*<\/code>. Ha un aspetto un po&#8217; pi\u00f9 gradevole rispetto all&#8217;output grezzo di una query reg e, su alcuni sistemi, \u00e8 pi\u00f9 facile da interpretare.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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\u00e0 e sapere cosa eseguire in PowerShell non \u00e8 sempre sufficiente, soprattutto se si sta risolvendo un problema o automatizzando alcune operazioni.\u00c8 piuttosto fastidioso quando i [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-12830","post","type-post","status-publish","format-standard","hentry","category-how-to"],"acf":[],"_links":{"self":[{"href":"https:\/\/howtogeek.blog\/it\/wp-json\/wp\/v2\/posts\/12830","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/howtogeek.blog\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/howtogeek.blog\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/howtogeek.blog\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/howtogeek.blog\/it\/wp-json\/wp\/v2\/comments?post=12830"}],"version-history":[{"count":1,"href":"https:\/\/howtogeek.blog\/it\/wp-json\/wp\/v2\/posts\/12830\/revisions"}],"predecessor-version":[{"id":12831,"href":"https:\/\/howtogeek.blog\/it\/wp-json\/wp\/v2\/posts\/12830\/revisions\/12831"}],"wp:attachment":[{"href":"https:\/\/howtogeek.blog\/it\/wp-json\/wp\/v2\/media?parent=12830"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/howtogeek.blog\/it\/wp-json\/wp\/v2\/categories?post=12830"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/howtogeek.blog\/it\/wp-json\/wp\/v2\/tags?post=12830"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}