Windows - Sérült Active Directory eltávolítása

Több olyan szituáció is előfordulhat, amikor az Active Directory megsérül. A sérülés lehet olyan mértékű, hogy el kell távolítani a címtárat az adott gépről - de ez ilyenkor nem mindig sikerül. Mielőtt bárki is nekiállna a Windows 2000 Server újratelepítésének végső megoldásként próbálja ki az alábbiakat, ahol bemutatunk egy módszert, ami egyfajta kézi eltávolításként működik.
A cikkben foglaltak végrehajtásához rendszergazdai jogosultságok szükségesek.
Egy Active Directory hálózatban a kiszolgálók több típusát különböztetjük meg. A hierarchia legmagasabb fokán a globális katalógust tároló tartományvezérlők állnak (kiemelt szereppel az elsőként telepített PDC (Primary Domain Controller). Alattuk van a többi tartományvezérlő és őket követik az egyéb kiszolgálók. Utóbbiakat tagkiszolgálónak (member server) nevezzük. A tartományvezérlők replikáció útján gondoskodnak a címtárat alkotó adatbázis többszörözéséről. Minél több gép vesz részt a replikációban, annál bonyolultabb mechanizmus szerint zajlik, de gyakorlatilag még ekkor sem igényel beavatkozást. Mindegy, hogy melyik gépen módosítunk egy címtári adatbázist érintő adatot - például felveszünk egy felhasználót vagy megváltoztatunk egy jelszót - egy idő után automatikus megjelenik a többi gépen. És ez az automatizmus szokott néha problémákat okozni. Nézzünk néhány példát, amikor megsérülhet a címtár adatbázisa.
  • Az ADSI Edit vagy más LDAP kompatíbilis segédprogrammal megváltoztatjuk egy objektum valamely tulajdonságát, de közben hiba keletkezik és az objektum részlegesen vagy egészében megsérül, ami kihat az egész gép működésére. Sokszor nem lehet mást tenni, mint eltávolítani az Active Directory-t, majd újratelepíteni, rosszabb esetben újra kell telepíteni az egész operációs rendszert. Persze ez sem mindig megoldás, mert a hiba közben "átreplikálódhatott" a másik tartományvezérlőkre és ismét vissza fog kerülni a kiindulási gépre.
  • Másik lehetőség, hogy a DCPROMO programmal szabályosan nekikezdünk az Active Directory eltávolításának, például mert az egyik tartományvezérlőt vissza akarjuk minősíteni tagkiszolgálóvá. A folyamat egy áramszünet, hardverhiba vagy más okból megszakad és szintén az előző helyzet áll elő.
  • Kezdetben egyetlen gép tárolja a címtár globális katalógusát, amelyiket először telepítettük és minősítettünk tartományvezérlővé. Biztonsági szempontból előnyős a globális katalógus több gépen való tárolása, de az a szituáció is előfordulhat, hogy pont azt a gépet kell kivenni a hálózatból, amelyik egymagában tárolja. Ekkor át kell helyezni egy másik tartományvezérlőre, el kell távolítani az Active Directory-t és utána lehet a gépet kivenni a hálózatból. Az áthelyezés folyamata alatt bekövetkezett rendellenes leállás szintén a címtári adatbázis sérüléséhez vezethet.
Megoldás
Gyakorlatilag mindegy mi vezetett a sérüléséhez lényeg, hogy az adott gépről el kell távolítani a címtár maradékát, de a DCPROMO-t már nem tudjuk használni, mert hibajelzéssel megáll. Nagyon úgy néz ki a dolog, hogy újra kell telepíteni az operációs rendszert, ami időigényes feladat, főleg, ha Exchange és SQL szervereket is működtetett és ezek újratelepítésével is számolnunk kell. Mielőtt ennek nekiállnánk utolsó lehetőségként vegyük igénybe az NTDSUTIL segédprogramot. Korábbi cikkeinkben már többször írtunk róla, hasznos programról van szó, lehetőséget biztosít az Active Directory mentésére, visszaállítására, adatbázisának áthelyezésére, a duplikált biztonsági azonosítók törlésére, stb. Mindezek mellett képes a címtár kézi eltávolítására is, függetlenül a benne keletkezett sérülésektől és ha már eltávolítottuk az Active Directory-t, akkor sokkal egyszerűbb önmagában újratelepíteni, mint a teljes operációs rendszerrel együtt.
Indítsunk el egy parancssori ablakot az egyik helyesen működő tartományvezérlőn és írjuk be a következő parancsot:
ntdsutil
Ezzel beléptünk interaktív üzemmódba. Jelenleg a segédprogram saját parancsértelmezője által elfogadott utasításokkal dolgozhatunk. Lépjünk be a címtári adatok eltávolításának menüjébe:
metadata cleanup
Ezután lépjünk a tartományvezérlőhöz való csatlakozás menüjébe:
connections
Majd csatlakozzunk a tartományvezérlőhöz:
connect to server servername
Ahol a "servername" helyére a kiszolgáló nevét kell beírni. Sikertelen kapcsolódás esetén ellenőrizzük, hogy helyesen írtuk-e a gépnevet és ellenőrizzük a hálózati kapcsolat meglétét.
Most már van kapcsolatunk a tartományvezérlővel, lépjünk ki a kapcsolódás menüből:
quit
Visszajutottunk a "metadata cleanup" menübe. Adjuk ki a következő parancsot:
select operation target
Minden menüben a HELP parancs beírásával tudjuk megnézni, hogy aktuálisan milyen parancsok állnak rendelkezésünkre. Menjünk tovább:
list domains
Kilistáztuk a tartományokat és a hozzájuk rendelt sorszámot. Ha csak egy tartomány van a hálózatban, akkor csak egy tagból áll a lista és előtte nullás sorszám. Csatlakozzunk a hibás tartományhoz:
select domain 0
Példánkban feltételeztük, hogy a tartomány sorszáma: 0.
Ugyanezt végre kell hajtani az Active Directory hellyel (Site) is:
list sites
Majd csatlakozni kell a sérült helyhez, szintén sorszám szerint.
select site 0
Végül a kiszolgálóhoz is csatlakozni kell:
list servers in site
select server 0
Lépjünk ki ebből a menüből is:
quit
Most következik a címtár eltávolítása:
remove selected server
Immár a grafikus felületen megjelenik egy ablak, megerősítést kérve a művelet végrehajtásához. Válaszoljunk igennel és végrehajtódik az eltávolítás. Ha az alábbi hibaüzenetet kapjuk, akkor vagy már korábban sikeresen el lett távolítva a címtár és a fennálló hibákat nem ez okozza. Vagy pedig az eltávolítandó tartományvezérlőn próbálkozunk, ami szintén helytelen.
Error 8419 (0x20E3) 
The DSA object could not be found
A "quit" parancs kétszeri beírásával lépjünk ki az NTDSUTIL-ból.
Ezután következhet az Active Directory ismételt feltelepítése vagy, ha végleg kivonjuk a forgalomból a kiszolgálót és működik DNS szerver a hálózatban (és az nem dinamikus frissítésekkel dolgozik), akkor gondoskodjunk az eltávolított gépre vonatkozó bejegyzések megszüntetéséről. Ha a fentiek sem segítettek az Active Directory eltávolításában, akkor félő, hogy már csak a teljes operációs rendszer újratelepítése oldja meg a problémát.