tech.guitarrapc.cóm

C#, PowerShell, Unity, Cloud, Serverless Technical Update and Features

PowerShell で Active Directory のユーザー 属性 (User Attribute) を取得する

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