A Quest AD snapin lehetővé teszi, hogy explicit módon kapcsolódjunk egy tartományvezérlőhöz:
PS C:\> $cred = Get-Credential r2\st
PS C:\> Connect-QADService -Service dc.r2.dom -Credential $cred
DefaultNamingContext Type
-------------------- ----
DC=r2,DC=dom ActiveDirectory
PS C:\> Set-QADUser -Identity "ács bence" -Company Valami
Name Type DN
---- ---- --
Ács Bence user CN=Ács Bence,OU=Észak,DC=r2,...
PS C:\> Set-QADUser -Identity "ács béla" -Company Valami
Set-QADUser : Access is denied.
At line:1 char:12
+ Set-QADUser <<<< -Identity "ács béla" -Company
Valami
+
CategoryInfo : NotSpecified: (:)
[Set-QADUser], UnauthorizedAc
cessException
+
FullyQualifiedErrorId : System.UnauthorizedAccessException,Quest.Active
Roles.ArsPowerShellSnapIn.Powershell.Cmdlets.SetUserCmdlet
A fenti példában látható, hogy külön be lehet kérni a hitelesítési információkat és a kapcsolódást akár ennek birtokában is le lehet játszani. Az ’R2\st’ felhasználónak van jogosultsága ’Ács Bence’ módosításához, de nincs ’Ács Béla’ megváltoztatásához. Látszik, hogy tényleg ezen kapcsolat alapján történik a műveletek végrehajtása, hiszen maga a PowerShell a mindenütt teljes jogosultsággal bíró ’R2\Administrator’ kontextusában fut.
Nem véletlenül van visszatérési értéke a Connect-QADService cmdletnek, hiszen így azt el is lehet tárolni változóban, akár több kapcsolatot is definiálni tudok és az egyes cmdleteknél egyedileg is lehet hivatkozni ezekre, azaz az egyik paranccsal az egyik tartományvezérlőhöz csatlakozom, az egyik felhasználói fiók nevében, a másik cmdlet végrehajtása során meg egy másik tartományvezérlőhöz csatlakozom, egy másik fiókkal:
PS C:\> $stconn = Connect-QADService -Service dc.r2.dom -Credential $cred
PS C:\> $cred = Get-Credential r2\administrator
PS C:\> $adminconn = Connect-QADService -Service dc.r2.dom -Credential $cred
PS C:\> Set-QADUser -Identity "ács béla" -Company Valami -Connection $stconn
Set-QADUser : Access is denied.
At line:1 char:12
+ Set-QADUser <<<< -Identity "ács béla" -Company
Valami -Connection $stconn
+
CategoryInfo : NotSpecified: (:)
[Set-QADUser], UnauthorizedAc
cessException
+
FullyQualifiedErrorId : System.UnauthorizedAccessException,Quest.Active
Roles.ArsPowerShellSnapIn.Powershell.Cmdlets.SetUserCmdlet
PS C:\> Set-QADUser -Identity "ács béla" -Company Valami -Connection $adminconn
Name Type DN
---- ---- --
Ács Béla user CN=Ács Béla,OU=Dél,DC=r2,DC=dom
A fenti példában két különböző felhasználó nevében hoztam létre kapcsolati objektumot és ugyanazt a műveletet akartam végrehajtani ’Ács Béla’ felhasználón. Az első esetben – mint ahogy korábban sem – nem sikerült, míg az Administrator nevében definiált $adminconn kapcsolati objektummal, másodjára ez sikerült.
A kapcsolat megszakítása, a Disconnect-QADService nem azt jelenti, hogy nem tudunk a címtárhoz hozzáférni, hanem azt, hogy utána újból annak a felhasználónak a nevében próbálja az AD műveleteket végrehajtani, akinek a nevében a PowerShell fut:
PS C:\> Disconnect-QADService
PS C:\> get-qaduser st
Name Type DN
---- ---- --
Soós Tibor user CN=Soós Tibor,OU=Dél,DC=r2,D...