Lavorare con le Voci di Registro

  • 06/05/2017
  • 5 minuti per leggere
    • j
    • k
    • m
    • b

a Causa del registro di sistema non valide sono proprietà dei tasti e, come tale, non può essere direttamente consultati, abbiamo bisogno di adottare un approccio leggermente diverso quando si lavora con loro.

Elenco delle voci di registro

Esistono molti modi diversi per esaminare le voci di registro. Il modo più semplice è ottenere la proprietànomi associati a una chiave. Ad esempio, per vedere i nomi delle voci nella chiave di registroHKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion, utilizzare Get-Item. Chiavi di registroavere una proprietà con il nome generico di “Proprietà” che è un elenco di voci di registro nella chiave.Il seguente comando seleziona la proprietà Proprietà ed espande gli elementi in modo che siano visualizzati in un elenco:

DevicePathMediaPathUnexpandedProgramFilesDirCommonFilesDirProductId

Per visualizzare le voci del registro di sistema in modo più leggibile, utilizzare Get-ItemProperty:

Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

Windows PowerShell proprietà relative chiave sono tutte con prefisso “PS”, ad asPSPath, PSParentPath, PSChildName, e PSProvider.

È possibile utilizzare la notazione *.* per fare riferimento alla posizione corrente. È possibile utilizzare Set-Locationper passare prima al contenitore del registro di sistema CurrentVersion:

Set-Location -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion

in Alternativa, è possibile utilizzare il built-in HKLM PSDrive con Set-Location:

Set-Location -Path hklm:\SOFTWARE\Microsoft\Windows\CurrentVersion

È possibile quindi utilizzare il *.* notazione per la posizione corrente per elencare le proprietà withoutspecifying un percorso completo:

Get-ItemProperty -Path .
...DevicePath : C:\WINDOWS\infMediaPathUnexpanded : C:\WINDOWS\MediaProgramFilesDir : C:\Program Files...

il Percorso di espansione funziona lo stesso come avviene all’interno del file di sistema, in modo da questa posizione si possono getthe ItemProperty elenco per HKLM:\SOFTWARE\Microsoft\Windows\Help tramiteGet-ItemProperty -Path ..\Help.

Ottenere una singola voce di Registro

Se si desidera recuperare una voce specifica in una chiave di registro, è possibile utilizzare uno dei numerosi possibili approcci. Questo esempio trova il valore di DevicePath in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.

Utilizzando Get-ItemProperty, utilizzare il parametro Path per specificare il nome della chiave e il parametro Name per specificare il nome della voce DevicePath.

Get-ItemProperty -Path HKLM:\Software\Microsoft\Windows\CurrentVersion -Name DevicePath

Questo comando restituisce le proprietà standard di Windows PowerShell e DevicePathproperty.

Nota

SebbeneGet-ItemProperty abbia parametri di filtro, Inclusione ed esclusione, non possono essere utilizzati per filtrare in base al nome della proprietà. Questi parametri si riferiscono alle chiavi del registro di sistema, che sono itempaths e non voci di registro, che sono proprietà elemento.

Un’altra opzione è usare il Reg.strumento da riga di comando exe. Per aiuto con reg.exe, digitarereg.exe /?al prompt dei comandi. Per trovare la voce DevicePath, utilizzare reg.exe come mostrato nel seguente comando:

reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion /v DevicePath

È anche possibile utilizzare l’oggetto WshShell COM per trovare alcune voci di registro, sebbene questo metodo non funzioni con dati binari di grandi dimensioni o con nomi di voci di registro che includono caratteri come “\”). Aggiungere il nome della proprietà al percorso dell’elemento con un \ separator:

(New-Object -ComObject WScript.Shell).RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DevicePath")
%SystemRoot%\inf

Impostazione di una singola voce di Registro

Se si desidera modificare una voce specifica in una chiave di registro, è possibile utilizzare uno dei diversi approcci possibili. Questo esempio modifica la voce Path sotto HKEY_CURRENT_USER\Environment. La voce Percorso specifica dove trovare i file eseguibili.

  1. Recupera il valore corrente della voce del percorso usandoGet-ItemProperty.
  2. Aggiungi il nuovo valore, separandolo con un ;.
  3. Utilizzare Set-ItemProperty con la chiave, il nome della voce e il valore specificati per modificare registryentry.

Nota

SebbeneSet-ItemProperty abbia parametri di filtro, Inclusione ed esclusione, non possono essere usati per filtrare in base al nome della proprietà. Questi parametri si riferiscono alle chiavi di registro-che sono itempaths-e non alle voci di registro-che sono proprietà item.

Un’altra opzione è usare il Reg.strumento da riga di comando exe. Per aiuto con reg.exe, tipo reg.exe/?al prompt dei comandi.

L’esempio seguente modifica la voce del percorso rimuovendo il percorso aggiunto nell’esempio precedente.Get-ItemPropertyviene ancora utilizzato per recuperare il valore corrente per evitare di dover analizzare la stringa restituita dareg query. I metodi sottostringa e LastIndexOf vengono utilizzati per recuperare l’ultimo percorso aggiunto alla voce Path.

The operation completed successfully.

Creazione di nuove voci di Registro

Per aggiungere una nuova voce denominata “PowerShellPath” alla chiave CurrentVersion, utilizzare New-ItemProperty con il percorso della chiave, il nome della voce e il valore della voce. Per questo esempio, prenderemo il valore della variabile Windows PowerShell $PSHome, che memorizza il percorso della directory di installazione per Windows PowerShell.

È possibile aggiungere la nuova voce alla chiave utilizzando il seguente comando, e il comando restituisce ancheinformazioni sulla nuova voce:

Il PropertyType deve essere il nome di un Microsoft.Win32.RegistryValueKind enumerazione membro dalla seguente tabella:

PropertyType Value Meaning
Binary Binary data
DWord A number that is a valid UInt32
ExpandString A string that can contain environment variables that are dynamically expanded
MultiString A multiline string
String Any string value
QWord 8 bytes of binary data

Nota

È possibile aggiungere una voce del registro di sistema in più posizioni, specificando un array di valori per thePath parametro:

È anche possibile sovrascrivere un pre-esistente valore della voce del registro aggiungendo il parametro Force per qualsiasiNew-ItemProperty comando.

Rinominare le voci del Registro di sistema

Per rinominare la voce PowerShellPath in “PSHome”, utilizzareRename-ItemProperty:

Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome

Per visualizzare il valore rinominato, aggiungere il parametro PassThru al comando.

Rename-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -NewName PSHome -passthru

Eliminazione delle voci di registro

Per eliminare entrambe le voci di registro PSHome e PowerShellPath, utilizzare Remove-ItemProperty:

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *