- PR -

ActiveDirectoryからlastLogonを引き出す方法

1
投稿者投稿内容
INVENT
常連さん
会議室デビュー日: 2006/03/10
投稿数: 42
投稿日時: 2006-07-28 12:29
こんにちは。

Windows2000 ServerのActiveDirectoryから
退職したユーザーの最終ログオン日時をドメインから参照する為、
Net user "User Name" /domainで調べていたのですが、
ある日突然、最終ログオン日時が表示されなくなってしまいました。

原因がよくわからない為、ユーザーのlastLogon情報を
以下、MSのサイトに記載されているスクリプトを使用して調べる事にしました。
http://www.microsoft.com/japan/technet/scriptcenter/topics/win2003/lastlogon.mspx

ただし、Windows2000にはlastLogonTimestampがないのでlastLogonに変更しています。
以下のようなScriptを実行すると、

****************************************************************************
Set objUser = GetObject("LDAP://cn=taro yamada,OU=hoge,dc=jp,dc=hoge,dc=com")
Set objLastLogon = objUser.Get("lastLogon")

intLastLogonTime = objLastLogon.HighPart * (2^32) + objLastLogon.LowPart
intLastLogonTime = intLastLogonTime / (60 * 10000000)
intLastLogonTime = intLastLogonTime / 1440

Wscript.Echo "Last logon time: " & intLastLogonTime + #1/1/1601#
****************************************************************************

時間は表示される事はされるのですが正確な時間なのかわかりません。
理由としましては色々なアカウントでScriptを試したのですが、
ほとんどが23:53頃と表示され、自分のアカウントも、
Net user "User Name" /domainで表示される時間とScriptを
実行した際に表示される時間が合いません。

計算式が間違えているのでしょうか?
自分はScriptの知識がない為、このような質問なのですが
更に欲を言えばScriptを実行した際に、GetObjectのCN,OU,DCを
手動で入力できるようにScriptを組めればと思います。

どなたかお分かりになる方がいましたらご教授いただきたく御願いいたします。
或いは別の方法(Script以外の方法など)がありましたら教えていただきたいです。

また、ActiveDirectoryの設定やADSI Editを使う事により、
net user hoge /domainでラストログイン日時を表示させる事は
できませんでしょうか?
(質問違いでしたらお詫び申し上げます)

net userにこだわる理由としましては、
アカウント情報の参照をするのはオペレーターである為、
なるべく簡単な操作にしたいと思っています。

どうぞ宜しく御願いいたします。
1

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