Az AD meghajtó

Az ActiveDirectory modul betöltésével kapunk még egy meglepetést is:

[1] PS C:\> Get-PSDrive

 

WARNING: column "CurrentLocation" does not fit into the display and was remove

d.

 

Name           Used (GB)     Free (GB) Provider      Root

----           ---------     --------- --------      ----

A                                      FileSystem    A:\

AD                                     ActiveDire... //RootDSE/

Alias                                  Alias

Kapunk egy új meghajtót AD: néven. Ezen keresztül is elérhetjük a címtár adatbázist és az ottani objektumokat. Bár erre a Get-ADObject és hasonló cmdletekkel is alkalmasak, de az objektumok hierarchiája és a hozzáférési listája ezen meghajtón keresztül férhető hozzá igazán.

Nézzük, hogy mi is van ezen a meghajtón:

[2] PS C:\> dir ad:

 

Name                 ObjectClass          DistinguishedName

----                 -----------          -----------------

r2                   domainDNS            DC=r2,DC=dom

Configuration        configuration        CN=Configuration,DC=r2,DC=dom

Schema               dMD                  CN=Schema,CN=Configuration,DC=r2,...

DomainDnsZones       domainDNS            DC=DomainDnsZones,DC=r2,DC=dom

ForestDnsZones       domainDNS            DC=ForestDnsZones,DC=r2,DC=dom

Látható, hogy a legfelsőbb szinten maguk a címtárpartíciók láthatók. Az r2 tartományi partíciómon kívül a Configuration, Schema és a DNS AD integrált zónapartíciók. Az aktuális könyvtárnak beállítom az AD: meghajtót:

[3] PS C:\> cd ad:

Ahhoz, hogy még beljebb lépjek és a TAB billentyűvel ki lehessen egészíttetni az elérési utakat, a DistinguishedName értékét kell elkezdeni begépelni:

[4] PS AD:\> cd dc=r<tab>

És ebből lesz a TAB lenyomása után:

[4] PS AD:\> cd '.\DC=r2,DC=dom'

Ezt egy picit szokni kell, sajnos a sima Name gépelése nem vezet eredményhez. Nézzük, itt mi van:

[5] PS AD:\DC=r2,DC=dom> dir

 

Name                 ObjectClass          DistinguishedName

----                 -----------          -----------------

Builtin              builtinDomain        CN=Builtin,DC=r2,DC=dom

Computers            container            CN=Computers,DC=r2,DC=dom

Domain Controllers   organizationalUnit   OU=Domain Controllers,DC=r2,DC=dom

ForeignSecurityPr... container            CN=ForeignSecurityPrincipals,DC=r...

Infrastructure       infrastructureUpdate CN=Infrastructure,DC=r2,DC=dom

IT Admins            organizationalUnit   OU=IT Admins,DC=r2,DC=dom

LostAndFound         lostAndFound         CN=LostAndFound,DC=r2,DC=dom

Managed Computers    organizationalUnit   OU=Managed Computers,DC=r2,DC=dom

Managed Service A... container            CN=Managed Service Accounts,DC=r2...

Managed Users        organizationalUnit   OU=Managed Users,DC=r2,DC=dom

NTDS Quotas          msDS-QuotaContainer  CN=NTDS Quotas,DC=r2,DC=dom

Program Data         container            CN=Program Data,DC=r2,DC=dom

System               container            CN=System,DC=r2,DC=dom

Users                container            CN=Users,DC=r2,DC=dom

Ezek bizony a tartományi partíció legfelsőbb szintű konténerei és szervezeti egységei. Nézzünk bele a „Managed Users” szervezeti egységbe:

[6] PS AD:\DC=r2,DC=dom> cd '.\OU=Managed Users'

[7] PS AD:\OU=Managed Users,DC=r2,DC=dom> dir

 

Name                 ObjectClass          DistinguishedName

----                 -----------          -----------------

Beosztott Béla       user                 CN=Beosztott Béla,OU=Managed User...

CsoportTörölveLesz   group                CN=CsoportTörölveLesz,OU=Managed ...

Fájdalom Csilla      user                 CN=Fájdalom Csilla,OU=Managed Use...

Főnök Ferenc         user                 CN=Főnök Ferenc,OU=Managed Users,...

Vegetári János       user                 CN=Vegetári János,OU=Managed User...

És nézzük meg, hogy milyen adatokhoz jutunk hozzá egy felhasználóról:

[8] PS AD:\OU=Managed Users,DC=r2,DC=dom> Get-Item '.\CN=Beosztott Béla' | Form

at-List *

 

 

PSPath            : ActiveDirectory:://RootDSE/CN=Beosztott Béla,OU=Managed Us

                    ers,DC=r2,DC=dom

PSParentPath      : ActiveDirectory:://RootDSE/OU=Managed Users,DC=r2,DC=dom

PSChildName       : CN=Beosztott Béla

PSDrive           : AD

PSProvider        : ActiveDirectory

PSIsContainer     : True

distinguishedName : CN=Beosztott Béla,OU=Managed Users,DC=r2,DC=dom

name              : Beosztott Béla

objectClass       : user

objectGUID        : 20114f76-357d-4055-b607-d609101371e7

PropertyNames     : {distinguishedName, name, objectClass, objectGUID}

PropertyCount     : 4

        Látható, hogy itt sem férünk hozzá az összes AD tulajdonsághoz alaphelyzetben, így ha azokra van szükségünk, akkor meg kell adni a –properties paramétert is:

[24] PS AD:\OU=Managed Users,DC=r2,DC=dom> Get-Item '.\CN=Beosztott Béla' -prop

erties *

 

 

PSPath                : ActiveDirectory:://RootDSE/CN=Beosztott Béla,OU=Manage

                        d Users,DC=r2,DC=dom

PSParentPath          : ActiveDirectory:://RootDSE/OU=Managed Users,DC=r2,DC=d

                        om

PSChildName           : CN=Beosztott Béla

PSDrive               : AD

PSProvider            : ActiveDirectory

PSIsContainer         : True

accountExpires        : 9223372036854775807

badPasswordTime       : 0

badPwdCount           : 0

cn                    : Beosztott Béla

codePage              : 0

countryCode           : 0

description           : Demó

displayName           : Beosztott Béla

distinguishedName     : CN=Beosztott Béla,OU=Managed Users,DC=r2,DC=dom

dSCorePropagationData : {2009. 12. 07. 22:20:21, 2009. 12. 07. 22:16:42, 2009.

                         12. 07. 22:11:52, 2009. 12. 07. 21:41:10...}

givenName             : Béla

instanceType          : 4

lastKnownParent       : OU=Managed Users,DC=r2,DC=dom

lastLogoff            : 0

lastLogon             : 0

logonCount            : 0

memberOf              : {CN=CsoportTörölveLesz,OU=Managed Users,DC=r2,DC=dom}

msDS-LastKnownRDN     : Beosztott Béla

name                  : Beosztott Béla

nTSecurityDescriptor  : System.DirectoryServices.ActiveDirectorySecurity

objectCategory        : CN=Person,CN=Schema,CN=Configuration,DC=r2,DC=dom

objectClass           : user

objectGUID            : 20114f76-357d-4055-b607-d609101371e7

objectSid             : S-1-5-21-3398938913-3940250523-927435294-1124

primaryGroupID        : 513

pwdLastSet            : 129046772259930547

sAMAccountName        : bb

sAMAccountType        : 805306368

sn                    : Beosztott

title                 : melós

userAccountControl    : 512

userPrincipalName     : bb@r2.dom

uSNChanged            : 17055

uSNCreated            : 16959

whenChanged           : 2009. 12. 07. 22:20:21

whenCreated           : 2009. 12. 07. 17:33:45

PropertyNames         : {accountExpires, badPasswordTime, badPwdCount, cn...}

PropertyCount         : 37

Így már megkaptam az összes kitöltött AD tulajdonságát a felhasználónak.

Megjegyzés

A –properties tulajdonság un. dinamikus paraméter, azaz az aktuális elérési út PSProviderétől függ a jelenléte. Ha a fájlrendszerben vagyunk, akkor ilyen paramétere nincs a Get-Item cmdletnek. A jelenlegi PowerShell verzióban van egy kis hiányosság, ez a dinamikus paraméter TAB kiegészítéssel nem hívható elő sajnos. A help azért tud róla:

[25] PS AD:\OU=Managed Users,DC=r2,DC=dom> get-help Get-Item -Parameter propert

ies

 

-Properties <string[]>

    Specifies a comma-delimited list of properties to be retrieved for each it

    em (Active Directory object).  The * wildcard can be used to retrieve all

    properties.

 

    Required?                    false

    Position?                    named

    Default value

    Accept pipeline input?       false

    Accept wildcard characters?  false

További dinamikus paramétereink is vannak az ActiveDirectory provider környezetben:

‑Server, ‑GlobalCatalog, ‑SizeLimit, ‑PageSize, ‑FormatType.

Ha már ‑Server és ‑GlobalCatalog, akkor nézzük ugyanezt a felhasználót a Globális Katalóguson keresztül:

[32] PS AD:\OU=Managed Users,DC=r2,DC=dom> Get-Item '.\CN=Beosztott Béla' -prop

erties * -globalcatalog -server dc:3268

 

 

PSPath                : ActiveDirectory:://RootDSE/CN=Beosztott Béla,OU=Manage

                        d Users,DC=r2,DC=dom

PSParentPath          : ActiveDirectory:://RootDSE/OU=Managed Users,DC=r2,DC=d

                        om

PSChildName           : CN=Beosztott Béla

PSDrive               : AD

PSProvider            : ActiveDirectory

PSIsContainer         : True

cn                    : Beosztott Béla

description           : Demó

displayName           : Beosztott Béla

distinguishedName     : CN=Beosztott Béla,OU=Managed Users,DC=r2,DC=dom

dSCorePropagationData : {2009. 12. 07. 22:20:21, 2009. 12. 07. 22:16:42, 2009.

                         12. 07. 22:11:52, 2009. 12. 07. 21:41:10...}

givenName             : Béla

instanceType          : 4

memberOf              : {CN=CsoportTörölveLesz,OU=Managed Users,DC=r2,DC=dom}

name                  : Beosztott Béla

nTSecurityDescriptor  : System.DirectoryServices.ActiveDirectorySecurity

objectCategory        : CN=Person,CN=Schema,CN=Configuration,DC=r2,DC=dom

objectClass           : user

objectGUID            : 20114f76-357d-4055-b607-d609101371e7

objectSid             : S-1-5-21-3398938913-3940250523-927435294-1124

primaryGroupID        : 513

sAMAccountName        : bb

sAMAccountType        : 805306368

sn                    : Beosztott

userAccountControl    : 512

userPrincipalName     : bb@r2.dom

uSNChanged            : 17055

uSNCreated            : 16959

whenChanged           : 2009. 12. 07. 22:20:21

whenCreated           : 2009. 12. 07. 17:33:45

PropertyNames         : {cn, description, displayName, distinguishedName...}

PropertyCount         : 25

Látható, hogy az előző próbálkozás 37 AD tulajdonságával szemben itt csak 25 tulajdonságot kaptunk.

Nézzük akkor, hogy a hozzáférési lista hogyan érhető el ezen az AD: meghajtón keresztül a Get-Acl  cmdlet segítségével:

[18] PS AD:\DC=r2,DC=dom> Get-ChildItem | get-acl

Get-Acl : Cannot validate argument on parameter 'Path'. The argument is null,

empty, or an element of the argument collection contains a null value. Supply

a collection that does not contain any null values and then try the command ag

ain.

At line:1 char:24

+ Get-ChildItem | get-acl <<<<

    + CategoryInfo          : InvalidData: (OU=_TemplateOU,DC=r2,DC=dom:PSObj

   ect) [Get-Acl], ParameterBindingValidationException

    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Powe

   rShell.Commands.GetAclCommand

Sajnos egy újabb apró hiba van itt a PowerShellben, az AD objektumok PSPath tulajdonsága nem adódik át megfelelően a Get-ACL-nek, így a csővezetéken nem történik meg a paraméterátadás. Egy kis trükkel azonban megkerülhető a probléma:

[20] PS AD:\DC=r2,DC=dom> Get-ChildItem | foreach-object {get-acl -path $_.pspa

th}

 

Path                       Owner                     Access

----                       -----                     ------

ActiveDirectory:://Root... R2\Domain Admins          Everyone Deny  ...

ActiveDirectory:://Root... BUILTIN\Administrators    Everyone Allow  ...

ActiveDirectory:://Root... R2\Domain Admins          NT AUTHORITY\Authentic...

ActiveDirectory:://Root... R2\Domain Admins          Everyone Deny  ...

Egy konkrét objektumra:

[21] PS AD:\DC=r2,DC=dom> Get-Item '.\OU=Managed Users' | ForEach-Object {get-a

cl -Path $_.pspath} | Format-List

 

 

Path   : ActiveDirectory:://RootDSE/OU=Managed Users,DC=r2,DC=dom

Owner  : R2\Domain Admins

Group  : R2\Domain Admins

Access : NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS Allow

         NT AUTHORITY\Authenticated Users Allow

         NT AUTHORITY\SYSTEM Allow

         R2\Domain Admins Allow

         BUILTIN\Account Operators Allow

         BUILTIN\Account Operators Allow

         BUILTIN\Account Operators Allow

         BUILTIN\Account Operators Allow

         BUILTIN\Print Operators Allow

         R2\PSHelpDesk Allow

         R2\PSHelpDesk Allow

         R2\PSHelpDesk Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS Allow

         NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS Allow

         NT AUTHORITY\ENTERPRISE DOMAIN CONTROLLERS Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         NT AUTHORITY\SELF Allow

         R2\Enterprise Admins Allow

         BUILTIN\Pre-Windows 2000 Compatible Access Allow

         BUILTIN\Administrators Allow

Audit  :

Sddl   : O:DAG:DAD:AI(A;;LCRPLORC;;;ED)(A;;LCRPLORC;;;AU)(A;;CCDCLCSWRPWPDTLOC

         RSDRCWDWO;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;DA)(OA;;CCDC;bf967a86

         -0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967a9c-0de6-11d0-a285-00

         aa003049e2;;AO)(OA;;CCDC;4828cc14-1437-45bc-9b07-ad6f015e5f28;;AO)(OA

         ;;CCDC;bf967aba-0de6-11d0-a285-00aa003049e2;;AO)(OA;;CCDC;bf967aa8-0d

         e6-11d0-a285-00aa003049e2;;PO)(OA;CIIO;WP;;bf967aba-0de6-11d0-a285-00

         aa003049e2;S-1-5-21-3398938913-3940250523-927435294-1110)(OA;CIIO;CR;

         00299570-246d-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a285-00aa0030

         49e2;S-1-5-21-3398938913-3940250523-927435294-1110)(OA;CIIO;CR;ab721a

         53-1e2f-11d0-9819-00aa0040529b;bf967aba-0de6-11d0-a285-00aa003049e2;S

         -1-5-21-3398938913-3940250523-927435294-1110)(OA;CIIOID;RP;4c164200-2

         0c0-11d0-a768-00aa006e0529;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(O

         A;CIIOID;RP;4c164200-20c0-11d0-a768-00aa006e0529;bf967aba-0de6-11d0-a

         285-00aa003049e2;RU)(OA;CIIOID;RP;5f202010-79a5-11d0-9020-00c04fc2d4c

         f;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIOID;RP;5f202010-79a5

         -11d0-9020-00c04fc2d4cf;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;C

         IIOID;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;4828cc14-1437-45bc-9b07

         -ad6f015e5f28;RU)(OA;CIIOID;RP;bc0ac240-79a9-11d0-9020-00c04fc2d4cf;b

         f967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIOID;RP;59ba2f42-79a2-11

         d0-9020-00c04fc2d3cf;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIO

         ID;RP;59ba2f42-79a2-11d0-9020-00c04fc2d3cf;bf967aba-0de6-11d0-a285-00

         aa003049e2;RU)(OA;CIIOID;RP;037088f8-0ae1-11d2-b422-00a0c968f939;4828

         cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIOID;RP;037088f8-0ae1-11d2-

         b422-00a0c968f939;bf967aba-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIOID;

         RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a86-0de6-11d0-a285-00aa0

         03049e2;ED)(OA;CIIOID;RP;b7c69e6d-2cc7-11d2-854e-00a0c983f608;bf967a9

         c-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIOID;RP;b7c69e6d-2cc7-11d2-854

         e-00a0c983f608;bf967aba-0de6-11d0-a285-00aa003049e2;ED)(OA;CIIOID;LCR

         PLORC;;4828cc14-1437-45bc-9b07-ad6f015e5f28;RU)(OA;CIIOID;LCRPLORC;;b

         f967a9c-0de6-11d0-a285-00aa003049e2;RU)(OA;CIIOID;LCRPLORC;;bf967aba-

         0de6-11d0-a285-00aa003049e2;RU)(OA;CIID;RPWPCR;91e647de-d96f-4b70-955

         7-d63ff4f3ccd8;;PS)(A;CIID;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;EA)(A;CIID;LC

         ;;;RU)(A;CIID;CCLCSWRPWPLOCRSDRCWDWO;;;BA)

Gyakorlatilag egy ugyanolyan kimenetet kaptunk, mint a fájlrendszer esetében, persze az AD-ben egy kicsit bonyolultabbak ezek a biztonsági leírók, hiszen itt minden objektumnak a sémában definiált jó néhány explicit engedélybejegyzése is van.



Word To HTML Converter