registry scripting -...

25
Registry Scripting by m4rk0 copyright by m4rk0, http://tutoriali.org/

Upload: others

Post on 18-Sep-2019

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

Registry Scripting

by m4rk0

copyright by m4rk0, http://tutoriali.org/

Page 2: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

Registry Scripting

0. Uvod

1. Instaliranje INF fajlova

2. Dodavanje i brisanje kljuceva i valuesa

2a. Dodavanje kljuceva i valuesa

2b. Brisanje kljuceva i valuesa

2c. Upotreba stringova u INF fajlovima

2e. Postavljanje i brisanje bitova (bits)

3. Kreiranje reg fajlova za popravku kljuceva

3a. Rucno kreiranje REG fajlova

3b. Brisanje kljuceva upotrebom REG fajla

4. Editovanje redzistrija putem komandne kozole (batch scriptingom)

4a. Dodavanje kljuceva

4b. Queryng kljuceva

4c. Brisanje kljuceva i valuesa

4d. Uporedjivanje kljuceva i valuesa

4e. Kopiranje kljuceva i valuesa

4f. Exportovanje kljuceva u vidu REG fajlova

4g. Importovanje REG fajlova

4h. Sacuvanje kljuceva u vidu Hive fajlova

4i. Restoring Hive fajlova u kljuceve

4j. Loading i unloading Hive fajlova

Page 3: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

Scripting donosi brojne pogodnosti. Pomocu jedne skripte mozete izvrsiti automatizovanu

promenu veceg broja podesavanja odjednom. Skriptu mozete testirati, pre nego sto je

uopste primenite. Samu skriptu mozete editovati i apdejtovati i samim tim usavrsavati ili

pojednostaviti zadatak koji treba da izvrsi. Prosto receno, nakon sto ste napravili skriptu,

ona ce automatski odraditi sve sto treba umesto vas.

Postoji 5 scripting metoda:

- Instaliranje INF fajlova

- Kreiranje reg fajlova za popravku kljuceva

- Editovanje redzistrija putem komandne kozole (batch scriptingom)

- Upotreba Windows Script Hosta

- Kreiranje windows instalera

1. Instaliranje INF fajlova

INF fahlovi – information files (.inf). Windows API upotrebljava INF fajlove za instalaciju

skripti. Inf fajlove otvarate preko bilo kojeg txt editora a gomilu inf fajlova mozete videti u

C:\WINDOWS\inf

Preko Inf fajlova mozete raditi sledece:

- kopirati/editovati/brisati fajlove

- kopirati/editovati/brisati registry kljuceve

- instalirati i startovati servise

U ovim fajlovima nalaze se posebne komande za akcije koje su zasluzne za instalaciju

vecine aplikacija i drajvera.

Sad cemo da se pozabavimo izgledom tj strukturom inf fajlova. Kada otvorimo inf fajl, on

sadrzi sledece:

Kod:

[Naziv_sekcije]

Naziv=Vrednost

0. Uvod

Page 4: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

I tako nekoliko Sekcija sa jednom ili vise Naziv=Vrednost komponenti u svakoj od sekcija.

Inf fajl editujete uz pomoc Notepad-a, a inf fajl kreirate tako sto sacuvate komande u

Notepadu i date naziv imefajla.inf , znaci bitna je inf extenzija. Instalacija inf fajlova je

jednostavna: desni klik na inf fajl i install. To je manuelno instaliranje. Postoji drugi nacin

instaliranja inf fajlova a to je putem command prompta, primer

rundll32.exe setupapi , InstallHinfSection DefaultInstall 132 imefajla.inf

Evo jednog inf fajla koji cemo uzeti kao primer a nazvacemo ga primer.inf

Kod:

[Version]

Signature="$CHICAGO$"

[DefaultInstall]

AddReg=Add.Settings

DelReg=Del.Settings

[Add.Settings]

HKCR,regfile\shell,,0,"edit"

[Del.Settings]

HKCU,Software\Microsoft\Windows\CurrentVersion\Applets\Regedit

Prva sekcija koju vidimo naziva se [Version] i ona je esencijalna sekcija svakog inf fajla.

U okviru nje se nalazi Signature komponenta koja oznacava da je u pitanju validan inf fajl.

"$CHICAGO$" je bio m$-ov “code name” za win 95 sto na kraju znaci da

Signature="$CHICAGO$" identifikuje fajl kao validan Windows 95 INF fajl. U sadasnjosti,

