@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

ADのユーザのログオン・ログオフ時間の監査について

1
投稿者投稿内容
見習管理者
ベテラン
会議室デビュー日: 2003/06/17
投稿数: 64
投稿日時: 2006-03-29 14:42
お世話になります。

表題の件についてですが、
http://www.monyo.com/technical/windows/35.html
を参考にグループポリシーを使用してユーザのログオン・ログオフ時間を
イベントビューアに吐き出しています。
スクリプトの内容は
コード:
Const AUDIT_SUCCESS = 8

Set objShell = WScript.CreateObject("WScript.Shell")
Set objNetwork = WScript.CreateObject("WScript.Network")
Set objADSys = CreateObject("ADSystemInfo")

strMsg = "ユーザ " + objNetwork.UserName + " が、ドメイン " + _
    objNetwork.UserDomain + " (サーバ " + objADSys.GetAnyDCName + _
    ") にログオンしました。" 

objShell.LogEvent AUDIT_SUCCESS, strMsg, objADSys.GetAnyDCName



しかしユーザ数が200くらいなのですが、イベントビューアのアプリケーションログ
がいっぱいになってしまいます。また、他のアプリケーションログと一緒になって
しまい、分かりにくいです。

そこで、吐き出し先をたとえばテキストファイルなどに変更できるのでしょうか?
もしくは、ログオン・ログオフを監視するソフトなどありますでしょうか?

以上よろしくお願いします。
ue
ぬし
会議室デビュー日: 2005/05/07
投稿数: 581
お住まい・勤務地: 広島市
投稿日時: 2006-03-29 19:09
こんにちは。

引用:

そこで、吐き出し先をたとえばテキストファイルなどに変更できるのでしょうか?


テキストファイルに変更することは可能です。
strMsg 変数を書き込みのメソッドに渡してください。
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/script56/html/sgworkingwithfiles.asp

http://www.happy2-island.com/vbs/cafe02/capter00207.shtml

ログの閲覧には Log Parser を活用すると面白いと思います。
http://www.microsoft.com/japan/technet/community/columns/profwin/pw0505.mspx

http://www.microsoft.com/downloads/details.aspx?FamilyID=890cd06b-abf8-4c25-91b2-f8d975cf8c07&DisplayLang=ja
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-03-30 02:18
引用:
そこで、吐き出し先をたとえばテキストファイルなどに変更できるのでしょうか?



script でやるんでしょうから、やめておいたほうがいいと思いますが?
logon script に組み込むってことは、同時にその text に複数 access する可能性が
ありますよね。なんで lock のからみで使い物にならないかと。

普通はそれを待ち受ける service とかを起動しておいて出力はそれを通じて行うように
しますが、script ではできないでしょうから・・・

event log に出力させるのが正攻法だと思いますがね。
で、拾い集めて text に出力する batch を作ってやればいいわけで・・・

あとは、DB を用意してやって、そこに直接出力するようにするとか・・・
見習管理者
ベテラン
会議室デビュー日: 2003/06/17
投稿数: 64
投稿日時: 2006-03-30 15:27
ueさん、ちゃっぴさん、こんにちは。
ありがとうございます。

まとめレスで申し訳ありません。

ueさんのURLを参考にして以下のコードを作成しました。
コード:
Dim fso, ts
Const ForWriting = 8
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.OpenTextFile("c:\\\\test1.txt", ForWriting)


Const AUDIT_SUCCESS = 8
Set objShell = WScript.CreateObject("WScript.Shell")
Set objNetwork = WScript.CreateObject("WScript.Network")
Set objADSys = CreateObject("ADSystemInfo")

strMsg = "ユーザ " + objNetwork.UserName + " が、ドメイン " + _
    objNetwork.UserDomain + " (サーバ " + objADSys.GetAnyDCName + _
    ") にログオンしました。" 
 
ts.WriteLine(strMsg)
ts.Close


これでテキストに追加されていくことを確認しました。
しかし、文字化けが起きてしまいます。
また、ちゃっぴさんの言われるとおり、ロックしているとエラーになってしまいます。

やはり、テキストでは厳しいでしょうか。

引用:

あとは、DB を用意してやって、そこに直接出力するようにするとか・・・


この方法はどうやったら出来ますでしょうか?
なにかヒントがあればお願いします。

DB環境は整っています。
Oracle8.1.7
を同一サーバで稼動させています。

申し訳ありませんがよろしくお願いします。
minminnana
大ベテラン
会議室デビュー日: 2004/02/05
投稿数: 246
お住まい・勤務地: 盛岡
投稿日時: 2006-03-30 19:45
引用:
しかしユーザ数が200くらいなのですが、イベントビューアのアプリケーションログ
がいっぱいになってしまいます。また、他のアプリケーションログと一緒になって
しまい、分かりにくいです。


専用のイベントログファイルを作ってそこに出力する方法もあるかと思います。
イベントログファイルの作成、
http://www.microsoft.com/japan/technet/scriptcenter/scripts/logs/eventlog/lgevvb05.mspx
(一度作れば良いだけだと思いますのでレジストリーに直接追加でも良いような)
また、そのログへの出力はeventcreateコマンドで可能です。

すぐにいっぱいになってしまう件については、イベントビューアにてサイズの変更
が出来たと思います。

以上、ご参考まで。
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2006-03-31 12:50
引用:

また、ちゃっぴさんの言われるとおり、ロックしているとエラーになってしまいます。
やはり、テキストでは厳しいでしょうか。



そういうことになります。

引用:

引用:

あとは、DB を用意してやって、そこに直接出力するようにするとか・・・


この方法はどうやったら出来ますでしょうか?
なにかヒントがあればお願いします。

DB環境は整っています。
Oracle8.1.7
を同一サーバで稼動させています。



普通に application をつくるのと一緒です。
先に data を挿入する table を設計し、作っておいて、
ADO とか oo4o とかでその table に挿入するよう programming します。

ごく基本的なことなので、調べてみればいろいろ情報見つかるでしょう。
1

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