OS の Status を取得する VBScript を作成する
今回は少々レガシー系の記事を書きたいと思います。働き方改革と色々言われる中で、PC の状態を一括で管理したいという企業のリクエストが多くなってきている様な気がします。そのような背景もありつつPCの状態が一括監視できるように、今回は Windows の 起動状態を把握できる VBScript を作成したいと思います。
イベントログの取得について
今回は VBscript でイベントログからデータを抽出するようなスクリプトを作成します。PC の状態を示すイベントログはをまとめると以下の通りです。
参考記事
Windows のイベントビューアーを使って、何がいつ起きたか調べる
https://laboradian.com/find-out-event-using-event-viewer/
サンプルスクリプト
今回は単純にPCの開始/終了の時間を取得するスクリプトを作成しました。
'取得ログをローカル時間に合わせる
Const CONVERT_TO_LOCAL_TIME = True
Set dtmStartDate = CreateObject("WbemScripting.SWbemDateTime")
Set dtmEndDate = CreateObject("WbemScripting.SWbemDateTime")
DateToCheck = Date
dtmStartDate.SetVarDate DateToCheck - 7, CONVERT_TO_LOCAL_TIME
dtmEndDate.SetVarDate DateToCheck + 1, CONVERT_TO_LOCAL_TIME
'イベントログの取得 今回は起動ログとシャットダウンのログ
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent Where TimeWritten >= '" _
& dtmStartDate & "' and TimeWritten < '" _
& dtmEndDate & "' AND (EventCode = 6005 OR EventCode = 6006)")
'ログ生成
Dim msg
For each objEvent in colEvents
Set tempDate = CreateObject("WbemScripting.SWbemDateTime")
tempDate.Value = objEvent.TimeWritten
If objEvent.EventCode = 6005 then
msg = msg & "Start : " & tempDate.GetVarDate(True) & vbCrLf
ElseIf objEvent.EventCode = 6006 then
msg = msg & "Stop : " & tempDate.GetVarDate(True) & vbCrLf
End If
Next
'ログ出力
Wscript.Echo msg
実際に実行してみる
このスクリプトを作成し「sample.vbs」等の適用な名前を付けて、任意の場所に配置します。コマンドプロンプトからこのスクリプトを呼び出すことで、PCの状態を Echo してくれます。
上記のことをイベントビューワーで確認することができますが、イベントビューワーから生成しようとするとかなり時間がかかってしまいます。また、業務時間の管理などに行う場合は、一人ひとりみるのは非常に手間がかかるので、上記のような形でスクリプト化するととても楽かもしれません。次回の記事では、実際に仮想空間に何台かデバイスを立ててみて、ログの一括取得を実施したいと思います。
参考記事
PCの起動時刻の取得 出退勤管理用
https://qiita.com/a2kiti/items/123894813a0975f19470
Windowsイベントログをコマンドでエクスポートする
http://quatrefromage.hatenablog.jp/entry/2016/08/06/164436
Author And Source
この問題について(OS の Status を取得する VBScript を作成する), 我々は、より多くの情報をここで見つけました https://qiita.com/komiyasa/items/c591cd3fff11c37d4f38著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .