- - PR -
ASPによるActiveDirectory情報の閲覧
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-01-28 10:48
こんにちわ。
ASPによるActiveDirectory情報の閲覧について質問させて頂きます。 最終ログオンから一定の時間が経過したユーザを一覧表示したいと考えております。 以下の方法で cn,distinguishedName,displayName 等のいくつかの項目は 見ることができたのですが、 lastLogon,lastLogonTimestamp については Response.Writeによる表示を試みた時点で 「ASP 0185 (0x80020003) オブジェクトの既定のプロパティがありません。」 のエラーが出てしまいます。 lastLogon,lastLogonTimestamp はLDapBrowse等のツールで見ると 「127480873391093750」のような形で表示されていますが、 このようなデータ型はASPから参照できるのでしょうか。 また、WHERE句による抽出は可能でしょうか。 以下、ソースになります。 Set con = Server.CreateObject("ADODB.Connection") con.ConnectionString = "Provider=ADSDSOObject;User ID=TestUser;Password=TestUser;" con.Open Set com = CreateObject("ADODB.Command") Set com.ActiveConnection = con com.CommandText = "select cn,distinguishedName,displayName,lastLogon " _ & "from 'LDAP://172.16.1.1/DC=home,DC=local' " _ & "WHERE objectClass = 'user' AND cn = '9*'" Set rs = com.Execute Response.Write rs.Fields("cn") Response.Write rs.Fields("distinguishedName") Response.Write rs.Fields("displayName") 以上、宜しくお願い致します。 | ||||||||
|
投稿日時: 2005-01-29 12:03
ちゃっぴです。
先日、似たようなことをやりましたが・・・ とはいっても、VBScriptでADOを使用せず、ActiveDS.IADsUserを取得して、 LastLogin Propertyで取得しましたが・・・ IADsUser Property Methods http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adsi/adsi/iadsuser.asp
ADのSchema "LastLogin" はObject型で持ってますね。 VarType, TypeName関数等を用いればすぐにわかると思います。 問題は、このObject型からどうやって日付を取り出すかですが・・・ 調査不足のため、ちょっとわかりません・・・ あと、前述の私の方法では、同じDomain内でも参照しているDomain Controlerに よって異なる日付が返されました。 なので、Domain内に存在するすべてのDomain Controlerにたいして、 Requestを投げ、もっとも新しい物をしようするという風にしました。 ご参考までに・・・ [ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2005-01-29 12:07 ] [ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2005-01-29 12:12 ] | ||||||||
|
投稿日時: 2005-01-29 13:11
ADSI Editを使用して調査したところ、 「Large Integer/Interval」となっていました。 おそらくこれでは? IADsLargeInteger http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adsi/adsi/iadsuser.asp Large Integer Property Type http://msdn.microsoft.com/library/default.asp?url=/library/en-us/sds/sds/large_integer_property_type.asp こんなかんじでいけるかと・・・
1/10000に丸めてるのでそこら辺はご修正ください。 あと、これはAPIで使用されるFILETYME構造体のようですので、 FileTimeToLocalFileTime, FileTimeToSystemTime API を使用した COMを作っておいたほうがいいでしょうね。 [ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2005-01-29 13:18 ] [ メッセージ編集済み 編集者: ちゃっぴ 編集日時 2005-01-29 13:51 ] | ||||||||
|
投稿日時: 2005-02-23 13:49
非常に遅くなってしまいましたが…
出来ました! 成る程、Large Integer型だったのですね。 FILETYME構造体についてはゴリゴリ演算してしまい、 無事、抽出と参照ができました。 ちゃっぴさま、ありがとうございました。 |
1