ドメインユーザー情報を取得するには、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.