Gestire il Registro di sistema in PowerShell
Gli amministratori di sistema esperti hanno familiarità con l'editor del Registro di sistema grafico, che possono usare per gestire chiavi, voci e valori del Registro di sistema. È tuttavia possibile gestire il Registro di sistema anche usando Windows PowerShell e il provider del Registro di sistema.
È possibile usare il cmdlet New-PSDrive per creare unità di PowerShell per qualsiasi parte del Registro di sistema. PowerShell usa il provider del Registro di sistema per creare automaticamente due unità di PowerShell:
HKLM. Rappresenta l'hive del Registro di sistema HKEY_LOCAL_MACHINE.
HKCU. Rappresenta l'hive del Registro di sistema HKEY_LOCAL_USER.
Per accedere alle chiavi del Registro di sistema, usare i cmdlet con i sostantivi Item e ChildItem, mentre, per accedere a voci e valori, usare i cmdlet con i sostantivi ItemProperty e ItemPropertyValue. Infatti PowerShell considera le voci del Registro di sistema come proprietà di un elemento chiave.
Per restituire tutte le chiavi del Registro di sistema nel percorso HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion, eseguire il comando seguente:
Get-ChildItem HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion
Nel Registro di sistema una chiave del Registro di sistema equivale a una cartella all'interno di un file system usata per organizzare le informazioni. Le informazioni usate dalle app vengono archiviate nei valori del Registro di sistema. Il nome del valore è un identificatore univoco per il valore e i dati del valore sono le informazioni usate dalle app.
Ad esempio, per restituire i valori del Registro di sistema nel percorso HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run, eseguire il comando seguente:
Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
È possibile usare il cmdlet Get-ItemPropertyValue per ottenere il valore di una voce specifica del Registro di sistema. Ad esempio, per restituire il percorso del file eseguibile di Windows Defender identificato dalla voce WindowsDefender del valore, eseguire il comando seguente:
Get-ItemPropertyValue HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run -Name WindowsDefender
Nota
Il provider del Registro di sistema non supporta il cmdlet Invoke-Item. Non esistono azioni predefinite per chiavi, voci o valori del Registro di sistema.
Il provider del Registro di sistema supporta un parametro dinamico, -Type, per i cmdlet *-ItemProperty che sono univoci per il provider del Registro di sistema. La tabella seguente elenca i valori dei parametri validi e i tipi di dati del Registro di sistema equivalenti.
Tabella 1: Tipi di dati del Registro di sistema
| Valore del parametro | Tipi di dati del Registro di sistema |
|---|---|
| String | REG_SZ |
| ExpandString | REG_EXPAND_SZ |
| Binario | REG_BINARY |
| DWord | REG_DWORD |
| MultiString | REG_MULTI_SZ |
| QWord | REG_QWORD |
| Sconosciuto | Tipi non supportati, ad esempio REG_RESOURCE_LIST |
Il provider del Registro di sistema supporta le transazioni che consentono di gestire più comandi come singola unità. I comandi in una transazione verranno sottoposti tutti a commit (completati) oppure verrà eseguito il rollback dei risultati (annullamento). Questa funzionalità consente di impostare contemporaneamente più valori del Registro di sistema, senza preoccuparsi che alcune delle impostazioni vengano aggiornate correttamente e altre no. Usare il parametro -UseTransaction per includere un comando in una transazione.
Nota
Per altre informazioni sulle transazioni in Windows PowerShell, vedere l'argomento della Guida about_Transactions.
Nota
Non dimenticare di eseguire il backup delle impostazioni del Registro di sistema prima di provare a modificare le chiavi e i valori del Registro di sistema. È possibile esportare le impostazioni del Registro di sistema in un file usando il comando reg.exe.