Page 5: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

$CHICAGO$ ukazuje na to da je INF fajl kompatibilan sa svim verzijama Windowsa.

Sledeca sekcija je [DefaultInstall] i ona omogucava onu opciju Install (kada uradite desni

klik na inf fajl). Precica do ove sekcije je ona rundll32.exe komanda koju sam spomenuo u

gornjem delu ovog teksta. Ta komanda izvrsava API (u Setupapi.dll) pod nazivom

InstallHinfSection.

Sledeca komponenta je DefaultInstall i to je naziv sekcije koja treba da se izvrsi (instalira).

Zatim sledi komponenta 132 ukazuje API-u da po potrebi obavesti korisnika pre restarta

sistema.

I na kraju imefajla.inf predstavlja naziv inf fajla koji treba da se instalira.

Da nastavimo sa [DefaultInstall] sekcijom. Kao sto vidimo, u okviru ove sekcije se nalaze

dve komande AddReg i DelReg. Konkretno komanda AddReg=Add.Settings dodaje

podesavanja koja se nalaze u sekciji [Add.Settings] , dok komanda DelReg=Del.Settings

brise podesavanja koja se nalaze u sekciji [Del.Settings]

Mozete da vezbate pravljenje inf fajla. Ono gore je primer sa google-a, a evo jedan moj

logican primer:

stopnod32.inf

Kod:

[Version]

Signature="$CHICAGO$"

[DefaultInstall]

DelReg=Brisi.Podesavanja

[Brisi.Podesavanja]

HKLM, Software \Microsoft\Windows\CurrentVersion\Run\nod32kui

Page 6: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

2a. Dodavanje kljuceva i valuesa

AddReg naredba u [DefaultInstall] sekciji oznacava nazive sekcija koje sadrze podatke koje

zelite da dodate redzistriju. Te sekcije se jednim imenom zovu [add-registry-section]

sekcije. Mozete: dodavati nove kljuceve, postavljati defaultne valuese, kreirati nove valuese

ili ispravljati postojece valuese koristeci [add-registry-section] sekciju. Svaka sekcija moze

sadrzati visestruke unose. Svaki [add-registry-section] naziv mora biti unikatan u INF fajlu.

root key – root kljuc:

Ovde koristite skracenice: HKCR, HKCU, HKLM ili HKU

subkey - podkljuc:

On ide opcionalno i ako ga nema, sve operacije su direktno na root kljucu

value:

Ova sintaksa je takodje opcionalna i ukoliko je izostavljena, a flags i data parametri su

zadati, operacije su na defaultnom valuesu kljuca. A ako nedostaju i value i flags i data, u

tom slucaju dodajete subkey.

flags:

0x00000000. Value je REG_SZ. Ovo je default ukoliko su flags izostavljeni.

0x00000001 Value je REG_BINARY

0x00010000 Value je REG_MULTI_SZ

0x00020000 Value je REG_EXPAND_SZ

0x00010001 Value je REG_DWORD

0x00020001 Value je REG_NONE

0x00000002 Ne vrsi overwrite postojecih kljuceva i valuesa.

2. Dodavanje i brisanje kljuceva i valuesa

Page 7: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

0x00000004 Brise podkljuceve iz redzistrija ili value iz podkljuca.

0x00000008 Pripaja data sa value. Ovaj flag je validan samo u slucaju da je value

REG_MULTI_SZ. String data se ne pripaja ukoliko vec postoji.

0x00000010 Kreira podkljuc ali ignorise value i data ukoliko je zadata.

0x00000020 Postavlja value jedino ukoliko vec postoji,

0x00001000 Vrsi promene u 64-bit redzistriju. Ukoliko nije zadata, promene se vrse na

„normalnom“ redzistriju.

0x00004000 Vrsi promene u 32-bit redzistriju. Ukoliko nije zadata, promene se vrse na

„normalnom“ redzistriju.

data: Podatak iskljucivo za upisivanje valuesa. Ako value ne postoji, API ce ga kreirati, a ako

postoji onda ce API izvrsiti overwrite. Ako je value REG_MULTI_SZ a vi stavite 0x00010008

flag, API ce dodati value u postojecu string listu. Ukoliko je data izostavljena, API ce kreirati

value bez njenog postavljanja. Primer:

Kod:

[Version]

Signature="$CHICAGO$"

[DefaultInstall]

