Home > Windows にまつわる e.t.c.

AD のセキュリティグループ/OUメンバー情報と「説明」を PowerShell で取得する


AD のセキュリティグループ メンバー取得するって Get-ADGroupMember で出来るじゃん。何をいまさら? と思われたそこの方、「説明」が取れなくて困っていませんか?

 

 

GUI 操作では、AD オブジェクトに「説明」を書いて人が区別しやすいようにしていますが、Get-ADGroupMember ではこの情報が欠落してしまいます。

 

セキュリティグループ メンバーを「説明」と一緒に取得する

それではセキュリティグループ メンバーの「説明」を取得する方法です。

セキュリティグループ メンバーの取得は、Get-ADGroupMember が簡単なので、こいつでグループメンバーを取得します。

"Administrators" メンバーを Get-ADGroupMember で取得すると、3 つメンバーがありるのがわかりますが、先に説明したように「説明」に該当する部分が欠落しています。

PS C:\> [array] $Members = Get-ADGroupMember "Administrators"
PS C:\> $Members.count
3
PS C:\> $Members


distinguishedName : CN=Domain Admins,CN=Users,DC=contoso,DC=com
name              : Domain Admins
objectClass       : group
objectGUID        : 2c022feb-5ffc-4f5d-8a4b-45f5bf422370
SamAccountName    : Domain Admins
SID               : S-1-5-21-490406938-2680181530-225224000-512

distinguishedName : CN=Enterprise Admins,CN=Users,DC=contoso,DC=com
name              : Enterprise Admins
objectClass       : group
objectGUID        : 5d8f30b7-76c3-443b-ad40-b924776a24d1
SamAccountName    : Enterprise Admins
SID               : S-1-5-21-490406938-2680181530-225224000-519

distinguishedName : CN=Administrator,CN=Users,DC=contoso,DC=com
name              : Administrator
objectClass       : user
objectGUID        : 5ea7b9d4-7193-46a0-a4e7-04878d9ec74f
SamAccountName    : Administrator
SID               : S-1-5-21-490406938-2680181530-225224000-500

 

この問題を解決するのが Get-ADxxx コマンドレットです。

最初のメンバーの objectClass を見ると、group になっているので、セキュリティグループであることがわかります。

セキュリティグループなので、Get-ADGroup を使って -SearchBase に該当メンバーを渡し、アカウント情報を取り直します。

この時のミソは -Properties で LDAP 属性の Description を追加する点です。

PS C:\> Get-ADGroup -Filter * -SearchBase $Members[0] -Properties Description


Description       : ドメインの管理者
DistinguishedName : CN=Domain Admins,CN=Users,DC=contoso,DC=com
GroupCategory     : Security
GroupScope        : Global
Name              : Domain Admins
ObjectClass       : group
ObjectGUID        : 2c022feb-5ffc-4f5d-8a4b-45f5bf422370
SamAccountName    : Domain Admins
SID               : S-1-5-21-490406938-2680181530-225224000-512

 

3番目のメンバーはユーザーなので、Get-ADUser でアカウント情報を取ってみます。

PS C:\> Get-ADUser -Filter * -SearchBase $Members[2] -Properties Description


Description       : コンピューター/ドメインの管理用 (ビルトイン アカウント)
DistinguishedName : CN=Administrator,CN=Users,DC=contoso,DC=com
Enabled           : True
GivenName         :
Name              : Administrator
ObjectClass       : user
ObjectGUID        : 5ea7b9d4-7193-46a0-a4e7-04878d9ec74f
SamAccountName    : Administrator
SID               : S-1-5-21-490406938-2680181530-225224000-500
Surname           :
UserPrincipalName :

 

これで、セキュリティグループの「説明」付きのメンバーリストが取れますね。

 

OU メンバーを「説明」と一緒に表示する

実は「説明」付きでメンバーを query するのは、-SearchBase に OU の DistinguishedName を指定するだけなのでセキュリティグループより OU の方が簡単だったりします。

ObjectClass コマンドレット
user Get-ADUser
group Get-ADGroup
organizationalUnit Get-ADOrganizationalUnit
* Get-ADObject

 

ユーザー

PS C:\> Get-ADUser -Filter * -SearchBase "CN=Users,DC=contoso,DC=com" -Properties Description


Description       : コンピューター/ドメインの管理用 (ビルトイン アカウント)
DistinguishedName : CN=Administrator,CN=Users,DC=contoso,DC=com
Enabled           : True
GivenName         :
Name              : Administrator
ObjectClass       : user
ObjectGUID        : 5ea7b9d4-7193-46a0-a4e7-04878d9ec74f
SamAccountName    : Administrator
SID               : S-1-5-21-490406938-2680181530-225224000-500
Surname           :
UserPrincipalName :

Description       : コンピューター/ドメインへのゲスト アクセス用 (ビルトイン アカウント)
DistinguishedName : CN=Guest,CN=Users,DC=contoso,DC=com
Enabled           : False
GivenName         :
Name              : Guest
ObjectClass       : user
ObjectGUID        : 87bb3feb-b64d-4796-a330-e99a05f572d7
SamAccountName    : Guest
SID               : S-1-5-21-490406938-2680181530-225224000-501
Surname           :
UserPrincipalName :

Description       : キー配布センター サービス アカウント
DistinguishedName : CN=krbtgt,CN=Users,DC=contoso,DC=com
Enabled           : False
GivenName         :
Name              : krbtgt
ObjectClass       : user
ObjectGUID        : 76ea7806-fe2d-4fcf-824c-96078912ecd1
SamAccountName    : krbtgt
SID               : S-1-5-21-490406938-2680181530-225224000-502
Surname           :
UserPrincipalName :

Description       :
DistinguishedName : CN=user 01,CN=Users,DC=contoso,DC=com
Enabled           : True
GivenName         : 01
Name              : user 01
ObjectClass       : user
ObjectGUID        : 6dfe14de-5ed4-4697-a294-2b7078e6033d
SamAccountName    : user01
SID               : S-1-5-21-490406938-2680181530-225224000-1108
Surname           : user
UserPrincipalName : user01@contoso.com

 

コンピューター

PS C:\> Get-ADComputer -Filter * -SearchBase "CN=Computers,DC=contoso,DC=com" -Properties Description


Description       : Test 01
DistinguishedName : CN=DESKTOP-0AG81B0,CN=Computers,DC=contoso,DC=com
DNSHostName       : DESKTOP-0AG81B0.contoso.com
Enabled           : True
Name              : DESKTOP-0AG81B0
ObjectClass       : computer
ObjectGUID        : 07c08602-ae7f-4952-8f35-3e1cbfcf1cfc
SamAccountName    : DESKTOP-0AG81B0$
SID               : S-1-5-21-490406938-2680181530-225224000-1104
UserPrincipalName :

Description       : Test 02
DistinguishedName : CN=DESKTOP-I0TCLSU,CN=Computers,DC=contoso,DC=com
DNSHostName       : DESKTOP-I0TCLSU.contoso.com
Enabled           : True
Name              : DESKTOP-I0TCLSU
ObjectClass       : computer
ObjectGUID        : 374a61a0-8718-4e56-adf5-960afddb77eb
SamAccountName    : DESKTOP-I0TCLSU$
SID               : S-1-5-21-490406938-2680181530-225224000-1105
UserPrincipalName :

 

セキュリティグループ

PS C:\> Get-ADGroup -Filter * -SearchBase "CN=Users,DC=contoso,DC=com" -Properties Description


Description       : Members of this group can access WMI resources over management protocols (such as WS-Management via
                     the Windows Remote Management service). This applies only to WMI namespaces that grant access to t
                    he user.
DistinguishedName : CN=WinRMRemoteWMIUsers__,CN=Users,DC=contoso,DC=com
GroupCategory     : Security
GroupScope        : DomainLocal
Name              : WinRMRemoteWMIUsers__
ObjectClass       : group
ObjectGUID        : 96e88995-c268-46fa-9fa8-02d56b608ffb
SamAccountName    : WinRMRemoteWMIUsers__
SID               : S-1-5-21-490406938-2680181530-225224000-1000

Description       : ドメインのすべてのワークステーションとサーバー
DistinguishedName : CN=Domain Computers,CN=Users,DC=contoso,DC=com
GroupCategory     : Security
GroupScope        : Global
Name              : Domain Computers
ObjectClass       : group
ObjectGUID        : 56027164-9905-4062-b806-987885c1a1f7
SamAccountName    : Domain Computers
SID               : S-1-5-21-490406938-2680181530-225224000-515

Description       : ドメインのすべてのドメイン コントローラー
DistinguishedName : CN=Domain Controllers,CN=Users,DC=contoso,DC=com
GroupCategory     : Security
GroupScope        : Global
Name              : Domain Controllers
ObjectClass       : group
ObjectGUID        : 1fb6fac0-2f71-4c71-9f8c-c669a2d79fde
SamAccountName    : Domain Controllers
SID               : S-1-5-21-490406938-2680181530-225224000-516

 

OU

PS C:\> Get-ADOrganizationalUnit -Filter * -SearchBase "DC=contoso,DC=com" -Properties Description


City                     :
Country                  :
Description              : Default container for domain controllers
DistinguishedName        : OU=Domain Controllers,DC=contoso,DC=com
LinkedGroupPolicyObjects : {CN={6AC1786C-016F-11D2-945F-00C04fB984F9},CN=Policies,CN=System,DC=contoso,DC=com}
ManagedBy                :
Name                     : Domain Controllers
ObjectClass              : organizationalUnit
ObjectGUID               : 1170dd81-07f4-41aa-8943-cdeb6e1f4b38
PostalCode               :
State                    :
StreetAddress            :

 

DistinguishedName は、Apache Directory Studio 等のサードパーティー製 LDAP Query ツールを使うか、ターゲットに含まれるオブジェクトを Get-ADxxx で検索して DistinguishedName 調べます。

 

関連情報

PowerShell でドメインユーザーの全属性を操作する
http://www.vwnet.jp/Windows/PowerShell/2017110701/OperationADUserAttribute.htm

 

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.