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 より楽なので重宝します。
よろしければどうぞ。