AddReg=Add.Settings

[Reg.Settings]

; Postavlja defaultni value od HCKU\Software\Sample

HCKU,Software\Sample,,,”Default”

; Kreira REG_SZ value pod nazivom Sample

HKCU,Software\Sample,String,0x00000,”String”

; Kreira REG_BINARY value pod nazivom Binary

HKCU,Software\Sample, Binary,0x00001,00,01,30,05

; Kreira REG_MULTI_SZ value pod nazivom Multisz

Page 8: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

HKCU,Software\Sample,Multisz,0x10000,”String list”

; Kreira REG_DWORD value pod nazivom Dword

HKCU,Software\Sample,Dword,0x10001,0x01010102

; Kreira REG_SZ value pod nazivom Cao

HKCU,Software\Sample,Cao,,”Devojke”

; Kreira REG_DWORD value i postavlja ga 0x0000 flagu.

HKCU,Software\Sample,Nista,0x10001

2b. Brisanje kljuceva i valuesa

DelReg naredba u [DefaultInstall] sekciji oznacava nazive sekcija koje sadrze podatke koje

zelite da uklonite iz redzistrija. Te sekcije se jednim imenom zovu [del-registry-section]

sekcije. Znatno su jednostavnije od [add-registry-section] sekcija, ali imaju slicna pravila:

svaka sekcija moze sadrzati visestruke unose i naziv svake sekcije mora biti unikatan.

rootkey i subkey:

pravila ista kao i kod dodavanja kljuceva

value:

Naziv vrednosti koja se brise. Ova vrednost je opcionalna i ukoliko value nedostaje, vrsi se

brisanje podkljuca.

flags:

0x00002000 Brise celokupan podkljuc

0x00004000 Vrsi promene u 32-bit redzistriju. Ukoliko nije zadata, promene se vrse na

„normalnom“ redzistriju

0x00018002 Ukoliko je value REG_MULTI_SZ, uklanja sve stringove koji obuhvataju string

oznacen data-om

Page 9: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

data:

Upotrebljava se samo kada je value 0x00018002

Primer:

Kod:

[Version]

Signature="$CHICAGO$"

[DefaultInstall]

DelReg=Reg.Settings

[Reg.Settings]

; Uklanja kljuc: HKCU\Software\Sample

HKCU,Software\Sample

; Uklanja value Cao iz HKCU\Software\Sample

HKCU,Software\Sample,Cao

; Uklanja string "Devojke" iz REG_MULTI_SZ valuesa Cao

HKCU,Software\Sample,Cao,0x00018002,"Devojke"

2c. Postavljanje i brisanje bitova (bits)

BitReg je ekvivalentno AddReg komandi. Znaci, dodaje se [DefaultInstall] sekciji i

oznacava nazive sekcija koje sadrze bitove koje zelite da postavite ili izbrisete. Te sekcije se

jednim imenom zovu [bit-registry-section] sekcije. koristite BitReg komandu kada radite

sa bit maskama u redzistriju. Razlike izmedju [bit-registry-section] i [add-registry-section]

sekcija su sledece:

Parametar “value” nije opcionalan. Parametri “mask” i “byte” zamenjuju value “data”.

Parametar “mask” je 8 bita dugacak i oznacava bit koji zelite da eneblujete ili diseblujete,

Page 10: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

dok parameter “byte” oznacava bajt u binarnom valuesu koji menjate. Oznacava bajtove s

leva na desno krecuci od nule.

Sada cemo razmotriti odnos izmedju ove tri komponente koje sam pomenuo a to su: value,

mask i byte. Maskiracemo REG_DWORD value smesten u redzistriju u reverse-byte obliku:

0x0180c000. Kad stavimo masku u bajt 0, rezultat ce biti 0x0180c080. Ako obrisemo masku

u bajtu 1, rezultat ce biti 0x0140c080

Na sledecoj slici parameter “byte” oznacava kojem broju bajta zelimo postaviti masku.

rootkey i subkey:

pravila ista kao i kod dodavanja kljuceva

value:

Naziv vrednosti koja se edituje. Ova vrednost nije opcionalna i treba da bude REG_DWORD

ili REG_BINARY value.

flags:

0x00000000 Brise bitove zadate mask-om

0x00000001 Postavlja bitove zadate mask-om

0x00040000 Vrsi promene u 32-bit redzistriju. Ukoliko nije zadata, promene se vrse na

