Windows 7/Vista - vinkkejä

Ominaisuudet tutuksi: Rekisteri

Windowsin rekisteri on hierarkkinen tietokanta, joka sisältää mm. käyttäjien profiilit, tietokoneeseen asennetut sovellukset, luotavissa olevat tiedostotyypit yms. Windowsin rekisteri on erittäin keskeisessä osassa Windows järjestelmässä.

Tässä ohjeessa:

Rekisterin rakenne

Windows rekisteri koostuu avaimista, aliavaimista ja niiden erityyppisistä arvoista. Avaimia voisi ajatella kansioina ja arvoja tiedostoina (arvot sisältävät varsinaisen datan) ja hieman em. tapaan ne esim. Rekisterieditorissa (regedit.exe) esitetäänkin.

Rekisteri jakaantuu kuuteen juuriavaimeen:

Juuriavain Lyhenne Tarkoitus Linkki
HKEY_CLASSES_ROOT HKCR Kaikkia rekisteröityjä tiedostotunnisteita vastaava avain löytyy täältä. Useimmat avaimet sisältävät merkkijonoarvon joka osoittaa toiseen avaimeen, joka taas sisältää siihen luokkaan kuuluvaa tietoa, johon ko. tiedostotunnisteen omaava tiedosto kuuluu. Esimerkiksi .docx -avain osoittaa Word.Document.12 -avaimeen.

Muut avaimet sisältävät järjestelmään rekisteröityjen COM-objektien (Component Object Model, COM) tietoja sekä UAC:n virtualisoidun rekisterin tietoja (VirtualStore avain)
Ei ole linkki
Yhdistelmä käyttäjäkohtaisesta HKCU\Software\Classes  (levyllä: %localappdata%\Microsoft\Windows\Usrclass.dat) ja järjestelmänlaajuisesta HKLM\Software\Classes avaimista.
HKEY_CURRENT_USER HKCU Varastoi parhaillaan kirjautuneena olevaan käyttäjään liittyvää käyttäjäkohtaista tietoa ja ohjelmistojen asetuksia. Osoittaa kirjautuneen käyttäjän profiiliin (levyllä %userprofile%\Ntuser.dat).

Joka kerran kun käyttäjän profiili ladataan (joko sisäänkirjautuessa tai kun prosessi ajetaan toisen käyttäjän alaisuudessa) HKEY_CURRENT_USER luodaan HKEY_USERS -avaimen käyttäjän aliavaimen pohjalta.
Kirjautuneen käyttäjän aliavaimeen HKEY_USERS avaimessa
HKEY_LOCAL_MACHINE HKLM Varastoi järjestelmään liittyviä tietoja, sisältän aliavaimet:

BCD sisältää Boot Configuration Database (BCD) tiedot rekisterirakenteena. Tämä tietokanta korvaa vanhoissa Windowseissa käytetyn Boot.ini -tiedoston.

COMPONENTS sisältää tietoja Component Based Servicing (CBS) pinosta.

HARDWARE sisältää tietoja järjestelmän laitteistosta ja laitteistojen ajureiden kytkennät.

SAM sisältää tietoa paikallisista tileistä ja ryhmistä, kuten käyttäjän salasanan, ryhmämäärittelyt ja toimialue kytkennät.

SECURITY sisältää järjestelmänlaajuisen suojauskäytännöt ja järjestelmäoikeuksien osoitukset. Näitä tietoja et voi selata/muuttaa kuin System-oikeuksilla.

SOFTWARE sisältää Windowsin tallentamat järjestelmänlaajuiset kokoonpanotiedot, joita ei tarvita käynnistyksen yhteydessä. Myös kolmansien osapuolten ohjelmistot tallentavat tietoa niiden järjestelmänlaajuisista asetuksista.

SYSTEM sisältää Windowsin tallentamat järjestelmänlaajuiset kokoonpanotiedot, joita tarvitaan käynnistyksen aikana, kuten esim. mitkä laiteajurit ladataan ja mitkä palvelut käynnistetään. Koska nämä tiedot ovat erityisen tärkeitä, Windows tallentaa kopion näistä tiedoista Viimeisin toiminut kokoonpano -toimintoa varten.
Ei ole linkki
HKEY_USERS HKU Varastoi tietoja kaikista koneen käyttäjistä Ei ole linkki
HKEY_CURRENT_CONFIG HKCC HKEY_CURRENT_CONFIG on vain linkki nykyiseen laitteistoprofiiliin joka on tallennettu avaimeen HKLM\SYSTEM\CurrentControlSet\Hardware Profiles\Current. HKLM\SYSTEM\ CurrentControlSet\ Hardware Profiles\Current
HKEY_PERFORMANCE_DATA HKPD Tämän avulla päästään käsiksi Windowsin resurssilaskurien arvoihin.

Ei ole näkyvissä esim. Rekisterieditorissa. Käytettävissä Windows API funktiouden kautta (esim. ReqQueryValueEx).
Ei ole linkki

Juuriavaimia ei voi itse poistaa tai lisätä.

[takaisin alkuun]

Rekisterin arvojen tietotyypit

