In questo articolo, impara come utilizzare PowerShell per ottenere un valore del registro e interrogare voci in un registro utilizzando una varietà di metodi.
Cominciamo!
Prerequisiti
Tutti gli esempi in questo articolo saranno dimostrati utilizzando PowerShell 7.1, che al momento della pubblicazione di questo articolo è l’ultima versione. Puoi anche utilizzare Windows PowerShell 5.1 se lo preferisci. Dovresti anche avere una conoscenza di base dei PowerShell Drives.
Alcuni esempi potrebbero non funzionare senza privilegi di amministratore.
Ottenere chiavi e valori del registro con Get-ChildItem
Uno dei modi più semplici per trovare chiavi e valori del registro è utilizzare il cmdlet Get-ChildItem
. Questo utilizza PowerShell per ottenere un valore del registro e altro ancora enumerando elementi in PowerShell drives. In questo caso, quella PowerShell drive è l’unità HKLM trovata eseguendo Get-PSDrive
.
Esegui il seguente comando in una console di PowerShell.
Nello screenshot sottostante, puoi vedere:
- Il percorso completo della chiave di registro WindowsUpdate
- La chiave AU
- L’elenco delle voci di registro nella chiave AU con i valori corrispondenti

Un punto veloce riguardo alla schermata sopra. Potresti notare che l’output è un po’ fuorviante. Normalmente, l’output della console di PowerShell rappresenta le proprietà di un oggetto. Get-ChildItem
si comporta in modo diverso in questo caso perché questo oggetto tecnicamente non ha proprietà. Comandi extra vengono eseguiti in background per produrre la formattazione che vedi.
Collegato: Come verificare un riavvio in sospeso nel Registro di sistema di Windows
Ottenere i valori del Registro di sistema con Get-ItemProperty
Continuando con la stessa chiave di registro di prima, utilizziamo il cmdlet Get-ItemProperty
questa volta per rendere l’output più leggibile.
Utilizzare Get-ItemProperty
è il modo migliore per ottenere una proprietà di un elemento, ottenendo le chiavi e i loro valori all’interno del Registro di sistema. Esegui il comando seguente:
Nella schermata sottostante, vedrai un elenco delle chiavi e dei valori:
- Per il contenitore di registro AU
- Proprietà correlate a PowerShell che iniziano tutte con PS

In alternativa, puoi specificare il percorso dell’elemento di registro per ottenere lo stesso output solo leggermente più veloce usando .NET. Il comando seguente utilizza la Classe Registry di .NET in PowerShell per ottenere un valore di registro:
Ottenere i valori del Registro di sistema con Get-ItemPropertyValue
Ora è il momento di guardare i valori chiave. Utilizzando il cmdlet Get-ItemPropertyValue
con lo stesso contenitore del registro come prima, vediamo il valore per la chiave NoAutoUpdate
. Esegui il seguente comando PowerShell:
Utilizzando Get-ItemPropertyValue
, otterrai un output più conciso che mostra solo il valore e non le altre informazioni che hai visto in precedenza.

Interrogare il Registro senza le unità di PS
In tutto questo tutorial, hai utilizzato le unità di PowerShell per lavorare con il Registro. Farlo in questo modo non è l’unico modo; puoi anche sfruttare .NET e ottenere informazioni sul Registro tramite le classi .NET!
Ad esempio, forse devi utilizzare PowerShell per ottenere un valore del Registro di HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\ : AutoUpate su un computer remoto.
Puoi farlo con .NET:
- Aprire la connessione al Registro sul computer remoto.
2. Aprire la chiave del Registro specifica che stai cercando.
3. Utilizzare il metodo GetValue()
per interrogare il valore del valore del Registro all’interno della chiave del Registro.
Utilizzare .NET anziché le unità di PowerShell è un po’ più veloce ed è un modo semplice per connettersi e utilizzare PowerShell per interrogare chiavi e valori del Registro su computer remoti.
Testare i valori del Registro con Test-Path
A volte è sufficiente verificare se un valore del Registro è presente. Il modo per farlo è utilizzare il cmdlet Test-Path
.
Proseguendo con il contenitore WindowsUpdate, testa se il contenitore AU è presente eseguendo il seguente comando PowerShell:
Se il risultato è Vero, la chiave o il contenitore esistono. Ma cosa succede se è necessario verificare se un valore o una voce esiste? Costruiamo una funzione personalizzata per questo test:
Utilizzando la funzione personalizzata, inserisci un percorso e il nome della chiave o del contenitore, e il valore che stai cercando, e la funzione personalizzata restituirà Vero o Falso (3) come mostrato nella schermata di seguito:

Passaggi successivi
Sappi che puoi utilizzare i comandi Get-ChildItem
, Get-ItemProperty
e Get-ItemPropertyValue
in PowerShell per ottenere un valore o una chiave del registro, cosa puoi fare ancora?
Se desideri saperne di più sul lavoro con il registro del sistema in PowerShell, consulta l’articolo di Microsoft Docs intitolato ‘Lavorare con le chiavi del registro’. Puoi anche trovare una grande dimostrazione di impostazione dei valori del registro nel post del blog ATA Usare Active Setup: come impostare un valore del registro in tutte le chiavi degli utenti.
Source:
https://adamtheautomator.com/powershell-to-get-a-registry-value/