Windows - Active Directory elérése programból - tulajdonságok szerkesztése

Active Directory 2. rész

forráskód letöltése
Folytatva cikksorozatunkat az Active Directory programból való eléréséről, jelen részünkben bemutatjuk az objektumok tulajdonságait megjelenítő segédprogramot. Készítünk egy példaszkriptet, amelyben módosítani fogjuk az egyik felhasználói fiók egy tulajdonságát. A példa alapján más tulajdonságok, beállítások is megváltoztathatók csupán a rámutató hivatkozást kell átírni.
Cikkünkhöz mellékeltük az alábbiakban szereplő példaszkripteket "SetDescription.vbs" néven. Futtatva megváltoztatja az Active Directory "Users" tárolójában lévő "XYZ" nevű felhasználó tulajdonságlapjának "Leírás" ("Description") mezőjét.
Példánkban a "Microsoft.com" tartománynevet használtuk. A szkript más környezetben való felhasználásához ezt módosítani kell. Az alábbi műveletek elvégzéséhez rendszergazdai jogosultságok szükségesek.
Az előző részben tett ígéretünkhöz híven bemutatunk egy programot a címtárban található objektumok tulajdonságainak lekérdezésére:
A Windows 2000 szerver verziók telepítő CD-jének \SUPPORT\TOOLS könyvtárában található egy "SETUP.EXE" program. Futtatva feltelepít néhány segédprogramot a gépre, köztük egy "ADSI Edit" nevűt is. Alapértelmezésben telepítés után a Start > Programok > Windows 2000 Support Tools > Tools > ADSI Edit útvonalon található. Elindítása után egy MMC konzolban megjeleníti a rendszerben elérhető címtárszolgáltatásokat, legyen az Active Directory, Exchange vagy egyéb más. Az Active Directory-t alkotó objektumok a "Domain NC" faszerkezet alatt szerepelnek. Bontsuk ki a szerkezetet és tallózzunk el, például a "Users" tárolóba, ekkor a képernyő jobb oldalán megjelenik, hogy milyen további objektumok kaptak helyet benne. Figyelem a megjelenítés objektumszinten történik az egyes tulajdonságok már nem lesznek láthatók. Kattintsunk rá az egyik objektumra, legyen az például a rendszergazda fiók (CN=Rendszergazda (CN=Administrator)) a jobb oldali egérgombbal és válasszuk a "Tulajdonságok" ("Properties") menüt.
A megjelenő ablak "Path" felirata mögött látszik az objektum LDAP szintaxis szerinti elérése. A "Select which properties to view" legördülő menüvel lehet beállítani, hogy milyen tulajdonságok jelenjenek meg (Mandatory - kötelező, Optional - választható, Both - mindkettő). A tulajdonságok a "Select a property to view" legördülő menüben kerülnek felsorolásra. Alatta az "Attribute Values" csoportban az aktuálisan kiválasztott tulajdonság jellemzőit láthatjuk. Ilyen például a típusa ("Syntax"), amelyet figyelembe kell venni a programozás során. Fontos, hogy nem minden tulajdonság rendelkezik minden esetben értékkel és nem mindegyik van az adott objektumon értelmezve. Vannak olyanok köztük, amelyeket kompatibilitási okokból tartottak meg.
Nézzük meg, hogy lehet ezeket a tulajdonságokat állítani szkriptekből:
Feladat: Ha megnézzük a Felügyeleti eszközök > Active Directory - felhasználók és számítógépek (Administrative Tools > Active Directory Users and Computers) konzolt, akkor láthatjuk, hogy minden objektumhoz tartozik egy leírás. Szerkeszteni a tulajdonságlap "Általános" ("General") oldalának "Leírás" ("Description") mezőjében lehet. Módosítsuk ezt a szöveget a "microsoft.com" tartomány "Users" tárolójában található "XZY" nevű felhasználó esetében.
Az ADSIEdit programban tallózzunk el a Domain NC > Users tárolóhoz, kattintsunk rá a jobb oldali egérgombbal és lépjünk a "Tulajdonságok" ("Properties") menüre. A "Select a property to view" menüben válasszuk ki a "Description" elemet. Ekkor megjelennek az attribútumai. Látható, hogy a típusa "DirectoryString", ez VBSript-ekben megfelel egy normál sztringnek. Az Active Directory elérése ugyanúgy LDAP protokollal történik, mint egy lekérdezés során. A parancsot adjuk értékül egy sztring típusú változónak (LDAP), egy másik változóba (newDescription) pedig írjuk be az új megjegyzés értékét.
LDAP = "LDAP://CN=xyz,CN=Users,DC=microsoft,DC=com"
newDescription="Próba felhasználói fiók"
Kérjük le az LDAP által definiált objektumot és helyezzük el a "newDescription" értékét az objektum "Description" tulajdonságába. Ezt a "Put" metódussal tehetjük meg úgy, hogy első paraméterként a megváltoztatni kívánt tulajdonság nevét írjuk, utána pedig az új értékét. Majd a "Setinfo" metódussal írhatjuk be az Active Directory-ba a megváltozott tulajdonságot. Végül megjelenítünk egy szöveget, hogy ne képernyőkimenet nélkül fusson le a szkript és felszabadítjuk az objektumpéldányunk által lefoglalt memóriaterületet.
Set Setting = GetObject(LDAP)
   Setting.Put "Description", newDescription
   Setting.SetInfo
Wscript.Echo "Beállítás vége"
Set Setting = Nothing
A "Text" változó használata nem kötelező, a sztringet közvetlenül is megadhatjuk a "Put" metódus végén. A típusegyezésre azonban minden esetben figyelni kell. Nem cserélhető fel egy szám (integer) egy szöveggel. Továbbá nem kötelező használni az utolsó sorban szereplő memóriaterület felszabadítási eljárást sem.

Active Directory cikksorozat