Az előzőekben a .NET keretrendszer osztályainak statikus metódusaival dolgoztam, melyek segítségével általános információkat lehetett kinyerni az Active Directory környezetről. Ha konkrét, adott tartományra vagy címtárelemre vonatkozó információkhoz akarunk hozzájutni, akkor csatlakozni kell az adott címtár objektumhoz. Az előzőekben leírtuk, hogy a címtár kezelésében fontos szerepe van a gyorsítótárnak, azaz egy ilyen csatlakoztatás előkészíti a memóriában az adott címtár objektum egy reprezentációját. Ha ezek után változtatunk az objektum valamely tulajdonságán, akkor ez csak a memóriában hajtódik végre, külön metódussal kell ezt a változást a címtárba visszaírni, mint ahogy ezt látni fogjuk.
Elsőként azonban nézzük meg a legegyszerűbb csatlakoztatást:
PS C:\> $domain = [ADSI] ""
Az [ADSI] típusjelölővel hivatkozunk a címtáras elérésre, és ha egy üres sztringet adunk meg a „konstruktor” paramétereként, akkor az aktuális tartományi objektumhoz csatlakozunk. Ez a típusjelölő a System.DirectoryServices.DirectoryEntry .NET osztály rövidített neve. Ezt akár ki is írhatjuk, és ekkor további paramétereket is megadhatunk, ha szükséges:
PS C:\> $domain = new-object DirectoryServices.DirectoryEntry("","iqjb\Admin
istrator", "Password1")
Olvassuk ki, hogy mi került a $domain változónkba:
PS C:\> $domain
distinguishedName
-----------------
{DC=iqjb,DC=w08}
Ez még nem túl sok, nézzük meg a tagjellemzőit:
PS C:\> $domain | Get-Member
TypeName: System.DirectoryServices.DirectoryEntry
Name MemberType Definition
---- ---------- ----------
auditingPolicy Property System.DirectoryServices.Pro...
creationTime Property System.DirectoryServices.Pro...
dc Property System.DirectoryServices.Pro...
distinguishedName Property System.DirectoryServices.Pro...
dSCorePropagationData Property System.DirectoryServices.Pro...
forceLogoff Property System.DirectoryServices.Pro...
fSMORoleOwner Property System.DirectoryServices.Pro...
gPLink Property System.DirectoryServices.Pro...
instanceType Property System.DirectoryServices.Pro...
isCriticalSystemObject Property System.DirectoryServices.Pro...
lockoutDuration Property System.DirectoryServices.Pro...
lockOutObservationWindow Property System.DirectoryServices.Pro...
...
uSNChanged Property System.DirectoryServices.Pro...
uSNCreated Property System.DirectoryServices.Pro...
wellKnownObjects Property System.DirectoryServices.Pro...
whenChanged Property System.DirectoryServices.Pro...
whenCreated Property System.DirectoryServices.Pro...
Kicsit megvágtam, de ebből is látszik, hogy jó néhány tulajdonsága van egy ilyen objektumnak. Nézzük, hogy hogyan tudunk egy nevesített objektumhoz, mondjuk egy felhasználói fiókhoz csatlakozni:
PS C:\> $user = [ADSI] "LDAP://cn=János Vegetári,ou=Demó,dc=iqjb,dc=w08"
PS C:\> $user
distinguishedName
-----------------
{CN=János Vegetári,OU=Demó,DC=iqjb,DC=w08}
Fontos!
Az [ADSI] utáni sztringben csupa nagybetűs az LDAP, és normál perjelek vannak utána. Ha nem csupa nagybetűs az LDAP, vagy fordított perjelet használunk, akkor nem rögtön kapunk hibajelzést, hanem akkor, amikor először használjuk az objektumot.
A későbbiekben majd azt is megnézzük, hogy egy ilyen felhasználói fióknak milyen tulajdonságai vannak és hogyan lehet azokat módosítani.