Windows - Tetszőleges számú felhasználói fiók létrehozása, törlése

forráskód letöltése
Az Active Directory teljesítménye több 10 000 objektumnál sem csökken jelentősen. Ha tesztelni szeretnénk, hogy a hálózatunk miként viselkedik nagy számú felhasználó esetén, legelső lépés, hogy létrehozzunk néhány ezer fiókot. Nincs az a rendszergazda, aki vállalkozna arra, hogy a felügyeleti konzolt használva tegye ezt meg. Nincs is rá szükség, mert szkriptekből egy mozdulattal végrehajthatjuk. Cikkünkben három szkript szerepel, melyekkel tetszőleges számban hozhatunk létre fiókokat, utána engedélyezhetjük őket, végül, ha már nincs rájuk szükségünk, törölhetjük.
Cikkünkhöz mellékeltük a szóban forgó három szkriptet:
"CreateUsers.vbs" - Létrehoz 5 db felhasználói fiókot a tartomány "Users" tárolójában, User1, User2 ... User5 néven.
"UnlockUsers.vbs" - Engedélyezi a fiókokat.
"DeleteUsers.vbs" - Törli a fiókokat.
A második és a harmadik szkriptnél felhasználás előtt, át kell írni a "world.net" tartományt egy valós nevet megadva. Az elsőnél erre nincs szükség.
Az alábbiak végrehajtásához rendszergazdai jogokra van szükség. Mindhárom szkriptünkben a címtár elérésére az LDAP protokollt fogjuk használni.
Felhasználói fiókok létrehozása
A fiókok létrehozásának első lépése, hogy kapcsolatot teremtsünk a tartományi gyökérponttal (rootDSE - lásd a kapcsolódó cikkeket).
Set objRootDSE = GetObject("LDAP://rootDSE")
Ezután az LDAP protokollt igénybe véve belépünk a "Users" tárolóba. Más tárolót is megadhatunk, csak módosítani kell a sztringet. Egy ritkábban alkalmazott programozói fogás figyelhető meg, ugyanis nem adtunk meg tartománynevet, hanem kiolvastuk "defaultNamingContext" névkörnyezetből.
Set objContainer = GetObject("LDAP://cn=Users," & objRootDSE.Get("defaultNamingContext"))
A fióklétrehozást végző parancsokat ciklusba foglaljuk. Példánkban 5 darabot készítünk, de természetesen a számot tetszőlegesen lehet változtatni. Egy valamire kell csupán figyelni a Felügyeleti eszközök > Active Directory - felhasználók és számítógépek (Administrative Tools > Active Directory Users and Computers) MMC konzol alapértelmezésben 2000 objektumot jelenít meg. A szám növeléséhez a Nézet > Szűrőbeállítások (View > Filter Options) ablakában írjuk át a legalsó mezőben található számot.
For i = 1 To 5
Létrehozunk egy új objektumot a címtárban. Típusa: "User", neve a "User" szóval kezdődik és utána a ciklusszámláló pillanatnyi értéke következik (User1, User2 ... User5)
    Set objLeaf = objContainer.Create("User", "cn=User" & i)
    objLeaf.Put "sAMAccountName", "UserNo" & i
    objLeaf.SetInfo
Next
Végül jelezzük a képernyőre, ha lefutott a szkript.
WScript.Echo i & " db felhasználói fiók létrehozva."
Felhasználói fiókok engedélyezése
Az előbb létrehozott felhasználói fiókok alapértelmezésben letiltott állapotban jönnek létre, ezért engedélyezni kell őket. Szintén egy ciklust fogunk használni, de egy más módszerrel adjuk meg az LDAP elérési útjukat.
For i = 1 To 5
Account = "LDAP://cn=User" & i & ",cn=users,dc=world,dc=net"
 Set objUser = GetObject (Account)
Az "AccountDisabled" tulajdonságot kell False-ra módosítani az engedélyezéshez.
 objUser.AccountDisabled = False
 objUser.SetInfo
Next
Itt is megjelenítünk egy üzenetet a képernyőn a feladat befejezésekor.
WScript.Echo i & " db felhasználói fiók engedélyezve."
Felhasználói fiókok törlése
Egyetlen lényegi különbség az előző szkripthez képest, hogy nem tulajdonságot változtatunk, hanem meghívjuk a "Delete" metódust. Első paramétere a törlendő objektum típusa (User), második, pedig a neve (User1, User2 stb.).
For i = 1 To 5
Account = "LDAP://cn=users,dc=world,dc=net"
 Set objUser = GetObject (Account)
 objUser.Delete "User", "cn=User" & i
Next
WScript.Echo i & " db felhasználói fiók törölve."