VBScriptでドメインのユーザー情報を取得し、最終ログオン日を取得したいのですが。
よろしくお願いいたします。
ユーザー名、フルネーム、コメント、最終パスワード変更日時、アカウント有効/無効の情報は取得できています。
ソースは・・・
Set objDomain = GetObject("WinNT://" & Domain)
Set User = GetObject("WinNT://" & Domain)
For each U in User
If U.Class = "User" Then
Set objUserName = GetObject("WinNT://" & Domain & "/" & U.Name)
strName = objUserName.name '<==== ユーザー名
strFullName = objUserName.FullName '<==== フルネーム
strDesc = objUserName.Description '<==== コメント
strAccDis = objUserName.AccountDisabled '<==== アカウント
strAccLock = objUserName.IsAccountLocked '<==== アカウント
strPwdExp = objUserName.PasswordExpired '<==== パスワード
strPwdExpD = objUserName.PasswordExpiranationDate '<== パスワード
End If
Next
objUsername.LastLogin で、取れませんか?
以上。
ご返答ありがとうございます。試して見ましたが以下のエラーになります。
エラー:Active Directory プロパティがキャッシュに見つかりません。
コード:8000500D
ソース:Active Directory
以上
ドメインはNTドメインです。よろしくお願いいたします。
VBScript のバージョンは?
確かにそのエラーは発生した経験がありましたが・・・
あと、それを実行するマシンは、そのドメイン傘下に
あるマシンですか?尚、Administrator認証を超えて
いれば問題ありませんが、一般ユーザーの場合、その
エラーが発生したように思います。
※ こちらでは全てワークグループ環境になっています
ので、ドメイン傘下での動作確認ができない為、
解決の糸口をつかめるかどうか・・・
ただ、上記のメソッドで取れていますので・・・
参考
ADSIスクリプトによる
Windows2000システム管理
ピアソン・エデュケーション
ISBN4-89471-288-1 \ 5,800.-
以上。
ご返答ありがとうございます。
VBScriptのバージョンは・・・vbscript.dll[5.6.08515]です。
またドメイン傘下にあるマシンでAdmin権限ありです。
諦めたくはないですが、NTドメインではダメなのでしょうか?
私の環境には、一応、NTドメインあります。
ので、実験してみました。
裏技?ですが、ドメイン傘下に無いマシンから、objUsername.LastLogin
で情報が取れるかどうか・・・
無事取れました。
ドメインサーバーの共有リソースに、NET USE で接続し、その際、
ドメイン・ユーザー認証をさせましたので、ドメイン傘下に無く
ても認証を超えればOKのようです。
VBScript のバージョンは、5.6.0.7426 でした。
では、何の差異で、動作が違うのか・・・その辺は解りません
が・・・
ご参考までに。
以上。
因みに・・・
VB6 とかで作成したものでは、どうですか?
VB6 で動いて、VBScriptでダメだとか・・・
可能であれば、ご確認下さい。
以上。
ご返答ありがとうございます。何度もアドバイス頂き助かります。
ところが・・・ドメイン傘下しなくても同じエラーになってしまいます。
そちらで出来てこちらで出来ないとなると何がどう違うのかさっぱり解りません。
VB6で作成はしていませんが、試してみたいと思います。
何せ初心者レベルですので時間が掛かるかもしれませんが。
よろしくお願いいたします。
もうずいぶん古いご質問なので解決済みかもしれませんが…
lastlogon属性はDC間でレプリケートされないので、BDCを立てて運用
されているならこの問題かもしれません。
↓参考URL
http://www.activexperts.com/activmonitor/windowsmanagement/adsi/