Active DirectoryはWindows Server 2012からいよいよPowerShellでの管理が主体となっています。 旧来のコマンドは非推奨となり、多くの情報が .NETをベースにPowerShellで操作可能です。
さて、今回はユーザー属性をユーザー名から取得する際のコマンド紹介です。 標準にないので作りましたが、活用していただければ幸いです。
コード
GitHubにおいておきました。
https://github.com/guitarrapc/PowerShellUtil/blob/master/ActiveDirectory/Get-ADUserAttributes.ps1
function Get-ADUserAttributes{ [CmdletBinding()] param( [parameter( position = 0, mandatory = 1)] [string[]] $users ) foreach ($user in $users) { $search = New-Object DirectoryServices.DirectorySearcher([ADSI]"") $search.filter = "(&(objectClass=user)(displayName=$user))" $results = $search.Findall() foreach($result in $results) { $userEntry = $result.GetDirectoryEntry() "$($userEntry.displayName):$($userEntry.sAMAccountName)" $userEntry | select * } } }
利用時は、ユーザーのフルネームを指定するだけです。 これだけで、指定したユーザーのユーザー属性 (User Attribute) が一覧取得できます。
$users = @("guitarrapc hogehoge") Get-ADUserAttributes -users $users
Domain管理上はDNやOUもあるといいのはわかっているのですが、名前だけで探したい時って多いです。 標準にないので簡易対処ですが、GUIやLDAP Queryより楽なので重宝します。