Avaimilla voi olla erityyppisiä arvoja yhteensä 14 erilaista, mutta suurin osa avaimista on seuraavia arvotyyppejä:

Tietotyyppi Nimi Kuvaus
REG_SZ Merkkijonoarvo Unicode tyyppinen merkkijonoarvo
REG_DWORD DWORD-arvo Numerotietoa (32-bittinen) tai boolean-tyyppistä tietoa (0/1)
REG_BINARY Binaariarvo Binaariarvo raakadatalle tai esim. yli 32 bittisille numeroille.

Yksi mainitsemisen arvoinen arvotyyppi on myös REG_LINK, joka täysin läpinäkyvästi osoittaa toiseen avaimeen tai arvoon.

Kaikki käytettävissä olevat arvotyypit näet tästä: Registry Value Types

[takaisin alkuun]

Rekisterin muokkaaminen

Koska Windows rekisteri on niin keskeinen osa Windowsin toimintaa, nyrkkisääntönä tulisi pitää, ettei rekisteriin tehtäisi koskaan muutoksia käsin (esim. Rekisterieditorilla tai rekisterimerkintätiedostoja (.reg) lisäämällä) vaan aina jonkin ohjelman käyttöliittymän kautta. Aina tämä ei kuitenkaan ole mahdollista, jolloin muutoksia on tehtävä esim. Rekisterieditorilla tai vaihtoehtoisesti rekisterimerkintätiedoston (.reg) avulla.

HUOM! Rekisteriä voi lukea/muokata myös esim. komentoriviltä Reg -komennolla (Console Registry Tool for Windows) ja PowerShellistä Get-ItemProperty/Set-ItemProperty -komennoilla.

Aina muokatessasi rekisteriä, toimi tämän kaavan mukaan:

  1. Ota rekisteristä varmuuskopio (tämä on tärkein toimenpide)
  2. Tehdessäsi muutoksia, varmista että muutat oikean avaimen arvoja oikein tiedoilla

Rekisterieditorin saa auki näin: Käynnistä -> [kirjoita hakukenttään] regedit ja paina Enter. Tarpeen vaatiessa, suorita regedit.exe järjestelmänvalvojan oikeuksin. Todella harvinaisia tilanteita varten rekisterieditori on mahdollista käynnistää System-oikeuksin.

[takaisin alkuun]

Rekisterimerkintätiedostot (.reg)

Yksi kätevä tapa muokata rekisteriä on rekisterimerkintätiedosto. Ne ovat .reg -tunnisteisia tekstitiedostoja, jotka sisältävät yhden tai useamman avaimen ja mahdollisesti jonkin arvon tai poistomerkinnän (-). Rekisterimerkintätiedoston idea on tarjota mahdollisuus jakaa tai ottaa talteen rekisterimuutoksia. Oikein tehty rekisterimerkintätiedosto on turvallisempi käyttää, kuin vaikkapa vain ohjeet siitä, kuinka jokin muutos tehdään, jolloin virhemahdollisuus kasvaa. Jaettavien rekisterimerkintätiedosto toimivuus on luonnollisesti tarkkaan varmistettava ennen niiden jakelua, jottei aiheuteta vahinkoa.

Rekisterimerkintätiedostojen käyttö

  1. Luo järjestelmän palautuspiste
  2. Valitse haluttu .reg -tiedosto ja sitten hiiren oikealla Yhdistä (tai tuplaklikkaamalla .reg -tiedostoa).
  3. Lisätäksesi rekisterimerkinnät rekisteriin, valitse Kyllä -painike.
  4. Lopuksi saat vielä ilmoituksen lisäyksen onnistumisesta.
HUOM! On tärkeää että lisäät vain sellaisia rekisterimerkintätiedostoja joiden sisällön tiedät toimivaksi, tai että ne ovat peräisi luotettavasta lähteestä.

Rekisterimerkintätiedostojen rakenne

Rekisterimerkintätiedostot ovat siis tavallisia tekstitiedostosta, joiden tekeminen onnistuu vaikkapa Windowsin mukana tulevalla Muistiolla tai millä tahansa ns. puhdasta tekstiä tallentavalla tekstieditorilla. Rekisterimerkintätiedostot tallennetaan ".reg" -tarkentimella.

Rekisterimerkintätiedostojen syntaksi on tämä:

	Rekisterieditorin versio
	tyhjä rivi
	[polku avaimeen1]
	"arvon nimi"="tietotyyppi:arvo"
	"arvon nimi"="tietotyyppi:arvo"
	...
	tyhjä rivi
	[polku avaimeen2]
	"arvon nimi"="tietotyyppi:arvo"
	...
	

Rekisterieditorin versio on "Windows Registry Editor Version 5.00"
Tyhjä rivi on pakollinen tyhjä rivi erottamassa avainta
Polku avaimeen on polku avaimeen, esim. "HKEY_CURRENT_USER\OmaTesti"
Arvon nimi on se nimi jolla arvo on tallennettu/tallennetaan avaimeen.
Tietotyyppiä EI laiteta jos tietotyyppi on merkkijono (REG_SZ). Muuten se tulee ilmoittaa.
Arvo on varsinainen data joka halutaan tallentaa/muuttaa.

