- 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-Location
per 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.
- Recupera il valore corrente della voce del percorso usando
Get-ItemProperty
. - Aggiungi il nuovo valore, separandolo con un
;
. - 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-ItemProperty
viene 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
: