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 : |
これで、セキュリティグループの「説明」付きのメンバーリストが取れますね。
実は「説明」付きでメンバーを 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 |
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
Copyright © MURA All rights reserved.