Esimerkki selventänee asiaa:

	Windows Registry Editor Version 5.00

	[HKEY_CURRENT_USER\OmaTesti]
	"merkkijono"="Arvona on tekstiä"
	"numerotietoa"=dword:499602d2
	"binaaria"=hex:01,00,01,00,22,56,00,00,44,ac,00,00,02,00,10,00,00,00

	[HKEY_CURRENT_USER\OmaTesti\OmaAliavain]
	"ToinenMerkkijono"="Merkkijonon kanssa ei anneta tietotyyppiä"
	

Tämä luo HKEY_CURRENT_USER avaimeen aliavaimen "OmaTesti" ja sille kolme arvoa datoineen: "merkkijono", "numerotietoa", "binaaria". Sekä "numerotietoa" että "binaaria" arvoissa on esitelty tietotyyppi ennen varsinaista dataa.

Sitten luodaan HKEY_CURRENT_USER\OmaTesti aliavain nimeltä "OmaAliavain" sinne arvoksi "ToinenMerkkijono" ja sille asetetaan varsinainen data.

Rekisterimerkintätiedoston lisäämisen tekemät muutokset näkyvät Rekisterieditorissa:

Jos halutaan muuttaa jokin arvo toiseksi, se tapahtuu samoin kuin lisääminen:

	Windows Registry Editor Version 5.00

	[HKEY_CURRENT_USER\OmaTesti]
	"merkkijono"="Tähän uusi arvo, arvo joko luodaan tai muutetaan."
	

Rekisterimerkintätiedoston lisäämisen tekemät muutokset näkyvät Rekisterieditorissa, "merkkijono" arvon data on muuttunut:

Yksittäinen arvo poistetaan laittamalla arvon dataksi minusmerkki (-)

	Windows Registry Editor Version 5.00

	[HKEY_CURRENT_USER\OmaTesti]
	"binaaria"=-
	

Rekisterimerkintätiedoston lisäämisen tekemät muutokset näkyvät Rekisterieditorissa, "binaaria"-arvo on poistettu:

Kokonainen avain poistetaan laittamalla avaimen eteen miinusmerkki (-)

	Windows Registry Editor Version 5.00

	[-HKEY_CURRENT_USER\OmaTesti\OmaAliavain]
	

Rekisterimerkintätiedoston lisäämisen tekemät muutokset näkyvät Rekisterieditorissa:, "OmaAliavain" -aliavain on poistettu:

[takaisin alkuun]

Rekisterin "siivoaminen"

Yksi itsepintainen myytti on se, että Windowsin rekisteri jotenkin maagisesti pikkuhiljaa "paisuu" ja hidastaa näin tietokoneen toimintaa. Usein näkee neuvottavan, että konetta pitäisi säännöllisesti "putsailla" jollain rekisterin siivoiluun tarkoitetulla ohjelmalla. Pääsääntöisesti tällainen rekisterin muokkaus on turhaa ja joissain tapauksissa jopa haitallista, eikä sellaiseen normaalioloissa ole mitään tarvetta.

Windows rekisteri voi sisältää satoja tuhansia avaimia, ja rekisteriä ei siis käydä alusta loppuun läpi kunnes löytyy haluttu avain. Jos nyt poistetaan vaikkapa muutama sata "turhaa" avainta, ei tällä ole mitään vaikutusta koneen nopeuteen.

Säännöllisellä, ilman sen kummempaa syytä suoritetulla "siivoilulla" voidaan saada aikaiseksi haittoja. Rekisterin siivoilun tulokset eivät välttämättä näy heti, vaan vasta jonkun ajan kuluttua, esim. kun siivousohjelman "turhaksi" katsottua avainta tarvittaisiinkin. Foorumeilla saa lueskella aika ajoin, kuinka kone on mennyt sekaisin liiallisesta "siivouksesta". Windowsin rekisteri on sen verran tärkeä järjestelmälle, että varsinkaan järjestelmän laajuista rekisterin "siivousta" tulisi mielestäni välttää.

On toki tilanteita, jolloin rekisterin siivoamisesta voi olla hyötyä, tai se on jopa pakollista. Esim. jos jokin ohjelma jättää virheellistä tietoa rekisteriin tai sitten vaikkapa haittaohjelmien jälkiä siivotessa. Tällöinkään ei ole tarvetta ajella jotain rekisterin putsaaja-ohjelmaa, riittää että poistat tarvittavat avaimet.

[takaisin alkuun]

Lisää tietoa:
Registry
Tietoja Windowsin rekisteristä kokeneille käyttäjille
Rekisterin varmuuskopioiminen
Registry Value Types
Rekisterin aliavainten ja arvojen lisääminen, muokkaaminen tai poistaminen .reg-tiedoston avulla
Distributing Registry Changes
Regscanner - kun­non ha­ku­työ­ka­lu Win­dowsin re­kis­te­riin
Regshot - selvitä rekisterin muutokset
Rekisterin siivous on turhaa, joskus jopa haitallista

[Sisällysluettelo]
5.7.2010
(Yama)Neko