ドメインユーザー情報を取得するには、Get-ADUser コマンドレットを使いますが、でも、Get-ADUser で得られる情報が、ドメインユーザープロパティに比べて圧倒的に少ないのが気になりませんか?

PS C:\> Get-ADUser -Filter { SamAccountName -eq "mura" } | fl *
DistinguishedName : CN=mura,CN=Users,DC=vwnet,DC=jp
Enabled : True
GivenName :
Name : mura
ObjectClass : user
ObjectGUID : 4fd33852-ee49-4058-ab37-b072c6c823f6
SamAccountName : mura
SID : S-1-5-21-4127486010-668491162-2501035895-1106
Surname : mura
UserPrincipalName : mura@vwnet.jp
PropertyNames : {DistinguishedName, Enabled, GivenName, Name...}
AddedProperties : {}
RemovedProperties : {}
ModifiedProperties : {}
PropertyCount : 10
|
ドメインユーザーは、LDAP 属性を沢山持っており、そのままでは一部の属性しかハンドリングできません。
全ての属性を取得するには Get-ADUser の -Properties * オプションを指定します。
PS C:\> Get-ADUser -Filter { SamAccountName -eq "mura" } -Properties *
AccountExpirationDate :
accountExpires : 9223372036854775807
AccountLockoutTime :
AccountNotDelegated : False
adminCount : 1
AllowReversiblePasswordEncryption : False
AuthenticationPolicy : {}
AuthenticationPolicySilo : {}
BadLogonCount : 0
badPasswordTime : 131541002409296671
badPwdCount : 0
CannotChangePassword : False
CanonicalName : vwnet.jp/Users/mura
以下省略
|
大量に属性が取得できましたが、実はこれが全てはなく、値がセットされていないと属性が取得できないものも多くあるのです。
その一つに info 属性があります。
PS C:\> Get-ADUser -Filter { SamAccountName -eq "mura" } -Properties info
DistinguishedName : CN=mura,CN=Users,DC=vwnet,DC=jp
Enabled : True
GivenName :
Name : mura
ObjectClass : user
ObjectGUID : 4fd33852-ee49-4058-ab37-b072c6c823f6
SamAccountName : mura
SID : S-1-5-21-4127486010-668491162-2501035895-1106
Surname : mura
UserPrincipalName : mura@vwnet.jp
|
このように info 属性そのものが取れていません。
それでは、info 属性の GUI である [電話]-[メモ] に適当なテキストを書いてみると、

PS C:\> Get-ADUser -Filter { SamAccountName -eq "mura" } -Properties info
DistinguishedName : CN=mura,CN=Users,DC=vwnet,DC=jp
Enabled : True
GivenName :
info : This is test memo
ZZzzzz....
Name : mura
ObjectClass : user
ObjectGUID : 4fd33852-ee49-4058-ab37-b072c6c823f6
SamAccountName : mura
SID : S-1-5-21-4127486010-668491162-2501035895-1106
Surname : mura
UserPrincipalName : mura@vwnet.jp
|
属性と値が取れるようになりました。
このように、どの属性に値がセットされたかを確認する場合は、GUI で実際に値を設定して確認するが一番確実です。
ちなみに、pwdLastSet のように、FileTime 形式になっている属性は、[System.DateTime]::FromFileTime(値) で変換すれば datetime 形式になります。
属性はハッシュテーブル構造になっているので、ハッシュテーブル形式を Set-ADUser の -Add オプションで追加するか、-Replace オプションで更新します。
|
info 属性は以下のように `r`n で区切ってセットすると複数行書けます。
|
関数にするとこんな感じですね
|
AD のセキュリティグループ/OUメンバー情報と「説明」を PowerShellで表示する
http://www.vwnet.jp/Windows/WS12R2/2017041301/GetMemberDescription.htm
関数を PowerShell プロンプトで実行する
http://www.vwnet.jp/Windows/PowerShell/2016100401/UseFunctionInPsPrompt.htm
All Attributes - Win32 apps | Microsoft Docs
https://docs.microsoft.com/en-us/windows/win32/adschema/attributes-all?WT.mc_id=WD-MVP-36880
![]()
![]()
Copyright © MURA All rights reserved.