Met registervermeldingen werkenWorking with Registry Entries

Omdat registervermeldingen eigenschappen van sleutels zijn en als zodanig kunnen niet worden rechtstreeks gebladerd, moeten we een lichtjes andere benadering rekening te houden wanneer u ze.Because registry entries are properties of keys and, as such, cannot be directly browsed, we need to take a slightly different approach when working with them.

Registervermeldingen van aanbiedingListing Registry Entries

Er zijn veel verschillende manieren om te onderzoeken registervermeldingen.There are many different ways to examine registry entries. De eenvoudigste manier is om op te halen van de namen van de eigenschappen die zijn gekoppeld aan een sleutel.The simplest way is to get the property names associated with a key. Bijvoorbeeld, om te zien van de namen van de vermeldingen in de registersleutel HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion, gebruik Get-Item .For example, to see the names of the entries in the registry key HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion, use Get-Item. Registersleutels hebben een eigenschap met de algemene naam van 'Eigenschap' die een lijst met registervermeldingen in de sleutel is.Registry keys have a property with the generic name of "Property" that is a list of registry entries in the key. De volgende opdracht de eigenschap selecteert en de items wordt uitgebreid zodat ze in een lijst worden weergegeven:The following command selects the Property property and expands the items so that they are displayed in a list:

PS> Get-Item -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion | Select-Object -ExpandProperty Property
DevicePath
MediaPathUnexpanded
ProgramFilesDir
CommonFilesDir
ProductId

U kunt de registervermeldingen weergeven in een beter leesbare vorm, met Get ItemProperty:To view the registry entries in a more readable form, use Get-ItemProperty:

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

PSPath              : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SO
                      FTWARE\Microsoft\Windows\CurrentVersion
PSParentPath        : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SO
                      FTWARE\Microsoft\Windows
PSChildName         : CurrentVersion
PSDrive             : HKLM
PSProvider          : Microsoft.PowerShell.Core\Registry
DevicePath          : C:\WINDOWS\inf
MediaPathUnexpanded : C:\WINDOWS\Media
ProgramFilesDir     : C:\Program Files
CommonFilesDir      : C:\Program Files\Common Files
ProductId           : 76487-338-1167776-22465
WallPaperDir        : C:\WINDOWS\Web\Wallpaper
MediaPath           : C:\WINDOWS\Media
ProgramFilesPath    : C:\Program Files
PF_AccessoriesName  : Accessories
(default)           :

De Windows PowerShell-gerelateerde eigenschappen voor de sleutel, worden alle voorafgegaan door 'PS', zoals PSPath, PSParentPath, PSChildName, en PSProvider .The Windows PowerShell-related properties for the key are all prefixed with "PS", such as PSPath, PSParentPath, PSChildName, and PSProvider.

U kunt de '.' notatie voor het verwijzen naar de huidige locatie.You can use the "." notation for referring to the current location. U kunt Set-Location te wijzigen in de CurrentVersion register container eerste:You can use Set-Location to change to the CurrentVersion registry container first:

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

U kunt ook kunt u de ingebouwde HKLM PSDrive met locatie instellen:Alternatively, you can use the built-in HKLM PSDrive with Set-Location:

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

Vervolgens kunt u de '.' notatie voor de huidige locatie voor het weergeven van de eigenschappen zonder op te geven van een volledig pad:You can then use the "." notation for the current location to list the properties without specifying a full path:

PS> Get-ItemProperty -Path .
...
DevicePath          : C:\WINDOWS\inf
MediaPathUnexpanded : C:\WINDOWS\Media
ProgramFilesDir     : C:\Program Files
...

Pad uitbreiding werkt hetzelfde als binnen het bestandssysteem, zodat u vanaf deze locatie downloaden kunt de ItemProperty weergeven voor HKLM:\SOFTWARE\Microsoft\Windows \Help met behulp van Get ItemProperty-pad... \Help.Path expansion works the same as it does within the file system, so from this location you can get the ItemProperty listing for HKLM:\SOFTWARE\Microsoft\Windows\Help by using Get-ItemProperty -Path ..\Help.

Ophalen van een enkele registervermeldingGetting a Single Registry Entry

Als u ophalen van een bepaald item in een registersleutel wilt, kunt u een van de verschillende mogelijke manieren.If you want to retrieve a specific entry in a registry key, you can use one of several possible approaches. In dit voorbeeld wordt de waarde van DevicePath in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.This example finds the value of DevicePath in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion.

Met behulp van Get ItemProperty, gebruiken de pad parameter om de naam van de sleutel en de naam parameter om de naam van de DevicePath vermelding.Using Get-ItemProperty, use the Path parameter to specify the name of the key, and the Name parameter to specify the name of the DevicePath entry.

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

PSPath       : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\
               Microsoft\Windows\CurrentVersion
PSParentPath : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\
               Microsoft\Windows
PSChildName  : CurrentVersion
PSDrive      : HKLM
PSProvider   : Microsoft.PowerShell.Core\Registry
DevicePath   : C:\WINDOWS\inf

Met deze opdracht retourneert de standaardeigenschappen in de Windows PowerShell, evenals de DevicePath eigenschap.This command returns the standard Windows PowerShell properties as well as the DevicePath property.

Notitie

Hoewel Get ItemProperty heeft Filter, opnemen, en uitsluiten parameters, ze filteren op naam van eigenschap kunnen niet worden gebruikt.Although Get-ItemProperty has Filter, Include, and Exclude parameters, they cannot be used to filter by property name. Deze parameters verwijzen naar registersleutels: die item paden zijn, en niet de registervermeldingen: welke eigenschappen van het item zijn.These parameters refer to registry keys—which are item paths—and not registry entries—which are item properties.

Er is een andere optie het Reg.exe vanaf de opdrachtregel-hulpprogramma te gebruiken.Another option is to use the Reg.exe command line tool. Typ voor help met reg.exe reg.exe /?For help with reg.exe, type reg.exe /? bij een opdrachtprompt.at a command prompt. Ga voor de vermelding DevicePath reg.exe te gebruiken zoals wordt weergegeven in de volgende opdracht:To find the DevicePath entry, use reg.exe as shown in the following command:

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

! REG.EXE VERSION 3.0

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
    DevicePath  REG_EXPAND_SZ   %SystemRoot%\inf

U kunt ook de WshShell COM object ook te vinden van sommige registervermeldingen, hoewel deze methode niet werkt met grote binaire gegevens of met de namen van de Register-vermeldingen die tekens zoals bevatten '\').You can also use the WshShell COM object as well to find some registry entries, although this method does not work with large binary data or with registry entry names that include characters such as "\"). Naam van de eigenschap toevoegen aan het pad van het item met een \ scheidingsteken:Append the property name to the item path with a \ separator:

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

Maken van nieuwe registervermeldingenCreating New Registry Entries

Een nieuwe vermelding met de naam 'PowerShellPath' toevoegen aan de CurrentVersion , sleutelgebruik nieuw ItemProperty met het pad naar de sleutel, naam van de vermelding en de waarde van het item.To add a new entry named "PowerShellPath" to the CurrentVersion key, use New-ItemProperty with the path to the key, the entry name, and the value of the entry. In dit voorbeeld wordt de waarde van de Windows PowerShell-variabele duurt $PSHome, waarin het pad naar de installatiemap voor Windows PowerShell wordt opgeslagen.For this example, we will take the value of the Windows PowerShell variable $PSHome, which stores the path to the installation directory for Windows PowerShell.

U kunt de nieuwe invoer toevoegen aan de sleutel met behulp van de volgende opdracht en de opdracht ook retourneert informatie over de nieuwe invoer:You can add the new entry to the key by using the following command, and the command also returns information about the new entry:

PS> New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -PropertyType String -Value $PSHome

PSPath         : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWAR
                 E\Microsoft\Windows\CurrentVersion
PSParentPath   : Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\SOFTWAR
                 E\Microsoft\Windows
PSChildName    : CurrentVersion
PSDrive        : HKLM
PSProvider     : Microsoft.PowerShell.Core\Registry
PowerShellPath : C:\Program Files\Windows PowerShell\v1.0

De PropertyType moet de naam van een Microsoft.Win32.RegistryValueKind opsommingslid uit de volgende tabel:The PropertyType must be the name of a Microsoft.Win32.RegistryValueKind enumeration member from the following table:

Het eigenschapstype waardePropertyType Value BetekenisMeaning
BinairBinary Binaire gegevensBinary data
DWordDWord Een getal dat een geldig UInt32A number that is a valid UInt32
ExpandStringExpandString Een tekenreeks met omgevingsvariabelen die dynamisch worden uitgebreidA string that can contain environment variables that are dynamically expanded
MultiStringMultiString Een tekenreeks met meerdere regelsA multiline string
TekenreeksString Waarde van een tekenreeksAny string value
QWordQWord 8 bytes met binaire gegevens8 bytes of binary data

Notitie

U kunt een registervermelding naar meerdere locaties toevoegen door te geven van een matrix met waarden voor de pad parameter:You can add a registry entry to multiple locations by specifying an array of values for the Path parameter:

New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion, HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath -PropertyType String -Value $PSHome

U kunt ook de waarde van een bestaande registervermelding overschrijven door toe te voegen de Force parameter aan een nieuw ItemProperty opdracht.You can also overwrite a pre-existing registry entry value by adding the Force parameter to any New-ItemProperty command.

Registervermeldingen wijzigenRenaming Registry Entries

Naam wijzigen van de PowerShellPath vermelding 'PSHome', gebruik Rename ItemProperty:To rename the PowerShellPath entry to "PSHome," use Rename-ItemProperty:

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

Voeg de nieuwe naam als waarde wilt weergeven, de PassThru -parameter voor de opdracht.To display the renamed value, add the PassThru parameter to the command.

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

Registervermeldingen verwijderenDeleting Registry Entries

Gebruik voor het verwijderen van de PSHome en de PowerShellPath registervermeldingen verwijderen ItemProperty:To delete both the PSHome and PowerShellPath registry entries, use Remove-ItemProperty:

Remove-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PSHome
Remove-ItemProperty -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion -Name PowerShellPath