Windows - RootDSE

Cikkeinkben - amikor szkripteket írtunk - gyakran emlegettük a tartományi gyökérpontot, amit az Active Directory RootDSE (Root DSA-specific Entry) névvel illet. Az egész tartományt érintő lekérdezéseknek gyakran jelentette az alapját és többször használtuk speciális tulajdonságait. Most egy kicsit átfogóbb képet igyekszünk adni a használatáról, beleértve az összes tulajdonság ismertetését.
Az Active Directory teljes egészében hierarchikus felépítésű, szigorú alá-, fölé- mellérendeltégi viszonyban állnak egymással a tartományok, de a tartományokat alkotó objektumok is. Legkisebb egységtől a legnagyobbig rend van, ami sehol nem borul fel. Minden objektum egy adatbázisban tárolódik és rendelkezik szülőobjektummal, de szigorúan csak eggyel. Viszont mindegyiknek lehet több gyermekobjektuma, így alkotnak egy virtuális farendszert. Az egész tárolási rendszer szerkezetét a séma (schema) írja le. Egyetlen objektum van, mely kivétel az alól a szabály alól, hogy rendelkezik szülővel a RootDSE (más néven Directory Root), ugyanis ez alkotja a farendszer gyökérpontját. Virtuális osztálynak is nevezhetjük, mert nincs meghatározása a sémában, de ennek ellenére rendelkezik attribútumokkal. Az egész tartományrendszert érintő lekérdezéseknek az alapja, például a sémaközpontot tároló gép keresésekor a RootDSE, "schemaNamingContext" tulajdonságából kell kiindulni (lásd a kapcsolódó cikkeket). Úgy is fogalmazhatunk, hogy a tartomány tartalomjegyzéke. Annak ellenére, hogy egy tartománynak csak egy gyökérpontja lehet, bármelyik tartományvezérlőn lekérdezhetjük az adatait, mert replikáció útján több példányban tárolódik.
Nézzük meg az eddigieket gyakorlati oldalról, kicsit kézzelfoghatóbbá téve a leírtakat.
Indítsuk el az ADSI Edit segédprogramot az egyik tartományvezérlőn.
  • Megjegyzés: az ADSI Edit feltelepítéséhez helyezzük be a Windows 2000 Server telepítő CD-t a meghajtóba és telepítsük fel a \SUPPORT\TOOLS könyvtárban található SUPTOOLS.MSI fájlt. Ezt követően a Start > Programok > Windows 2000 Support Tools > Tools > ADSI Edit ikonnal indítható.
Kattintsunk a farendszerben az ADSI Edit gyökérpontra a jobboldali egérgombbal és lépjünk a "Connect to" menüre.
Alapértelmezésben ahhoz a tartományvezérlőhöz csatlakozunk, amelyikre be vagyunk jelentkezve. A "Connection Point" szekció "Naming Context" legördülő menüjében válasszuk a "RootDSE" pontot, majd lépjünk az "OK" gombra. Megjelenik a segédprogram farendszerében a tartomány gyökérpontja. Kattintsunk rá. Egyetlen objektumot tárol "RootDSE" néven. Kattintsunk az objektumra a jobboldali egérgombbal és válasszuk a "Tulajdonságok" ("Properties") menüt.

A "Select a property to view" legördülő menüben láthatjuk az elérhető tulajdonságokat (mint írtuk tulajdonságok vannak, de maga a RootDSE objektum nincs definiálva a sémában). Nézzük melyek ezek:
  • "configurationNamingContext" - Az erdő konfigurációját tároló konténer - az erdő névtere.
  • "currentTime" - aktuális idő. Az Active Directory-ban nagyon szigorúan történik a dátum és az idő kezelése, ha egy kliens beállításai jelentősen eltérnek a kiszolgálótól, be sem lehet jelentkezni. Ebből az attribútumból történik a központi időszinkronizálás is.
  • "defaultNamingContext" - Alapértelmezett névtér, értéke megegyezik a tartomány nevével.
  • "dnsHostName" - A tartományvezérlő DNS neve.
  • "dsServiceName" - Az NTDS beállítások elérési útja.
  • "highestCommittedUsn" - Az aktuális tartományvezérlő legmagasabb USN (Update Sequence Number) száma.
  • "ldapServiceName" - Az LDAP szerver szolgáltatás neve az adott tartományban.
  • "namingContexts" - A tartományi névtér objektuma. Kiindulási alapot jelent a kliens lekérdezések számára. Tartalmazza a tartomány nevét és konfigurációs, illetve séma partíciók elérési útját.
  • "rootDomainNamingContext" - Az erdő gyökértartományának (az elsőként létrehozott tartomány) neve.
  • "schemaNamingContext" - Az erdő sémáját tároló névtér.
  • "serverName" - Az aktuális tartományvezérlő teljes minősített neve.
  • "subschemaSubentry" - Az alséma kezdőpontja. Annyit érdemes tudni róla, hogy adminisztratív jellegű információkat tárol a sémáról, részletek az LDAP v3 protokollt leíró RFC 2251-es szabványban találhatók.
  • "supportedCapabilities" - Az Acitve Directory által ellátandó plusz szolgáltatások (pl.: dinamikus frissítések, integrált DNS zónák, stb.) azonosítói.
  • "supportedControl" - Az LDAP vezérlő által támogatott szolgáltatások azonosítója.
  • "supportedLDAPPolicies" - Támogatott LDAP házirendek listája.
  • "supportedLDAPVersion" - A támogatott LDAP protokollok verziószáma. Az Active Directory az LDAP v2 és LDAP v3 verziókat támogatja.
  • "supportedSASLMechanisms" - A támogatott SASL mechanizmusok (hitelesítési és titkosítási feladatokat lát el) listája.
Az elérési utak az LDAP protokoll szerint jelennek meg.
Fentiek alapján nézzünk egy VBScript példát, melyben lekérdezzük a tartomány sémaközpontját tároló gép nevét:
Set objRootDSE = GetObject("LDAP://rootDSE")
Set objSchema = GetObject("LDAP://" & objRootDSE.Get("schemaNamingContext"))
strSchemaMaster = objSchema.Get("fSMORoleOwner")
Set objNtds = GetObject("LDAP://" & strSchemaMaster)
Set objComputer = GetObject(objNtds.Parent)
FSMO = FSMO & "Sémaközpont: " & objComputer.Name + chr(10) + chr(13)
Set objNtds = Nothing
Set objComputer = Nothing
Wscript.Echo FSMO