„normalnom“ redzistriju

Page 11: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

mask:

Maska koja postavlja ili uklanja bite u odredjenim bajtima i valuesima. Navodi se u

heksadecimalnom zapisu. Bitovi koji su 1 ce biti postavljeni ili uklonjeni (zavisno od flagsa) ,

a bitovi koji su 0 ce bice ignorisani.

byte:

Oznacava bajt u veluesu za koji zelimo da primenimo mask. Krajnji levi bajt je 0, a sledeci je

1 i tako redom. Imajte na umu da Windows smesta REG_DWORD valuese u reverse-byte

obliku kada odredjujemo bajt na koji zelimo da primenimo mask. Prema tome, u

REG_DWORD valuesu, krajnji levi bajt je smesten na prvom mestu u memoriji.

Primer:

Kod:

[Version]

Signature="$CHICAGO$"

[DefaultInstall]

BitReg=Bit.Settings

[Bit.Settings]

; Menja 50,00,10,00 u 31,00,10,00

HKCU,Software\Sample,Mask,0x0001,0x01,0

; Menja 50,00,F0,00 u 30,00,70,00

HKU,Software\Sample,Mask,0x0000,0x80,2

2e. Upotreba stringova u INF fajlovima

Ovo se vrsi upotrebom [Strings] sekcije. Svaka linija u ovoj sekciji je string u formatu

ime=”string”. Takav string mozete koristiti bilo gde u INF fajlu isticuci ga kao %ime%

Page 12: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

Karakteristike [Strings] sekcije:

- Sakuplja stringove na dno INF fajla tako da ga mozete videti na jednom mestu

- Omogucava vam da unesete string jedanput i da onda koristite taj string na brojnim

mestima

- Omogucava lakse prevodjenje INF fajlova jer su stringovi na dnu INF fajla.

Kod:

[Version]

Signature="$CHICAGO$"

[DefaultInstall]

BitReg=Bit.Set

AddReg=Add.Settings

DelReg=Del.Settings

[Add.Settings]

HKCU,%HK_Desktop%,ActiveWndTrkTimeout,0x10001x1000

HKLM,%HK_Setup%,RegisteredOwner..%OWNER%

[Del.Settings]

HKCU,%HK_EXPLORER%\MenuOrder

HKCU,%HK_EXPLORER%\RunMRU

HKCU,%HK_EXPLORER%\RecentDocs

HKCU,%HK_EXPLORER%\ComDlg32\LastvisitedMRU

HKCU.%HK_SEARCH%\ACMru

HKCU,%HK_INTERNET%\TypedURLs

[Bits.Set]

HKCU,%HK_Desktop%,UserPreferencesMask,1,0x01,0

HKCU,%HK_Desktop%,UserPreferencesMask,1,0x40,0

[Strings]

Page 13: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

HK_Desktop="Control Panel\Desktop"

HK_EXPLORER="Software\Microsoft\Windows\CurrentVersion\Explore"

HK_SEARCH="Software\Microsoft\Search Assistant"

HK_INTERNET="Software\Microsoft\Internet Explorer"

HK_SETUP="Software\Microsoft\Windows NT\CurrentVersion"

OWNER="Doktor Marko"

3. Kreiranje reg fajlova za popravku kljuceva

Registry fajl je ekvivalentan .inf fajlu i struktura mu je gotovo identicna, s tim da registry fajl

ima extenziju .reg . REG fajl dodajemo na dva nacina: dvoklikom ( u tom slucaju nas sistem

pita za potvrdu) i preko command prompta kucanjem komande regedit /s nazivfajla.reg i

na taj nacin dodajemo REG fajl bez smaranja od strane sistema. REG fajl editujemo

jednostavno, desni klik->edit. Regedit podrzava dva formata: REG fajlove i ANSI.

ANSI encoding karaktera koristi jedan bajt da predstavi svaki karakter. Regedit koristi

ANSI za ispisivanje REG_EXPAND_SZ i REG_MULTI_SZ stringova REG fajlovima , tako da je

svaki karakter ustvari jedan bajt. Version 5 REG fajlovi su Unicode. Unicode encoding

karaktera koristi dva bajta za svaki karakter i kada kreirate Unicode REG fajl, Regedit koristi

dvobajtnu Unicode encoding semu za ispisivanje REG_EXPAND_SZ i REG_MULTI_SZ

stringova REG fajlu.

