Nyttige kommandoer - Registeret
Verktøyet regedit.exe er det verktøyet man vanligvis benytter for å redigere registeret. Dette er et grafisk verktøy, men det tar en .reg-fil som parameter for å automatisk legge en nøkkel inn.
Vær oppmerksom på at noen registernøkler bare leses ved oppstart eller innlogging. Selv om registerendringer trer i kraft med en gang så er det ikke sikkert at du opplever endringen før etter en ny innlogging eller omstart av systemet. Vi minner også om at endringer i registeret kan medfører alvorlige problemer.
Dersom du har en .reg-fil fra internett (husk å høyreklikke disse og velg Edit først så du ser hva den gjør) eller fra en kollega, så kan du legge den inn med parameteren /s for å slippe bekreftelsen.
Merk at registerendringer som blir lagt inn på denne måten kalles for tatovering av maskinen. I motsetning til Group Policy lar ikke disse verdiene seg fjerne uten manuelt arbeid eller tilsvarende skript. Eksisterende nøkler og verdier blir overskrevet uten varsel.
Et annet verktøy du kan bruke er reg.exe i %SystemRoot%\System32
Verktøyet reg støtter følgende parametere:
REG add - legger til verdi eller nøkkel
REG delete - sletter verdi eller nøkkel
REG query - lister opp verdien av verdi eller nøkkel
REG compare - sammenligner verdier eller nøkler
REG copy - kopierer en registernøkkel til en annen plassering
REG restore - leser en fil for registernøkler og verdier og skriver disse til registered (tilsvarer omtrent regedit /s)
REG save - skriver nøkler, verdier og undernøkler til en fil
Før du bruker disse kommandoene er det en fordel å kjenne litt til registerets oppbygning. Registeret er delt opp i et sett hovedhierarkier:
Hierarki | Navn | Beskrivelse |
HKEY_CURRENT_USER | HKCU | Inneholder konfigurasjonsoppsett for gjeldende bruker. |
HKEY_LOCAL_MACHINE | HKLM | Inneholder oppsett for maskinen. |
HKEY_CLASSES_ROOT | HKCR | Inneholder applikasjonskonfigurasjoner |
HKEY_USERS | HKU | Default User sin konfigurasjon samt undermapper pr bruker |
HKEY_CURRENT_CONFIG | HKCC | Informasjon om hardware i maskinen. |
REG bruker disse kortnavnene for å snakke med registeret. I tillegg bruker registeret et sett med datatyper:
Type | Verdi-eksempel | Beskrivelse |
REG_BINARY | 01 00 14 80 90 00 00 9C 00 | Binære verdier skrives hexidesimalt. |
REG_SZ | C:\Windows\Web\Wallpaper\Windows Server 2003.bmp Microsoft Silverlight | Strenger, tekst og tall |
REG_DWORD | 0x00000002 | Hexidesimal verdi opptil 4 byte |
REG_MULTI_SZ | C:\Files\Win2003\CD1\i386 \\server\app$\os\winsrv\cd1\i386 D:\i386 | Flere tekststrenger |
REG_EXPAND_SZ | %Systemroot%\dns.exe | Ekspanderende strenger, for eksempel variabler. |
Eksempler på bruk av kommandoerSpørring:
C:\> reg query HKCU\Control Panel\Desktop
Lister alle verdier under HKEY_CURRENT_USER\Control Panel\Desktop
C:\> reg query HKCU\Control Panel\Desktop /V Wallpaper
Lister verdien av Wallpaper i banen HKEY_CURRENT_USER\Control Panel\Desktop
C:\> reg query \\server01\HKLM\Software\Microsoft\Windows\CurrentVersion\Run
Lister opp alt som kjører automatisk når maskinen starter på en maskin med navn \\server01.
OBS! Kun HKLM og HKU er tilgengelig eksternt.
Sammenligning:
C:\> reg compare HKLM\Software\Microsoft\Windows\CurrentVersion\Run \\server01\HKLM\Software\Microsoft\Windows\CurrentVersion\Run
(OBS! På en linje) Sammenligner programmer og tjenester som automatisk kjører mellom maskinen du kjører den fra og tilsvarende nøkkel på en maskin med navnet \\server01. Dette verktøyet returnerer koder avhengig av hvordan operasjonen gikk i tillegg til data på skjermen. Du kan bruke disse verdiene i et skript som først kjører verkøyet og så utfører forskjellige handlinger basert på resultatet. For å evaluere resultatet bruker du ERRORLEVEL sammen med IF.
Eksempel:
Om du legger denne koden i en fil sjekk-run.cmd (OBS! reg compare-setningen i en sammenhengende linje. IF
er neste linje) og kaller den opp som følger:
C:\>Sjekk-run.cmd \\server01
+++
@echo off
reg compare HKLM\Software\Microsoft\Windows\CurrentVersion\Run %1 HKLM\Software\Microsoft\Windows\CurrentVersion\Run
IF ERRORLEVEL 0 GOTO AltOK
IF ERRORLEVEL 1 GOTO OperasjonFeilet
IF ERRORLEVEL 2 GOTO ForskjellOppdaget
:AltOK
Echo Verdiene er like.
GOTO Avslutt
:OperasjonFeilet
Echo Det oppstod et problem. Testen ble ikke utført.
GOTO Avslutt
:ForskjellOppdaget
Echo Det er forskjell på maskinene!
Call reparer.cmd %1
GOTO Avslutt
:Avslutt
+++
Lagre registernøkler til fil
reg save \\server01\HKLM\SYSTEM\CurrentControlSet\Services\DNS
"\\server02\Registerfiler\DNS.hiv"
Gjenopprette registernøkler fra fil
reg restore HKLM\SYSTEM\CurrentControlSet\Services\DNS "DNS.hiv"