- PR -

アプリケーションよりログインユーザ情報を取得したい

投稿者投稿内容
かわさり
会議室デビュー日: 2004/07/29
投稿数: 5
投稿日時: 2004-07-29 13:21
初めて投稿いたします、かわさりと申します。

クライアントPCで起動するアプリケーションから、ADSIを使用して
そのクライアントPCで現在ドメインにログインしているユーザの
ActiveDirectoryに登録された情報(アカウント、氏名やADsPath)
を取得する方法を探しています。

VC++6.0を使用していますが、VBであっても何かヒントをいただければと
思っております。

上記質問内容に関して検索したところ、ほぼ同じ質問の投稿があったのですが、
回答リンク先がFile Not Foundで参照できず解決できませんでした。
重複した質問になってしまい申し訳ありません。

ご教授のほどよろしくお願いいたします。
かわさり
会議室デビュー日: 2004/07/29
投稿数: 5
投稿日時: 2004-07-30 11:24
かわさりです。

前記の件について調査した結果、
「現在ドメインにログインしているユーザに関する情報」を
クライアントのアプリケーションで得るためには、
ADSIのIADsADSystemInfoインタフェースを使用すればよいのではないかと
思うに至りました。

早速IADsADSystemInfoを使用してプロパティを取得したところ
DomainDNSNameは問題なく取得できたのですが、
他のプロパティ(ComputerNameやuserName)は取得されず
プログラム自体が終了してしまいました。
エラーも出ていません。

サーバはWindows Server 2003
クライアントはWindows 2000 Professional
という環境です。

前記の件およびこの原因についてご存知の方、
また私の間違いをご指摘くださる方、
ご教授のほどよろしくお願いいたします。


また、Microsoft msdn のADSIリファレンスには
IADsADSystemInfoについての説明が記載されている一方、
ローカルのADSISDK onLineBookにはIADsADSystemInfoに関する記載が
ありませんでした。
onLineBookではADSI2.5に関する説明が書いてあり、
現在の最新版で間違いないと思うのですか…

質問の仕方、情報の提示に不足がございましたら
そちらもご指摘のほどよろしくお願いいたします。
なな
ぬし
会議室デビュー日: 2003/06/22
投稿数: 659
お住まい・勤務地: 愛知県
投稿日時: 2004-07-30 20:51
VB6でも同様の状況でしょうか?

Dim a As New ADSystemInfo
Debug.Print a.DomainDNSName
Debug.Print a.ComputerName
Debug.Print a.UserName
kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-07-31 00:05
こんばんわ.

わき道に逸れ気味な話ですのでご興味がなければ見過ごしてください.

logon してる domain や user account は 環境変数からも読み取れます.あるいは computer name や logon server なども同様です.
bat や command script では環境変数からそれらを読み取って,分岐処理させたりすることもあります.

既にご存知であれば読み捨ててください.
なな
ぬし
会議室デビュー日: 2003/06/22
投稿数: 659
お住まい・勤務地: 愛知県
投稿日時: 2004-08-02 08:10
環境変数では、ADsPathが取得できないのでは?

kaz
ぬし
会議室デビュー日: 2003/11/06
投稿数: 5403
投稿日時: 2004-08-02 08:55
おはようございます.
引用:

ななさんの書き込み (2004-08-02 08:10) より:
環境変数では、ADsPathが取得できないのでは?


たしかに.
なので,「username や computer name くらい」なお話です.
なので「ActiveDirectory を意識した内容」はご注意いただいたとおり,
取得できませんです.

失礼しました.
かわさり
会議室デビュー日: 2004/07/29
投稿数: 5
投稿日時: 2004-08-02 14:34
かわさりです。
ご返答ありがとうございます!!

ななさん
VBでもドメイン名は表示できるが、PC名ユーザ名は表示されないという
同じ結果でした。
ただ、VBでは
「リモートサーバ機は存在しないか利用できない」
という内容のエラー(Runtimeエラー'462')が返って来、
少し進むことができました。
これからここを調べてみます。

kazさん
環境変数からの取得はきちんと意識できていませんでした。
そちらからのアプローチも必要になりそうです。

また、エラーが出ている同じファイルをサーバ機上で実行すると、
ユーザ名まで全て表示できました。(VBでも同様です。)

引き続き、ご助言ご教授のほどお願いいたします。
なな
ぬし
会議室デビュー日: 2003/06/22
投稿数: 659
お住まい・勤務地: 愛知県
投稿日時: 2004-08-04 08:33
引用:

「リモートサーバ機は存在しないか利用できない」



名前解決(NetBIOS名,DNS名)あたりが怪しそうですが...
# 確証ありません

スキルアップ/キャリアアップ(JOB@IT)