Kod:

Windows Registry editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]

“ActiveWndTrkTimeout”=dword:00000000

“ForegroundFlashCount”=dword:00000003

“ForegroundLockTimeout”=dword:00030d40

“MenuShowDelay”=dword:”400”

Page 14: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

“PaintDesktopVersion”:00000000

“UserPreferencesMask”:hex:9e,3e,07,80

[HKEY_CURRENT_USER\Control Panel\Desktop\WindowMetrics]

“Shell Icon BPP”=”16”

“Shell Icon Size”=”32”

“MinAnimate’=”1”

[HKEY_CURRENT_USER\Control Panel\Mouse]

@=”Mis”

“ActiveWindowTracking”=dword:00000000

“DoubleClickHeight”=”4”

“DoubleClickSpeed”=”500”

“DoubleClickWidth”=”4”

“MouseSensitivity”=”10”

“MouseSpeed”=”1”

“MouseThreshold1”=”6”

“MouseThreshold2”=”10”

“SnapToDefaultButton”=”0”

“SwapMouseButtons”=”0”

Sad cu redom da objasnim sta je sta u ovom gronjem primeru.

Windows Registry editor Version 5.00 oznacava da je u pitanju verzija 5 Unicode REG

fajla. Gornji primer predstavlja importovanje podesavanja u tri kljuca: HKCU\Control

Panel\Desktop , HKCU\Control Panel\Desktop\WindowMetrics i HCU\ Control

Panel\Mouse. Ta tri kljuca predstavljaju posebne sekcije, i u svakoj od njih se nalaze valuesi

ciji je format “ime“=value . Oznaka @ predstavlja defaultnu vrednost kljuca. Odredjeni

valuesi sadrze dword i hex , dok su ostali pod navodnicima i takvi valuesi se nazivaju

stringovi . Valuesi u hex:values formatu su REG_BINARY valuesi, a valuesi u dword:values

formatu su REG_DWORD valuesi.

Page 15: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

3a. Rucno kreiranje REG fajlova

Otvorite Notepad i na vrhu stavite Windows Registry editor Version 5.00. Za svaki kljuc u

koji zelite da importujete valuese, dodajte sekciju u formatu [kljuc] gde je kljuc naziv

kljuca. Nemojte koristiti skracenice za root kljuceve vec pune nazive tipa:

HKEY_CURENT_USER . Za svaki values koji zelite da importujete u redzistri, dodajte values

u formatu “ime”=value u odgovarajucu sekciju. Koristite @ za defaultnu vrednost kljuca.

Mozete koristiti i obrnutu kosu crtu (backslash) (\) da biste nastavili bilo koji unos sa jednog

reda na drugi. Kada ste iskuckali reg fajl, idite na File->Save As i sacuvajte fajl npod

naizvom imefajla.reg (id a naravno, .reg extenzija se mora nalaziti na kraju).

Formati Valuesa u REG fajlovima:

3.b Brisanje kljuceva upotrebom REG fajla

Ne mozete koristiti REG fajl da bi uklanjali pojedinacne valuese iz redzistrija, vec da bi

uklanjali citave kljuceve. Da biste to uradili, jednostavno stavite znak minus (-) ispred naziva

kljuca tj: [-kljuc]. Evo na pr REG fajl koji ce ukloniti kljuc HKCU\Software\MarkoLegenda

Kod:

Windows Registry editor Version 5.00

Page 16: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

[-HKCU\Software\MarkoLegenda]

Ipak je dosta prakticnije da vi lepo exportujete kluc u obliku REG fajla, otvorite ga i rucno

editujete tj maknete kljuceve i valuese iz njega koje zelite da ostanu netaknuti (tj koje ne

zelite ukloniti principom brisanja objasnjenog u gornjem primeru). Nakon toga dodajte

znak minus ispred naziva kljuca koji zelite izbrisati.

4. Editovanje redzistrija putem komandne kozole (batch scriptingom)

Registry kljucevi i valuesi se mogu editovati i uz pomoc Command Prompta.

Evo primera batch fajla koji vrsi instaliranje MS Office 2003 (naravno, ukoliko se vec ne

nalazi na sistemu). Nakon instaliranja Officea

Kod:

\\Camelot\Office\Setup.exe /settings setup.ini

batch fajl dodaje REG_DWORD value Flag , HKCU\Software\Primer valuesu

Kod:

Reg add HKCU\Software\Primer /v Flag /t REG_Dword /d “1”

Batch fajl ce uvek izvrsiti proveru da li su na sistemu vec prisutni doticni valuesi i ako jesu

onda ce preskociti instalaciju, sto znaci da batch fajlovi instaliraju aplikaciju samo jedanput.

Batch fajl proverava postojanje office 2003 na vasem sistemu komandom:

Kod:

Req QUERY HKCU\Software\Microsoft\Office\11.0 >nul

Primer:

Kod:

@Echo off

Page 17: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

Reg QUERY HKCU\Software\Primer /v Flag >nul

goto %ERRORLEVEL%

:1

Echo Instaliranje softvera

\\Camelot\Office\Setup.exe /settings setup.ini

Reg add HKCU\Software\Primer /v Flag /t REG_Dword /d “1”

goto CONTINUE

:0

Echo Softver je vec instaliran, ova sekcija se preskace.

:CONTINUE

Set HKMS=HKCU\Software\Microsoft

Set HKCV=HKCU\Softawre\Microsoft\Windows\CurrentVersion

REM Obrisi history listu

Reg DELETE %HKCV%\Explorer\MenuOrder /f

Reg DELETE %HKCV%\Explorer\RunMRU /f

Reg DELETE %HKCV%\Explorer\RecentDocs /f

Reg DELETE %HKCV%\Explorer\ComDlg32\LastVisitedMRU

Reg DELETE “%HKMS%\Search Assistant\ACMru” /f

Reg DELETE “%HKMS%\Internet Explorer\TypedUrls” /f

Komande koje ovde srecemo izmedju ostalog su i: Reg, Set, ADD, QUERY i DELETE (a sve

moguce komande mozete dobiti kada u cmd unesete komandu reg /. )

Page 18: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

Opcije su nazivi valuesa, kljuceva i podataka. Kao sto gore vidimo neke komande su i pod

navodnicima, a to je zato sto u svom nazivu sadrze razmak.

4.a Dodavanje kljuceva:

Kljuceve dodajemo komandom ADD

Sintaksa:

REG ADD [\\computer\]key [/v value | /ve] [/t type] [/s separator] [/d data] [/f]

primer:

Kod:

REG ADD \\m4rk0\HKLM\Software\MarkoLegenda

REG ADD HKLM\Software\MarkoLegenda /v Data /t REG_BINARY /d CFEF0BC

REG ADD HKLM\Software\MarkoLegenda /v List /t REG_MULTI_SZ /d

Cao\0Devojke

REG ADD HKLM\Software\MarkoLegenda /v Path /t REG_EXPAND_SZ

%%SYSTEMROOT%%

Page 19: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

Jos da napomenem da se kod reg.exe komandne linije moraju koristiti dva znaka

„procenat“ tj. (%%) jer u slucaju da koristimo samo jedan, uslovna varijabla ce se razviti pre

pokretanja komande.

4.b Queryng kljuceva:

Komanda QUERY radi na tri nacina:

- Moze da prikaze podatke u specificnom valuesu

- Moze da prikaze sve valuese unutar kljuca.

- Moze da izlista sve podkljuceve i valuese unutar kljuca, dodavanjem [/b]/s[/b] switcha.

Primer

Kod:

REG QUERY HKLM\Software\Microsoft\Windows\CurrentVersion /s

REG QUERY HKLM\Software\Microsoft\Windows NT\CurrentVersion /v

CurrentVersion

Redzistry postavlja ERRORLEVEL na 0 ako je komanda uspela, a ako nije uspela onda je

vrednost 1.

4.c Brisanje kljuceva i valuesa

Page 20: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

Za brisanje kljuceva i valuesa koristite komandu DELETE.

REG DELETE [\\computer\]key [/v value | /ve | /va] [/f]

primer:

Kod:

REG DELETE \\m4rk0\HKLM\Software\MarkoLegenda

REG DELETE HKLM\Software\MarkoLegenda /v Data /f

REG DELETE HKLM\Software\MarkoLegenda /va

4.d Uporedjivanje kljuceva i valuesa

Koristite komandu COMPARE za uporedjivanje dva registry kljuca. Ti kljucevi mogu biti na

istom ili razlicitim racunarima.

Redzistri postavlja ERRORLEVEL prema rezultatima uporedjivanja i mozete upotrebiti taj

rezultat u vasem batch fajlu za izvrsavanje razlicitih kodova, bilo da su dva kljuca/valuesa

