ログオンログオフのイベント送出スクリプト
ドメインに参加しているコンピュータにログオン・ログオフしたときに、イベントログにログを残す。いろいろな記事をつぎはぎして作成しました。各記事の作成者様、ありがとうございます。1. ログオン・ログオフログを作成するスクリプトを作る。元のスクリプトはこのサイトからもらいました。ほとんど中身は触っていません。ファイルに書き込むのをイベントに切り替えているだけです。イベントの書き込み方はこちらを参考にしています。------ここから------'ログオン・ログオフイベントを記録するスクリプトsEvent = "LogOn" 'ログオフ用はここを変更するsEventlogServer = "\\サーバ名" 'イベントを送るサーバ名Const AUDIT_SUCCESS = 8On Error Resume NextSet objShell = WScript.CreateObject("WScript.Shell")Set wshNetwork = CreateObject("WScript.Network")Set objADSys = CreateObject("ADSystemInfo")SearchPC = wshNetwork.ComputerNameSet objComputer = GetObject("winmgmts:{impersonationLevel=impersonate}!//" & SearchPC)Set NICs = objComputer.ExecQuery("select * from Win32_NetworkAdapterConfiguration")For Each Adapter In NICs if UCase(Adapter.DNSHostName) = UCase(SearchPC) then IPAddress = Adapter.IPAddress IPSubnet = Adapter.IPSubNet DefaultIPGateway = Adapter.DefaultIPGateway sIP = "" sSubNet = "" sGateway = "" If IsArray(IPAddress) Then For I = LBound(IPAddress) To UBound(IPAddress) sIP = sIP & IPAddress(I) & ";" sSubNet = sSubNet & IPSubnet(I) & ";" sGateway = sGateway & DefaultIPGateway(I) & ";" Next sMAC = Adapter.MACAddress sWINS1 = Adapter.WINSPrimaryServer sWINS2 = Adapter.WINSSecondaryServer End If exit for end ifNextsMsg = sEvent & "," & _ Now & "," & _ wshNetwork.ComputerName & "," & _ wshNetwork.UserName & "," & _ wshNetwork.UserDomain & "," & _ sIP' Write to EventlogobjShell.LogEvent AUDIT_SUCCESS, sMsg, sEventlogServer' ドメインコントローラが一台だけならこちらでOK' objShell.LogEvent AUDIT_SUCCESS, sMsg, objADSys.GetAnyDCName-----ここまで------2.グループポリシーによりログオン・ログオフスクリプトで動かすように設定ここは適当に調べてね。3.Domain Userでイベントを書き込めるように設定こちらのサイトを参考にしました。Windows Server 2008 イベント ログに対するセキュリティ アクセス許可の変更についてWindows Server 2003 のイベント ログのセキュリティをローカルまたはグループ ポリシーで設定する方法