トップ回答者
Powershell(net user $domeinuser /domain の結果のフルネームを取得したい)

質問
回答
-
チャブーンです。
この件ですが、佐祐理さんからも出ていますが、PowerShellの「System.DirectoryServices.DirectoryEntry()」で得られるActive Directoryオブジェクトの「displayName」が、該当項目にあたると思います。
Get-ADUserコマンドレットを使えば、上記のADオブジェクトは簡単に取得できます。ですがこのコマンドレットは「Active Directory管理ツール」をインストールしないと使えません。このツールをインストールしない場合、「System.DirectoryServices.DirectorySearcher()」というAD検索の機能を使うことになります。
$domeinuser = "<アカウント名>" #変数名に誤字があると思いますが。。 $objDomain = New-Object System.DirectoryServices.DirectoryEntry $objSearcher = New-Object System.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = $objDomain $objSearcher.SearchScope = "Subtree" $sAMAccountName = $domeinuser $strFilter = "(&(objectCategory=User)(sAMAccountName=$sAMAccountName))" $objSearcher.Filter = $strfilter $objUser = ($objSearcher.Findone()).GetDirectoryEntry() Write-Host $domeinuser " のフルネームは " $objUser.displayName " です。"
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
- 回答の候補に設定 Haruka6002Microsoft contingent staff, Moderator 2019年5月6日 2:25
- 回答としてマーク Haruka6002Microsoft contingent staff, Moderator 2019年10月23日 3:04
すべての返信
-
Windows 8.1以降のGet-ADUserで得られるADUserオブジェクト、そのNameプロパティでしょうか。
-
チャブーンです。
この件ですが、佐祐理さんからも出ていますが、PowerShellの「System.DirectoryServices.DirectoryEntry()」で得られるActive Directoryオブジェクトの「displayName」が、該当項目にあたると思います。
Get-ADUserコマンドレットを使えば、上記のADオブジェクトは簡単に取得できます。ですがこのコマンドレットは「Active Directory管理ツール」をインストールしないと使えません。このツールをインストールしない場合、「System.DirectoryServices.DirectorySearcher()」というAD検索の機能を使うことになります。
$domeinuser = "<アカウント名>" #変数名に誤字があると思いますが。。 $objDomain = New-Object System.DirectoryServices.DirectoryEntry $objSearcher = New-Object System.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = $objDomain $objSearcher.SearchScope = "Subtree" $sAMAccountName = $domeinuser $strFilter = "(&(objectCategory=User)(sAMAccountName=$sAMAccountName))" $objSearcher.Filter = $strfilter $objUser = ($objSearcher.Findone()).GetDirectoryEntry() Write-Host $domeinuser " のフルネームは " $objUser.displayName " です。"
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
- 回答の候補に設定 Haruka6002Microsoft contingent staff, Moderator 2019年5月6日 2:25
- 回答としてマーク Haruka6002Microsoft contingent staff, Moderator 2019年10月23日 3:04
-
チャブーンです。
ADSIでもいいんじゃないですかね
なるほど。ワンライナーで行うにはそれが簡単ですね。ですが、LDAPによるADsPathには問題がありまして、「アカウント名」だけだとフルパスを構成できず、結局検索操作が必要になる点です。
net userといっているので、ここはWinNTプロバイダーを使えば、かなり簡単にできますね。
([ADSI]"WinNT://<NetBIOSドメイン名>/$domeinuser").FullName
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。