ista ili ralzicita, bez prikazivanja bilo kakvog rezultata.

Evo znacenja ERRORLEVEL komande:

Page 21: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

0. Komanda je uspesna, i kljucevi ili valuesi su identicni

1. Komanda je neuspesna

2. Komanda je uspesna, i kljucevi ili valuesi su razliciti.

REG COMPARE [\\computer1\]key1 [\\computer2\]key2 [/v value | /ve] [/oa|/od|/os|/on] [/s]

Primer:

Kod:

REG COMPARE HKCR\txtfile HKCR \txtfile HKR\docfile /ve

REG COMPARE \\Marko1\HKCR \\Marko2\HKCR /od /s

REG COMPARE HKCU\Software \\Marko2\HKCU\Software /s

4.e kopiranje kljuceva i valuesa

Koristite komandu COPY za kopiranje podkljuca u drugi kljuc. Ova komanda je korisna kod

Page 22: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

bekapovanja podkljuceva.

Sintaksa:

REG COPY [\\computer1\]key1 [\\computer2\]key2 [/s] [/f]

Primer:

Kod:

REG COPY HKCU\Software\Microsoft\Office HKCU\Backup\Office /s

REG COPY HKCU\regfile HKCU\Backup\regfile /s /f

4.f Exportovanje kljuceva u vidu REG fajlova

Koristite komandu EXPORT da biste exportovali ceo ili deo regdzistrija u obliku REG

fajlova. Ovo uspeva samo na lokalnom racunaru, sto znaci da ne mozete da kreirate reg fajl

preko redzistrija remote racunara. Takodje, na ovaj nacin ne mozete kreirati ANSI REG

fajlove, vec samo version 5, Unicode REG fajlove.

EXPORT komanda je isto sto i FILE -> Export u Regeditu.

Sintaksa:

Page 23: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

REG EXPORT key filname

Primer:

Kod:

REG EXPORT “HKCU\Control Panel” Preferences.reg

4.g Importovanje REG fajlova

Koristite komandu IMPORT da biste uneli REG fajl u redzistri.

IMPORT komanda je isto sto i regedit /s filname. Na taj nacin se REG fajl importuje tiho

(silently)

Sintaksa:

REG IMPORT filname

Primer:

Kod:

REG IMPORT Settings.reg

4.h Sacuvanje kljuceva u vidu Hive fajlova

Ovo se vrsi komandom SAVE. To je isto kao kad biste u Regeditu isli File -> Export i onda

promenili tip u Registry Hive Files (*.*). Ova komanda radi samo na lokalnom racunaru.

Page 24: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

Sintaksa

REG SAVE key filname

Primer:

Kod:

REG SAVE HKU Backup.dat

4.i Restoring Hive fajlova u kljuceve

Ovo se radi komandom RESTORE koja obavlja overwrite kljuca i celokupnog njegovog

sadrzaja sa sadrzajem hive fajla. To je isto sto i importovanje hive fajla u registry. Razlika

izmedju ove komande i ucitavanja hive fajla je u tome sto ova komanda vrsi overwrite bilo

kog postojeceg kljuca, dok ucitavanje hive fajlova kreira novi privremen kljuc koji sadrzi

sadrzaj hive fajla. Ova komanda radi samo na lokalnom racunaru.

Sintaksa:

REG RESTORE key filname

Primer:

Kod:

REG RESTORE HKCU Backup.dat

4.j Loading i unloading Hive fajlova

Page 25: Registry Scripting - download.tutoriali.orgdownload.tutoriali.org/Tutorials/Tutoriali_by_m4rk0/Registry_Scripting.pdf · Ta komanda izvrsava API (u Setupapi.dll) pod nazivom InstallHinfSection

Komanda LOADING vrsi ucitavanje hive fajla u privremeni kljuc.

Sintaksa:

REG LOAD key filname

Primer:

Kod:

REG LOAD HKU\Temporary Settings.dat

Komanda UNLOAD uklanja hive fajl koji se ucitali koristeci komandu LOAD. Bitno je da

unloadujete hiv fajl koji ste ucitali, pre pokusaja kopiranja ili bilo cega drugog sa hiv fajlom,

jer windows zakljucava fajl ukoliko je u upotrebi.

sintaksa:

REG UNLOAD key

Primer:

Kod:

REG UNLOAD HKU\Temporary