HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Registry kulcs hozzáférési engedélyének ellenőrzése szkriptekből


Példaprogram letöltése

1852 bájt

A regisztrációs adatbázis kulcsaihoz ugyanúgy lehet hozzáférési engedélyeket rendelni, mint az NTFS fájlrendszer állományaihoz vagy mappáihoz, illetve az Active Directory objektumokhoz. Biztonsági szempontból ez nagy előrelépés volt, mert megakadályozza, hogy a felhasználók ily módon kárt tegyenek a rendszerben. Cikkünkben egy példán keresztül bemutatjuk, hogy lehet az engedélyeket kiolvasni és feldolgozni.

Mellékelten megtalálható az alábbi szkript "RegAccess.vbs" néven. Futtatása után kiírja, hogy az aktuális felhasználó milyen jogosultságokkal rendelkezik a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet kulcs felett.
Alábbiakban a HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet kulcs hozzáférési jogosultságait olvassuk ki, de más kulcsok esetében is ugyanezt a módszert használhatjuk.
A hozzáférési engedélyeket a kulcs által visszaadott (hexadecimális) számok alkotják, melyeket a könnyebb olvashatóság kedvéért konstansokkal helyettesítünk.
const KEY_QUERY_VALUE = &H0001
const KEY_SET_VALUE = &H0002
const KEY_CREATE_SUB_KEY = &H0004
const DELETE = &H00010000
const HKEY_LOCAL_MACHINE = &H80000002
A lekérdezést a helyi gép (.) regisztrációs adatbázisán hajtjuk végre, de a pont helyére egy másik gépet beírva, azon is végrehajtható, fontos azonban, hogy a futtató felhasználónak elégséges jogosultsággal kell rendelkeznie.
 strComputer = "."
Szkriptünk az aktuálisan bejelentkezett felhasználó hitelesítési adatait (impersonationLevel=impersonate) fogja használni a registry eléréséhez az előző változóban megadott gépen (strComputer). A Windows Management Instrumentation (WMI) objektummal a "Winmgmts" interfészen keresztül teremtünk kapcsolatot. Az "StdRegProv" osztály tartalmazza a felhasználói programok és a regisztrációs adatbázis közötti interakciók lehetőségét. Maga az osztály a \root\default névtérben található.
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & strComputer & "\root\default:StdRegProv")
A HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet kulcsot vizsgáljuk, a főkulcsot "HKEY_LOCAL_MACHINE" és az alkucsot két különböző paraméterként kell megadni, ezért utóbbit egy változóba helyezzük.
strKeyPath = "SYSTEM\CurrentControlSet"
A "CheckAccess" metódussal lehet lekérdezni a hozzáférési jogosultságokat, első paramétere a főkulcs, második az alkucs elérési útja, harmadik a lekérdezendő jog, amit a negyedikbe kapunk vissza.
oReg.CheckAccess HKEY_LOCAL_MACHINE, strKeyPath, KEY_QUERY_VALUE, bHasAccessRight
Ha tehát a lekérdezési engedély (KEY_QUERY_VALUE) igaz értéket ad vissza a "bHasAccessRight" változóba, akkor van lekérdezési engedélye.
If bHasAccessRight = True Then
 Wscript.echo "Lekérdezési engedély van"
Ha nem igaz a visszatérési érték, akkor nincs.
Else
 Wscript.echo "Lekérdezési engedély nincs"
End If
Ugyanígy kell eljárnunk a többi kulcs esetében is.
oReg.CheckAccess HKEY_LOCAL_MACHINE, strKeyPath, KEY_SET_VALUE, bHasAccessRight
If bHasAccessRight = True Then
 Wscript.echo "Írási engedély van"
Else
 Wscript.echo "Írási engedély nincs"
End If
oReg.CheckAccess HKEY_LOCAL_MACHINE, strKeyPath, KEY_CREATE_SUB_KEY, bHasAccessRight
If bHasAccessRight = True Then
 Wscript.echo "Létrehozási engedély van"
Else
 Wscript.echo "Létrehozási engedély nincs"
End If
oReg.CheckAccess HKEY_LOCAL_MACHINE, strKeyPath, DELETE, bHasAccessRight
If bHasAccessRight = True Then
 Wscript.echo "Törlési engedély van"
Else
 Wscript.echo "Törlési engedély nincs"
End If

Cikksorozat

#IDKategóriaCikk címeSorozat
1621DelphiMySQL szerverek elérése Delphi-ből1. rész
1632DelphiMySQL szerverek elérése Delphi-ből2. rész
1641DelphiMySQL szerverek elérése Delphi-ből3. rész
1649DelphiMySQL szerverek elérése Delphi-ből4. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Windows Software Offline 2003 évkönyv 23. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |