インストールレスプログラミング( ´ー`)

VBA , JavaScript , HTAなど 365アプリはインストール必要ですが、仕事に無いケースはほぼないから(・_・;)

ActiveDirectoryからログインしている自分自身の情報を取得

ユーザー名じゃなくて,表示名,フルネームがほしい場合について調べていたメモがノートにあったので,自分用にまとめます。

ユーザーネームを取得してみて,知りたいのはこれじゃあないんだ!
となったときに必死に調べて,自分に関係ある部分だけ抜き取ったのが下記のものです。

全く理解できてませんが,職場で試してみてうまくいったことは覚えてます。
ただ,ネットワークに不参加の場合本題のコードはだめでしたので,保険をかける必要がありました。


Sub test()
    'ネットワーク不参加時はエラーが出るので保険
    Debug.Print VBA.Interaction.Environ$("UserName")
    'ExcelやWordを利用
    Dim XLApp As Object
    Set XLApp = CreateObject("Excel.Application")
    Debug.Print XLApp.username
    '本題
    Dim objADSystemInfo As Variant: Set objADSystemInfo = CreateObject("ADSystemInfo")
    Dim objUser As Variant: Set objUser = GetObject("LDAP://" & objADSystemInfo.username)
    
    Debug.Print objUser.DisplayName   '表示名
    Debug.Print objUser.userPrincipalName  'ユーザーログオン名
    
End Sub

職場でしか試せないので,チェックできておりません。

情報元はこちらのページです。
pnpk.net