イベントログとLogParser

eventvwr.mscで電源等のカスタムビュー作ってたけどLogParserの方が便利ぽい。
まず、Log Parser 2.2をインストールする。
バッチファイルを作る。
eventlog.bat

@echo off
echo.
echo Log Parser 2.2
echo.
"C:\Program Files (x86)\Log Parser 2.2\LogParser.exe" -i:evt -rtp:-1 -stats:OFF file:sql-pow.txt
echo.
rem echo イベント ID 12 : OS開始
rem echo イベント ID 13 : OSシャットダウン
rem echo.
rem cmd.exe /K
pause

sql-pow.txt

select TimeGenerated, EventID, srcname as SourceName,
       --SUBSTR(msg, 0, 70) as Message
       msg
 using case SourceName
       when 'Microsoft-Windows-Kernel-General' then 'Kernel-General'
       when 'Microsoft-Windows-Kernel-Power' then 'Kernel-Power'
       when 'Microsoft-Windows-Power-Troubleshooter' then 'Power-Troubleshooter'
       else SourceName
       end as srcname,
       TO_STRING(TO_LOCALTIME(TO_TIMESTAMP(EXTRACT_TOKEN(Strings, 0, '|'), 'yyyy-MM-dd?hh:mm:ss???????????')), 'yyyy-MM-dd hh:mm:ss') as dt1,
       TO_STRING(TO_LOCALTIME(TO_TIMESTAMP(EXTRACT_TOKEN(Strings, 1, '|'), 'yyyy-MM-dd?hh:mm:ss???????????')), 'yyyy-MM-dd hh:mm:ss') as dt2,
       TO_STRING(TO_LOCALTIME(TO_TIMESTAMP(EXTRACT_TOKEN(Strings, 6, '|'), 'yyyy-MM-dd?hh:mm:ss???????????')), 'yyyy-MM-dd hh:mm:ss') as dt3,
       EXTRACT_TOKEN(Strings, 2, '|') as Reason,
       EXTRACT_TOKEN(Strings, 12, '|') as WakeSourceType,
       EXTRACT_TOKEN(Strings, 14, '|') as WakeSourceText,
       STRREV(EXTRACT_TOKEN(STRREV(EXTRACT_TOKEN(Strings, 17, '|')), 0, '\\')) as WakeTimerOwner,
       case Reason
       when '0' then 'ボタンまたはカバー'
       when '4' then 'アプリケーション API'
       when '7' then 'システム アイドル'
       else COALESCE(Reason, '')
       end as reasonText,
       case WakeSourceType
       when '0' then '不明'
       when '1' then '電源ボタン'
       when '4' then add('デバイス - ', COALESCE(WakeSourceText, ''))
       when '5' then add('タイマー - ', COALESCE(WakeTimerOwner, WakeSourceText, ''))
       else COALESCE(WakeSourceType, '')
       end as wakeSource,
       case SourceName
       when 'Microsoft-Windows-Kernel-General' then
            case EventID
            when 12 then add(add('オペレーティング システムは ', dt3), ' に開始しました。')
            when 13 then add(add('オペレーティング システムは ', dt1), ' にシャット ダウンします。')
            else Message
            end
       when 'Microsoft-Windows-Power-Troubleshooter' then
            case EventID
            when 1 then add(add(add('システムはスリープ状態から再開しました。(', dt1), ') スリープ解除の原因: '), wakeSource)
            else Message
            end
       when 'Microsoft-Windows-Kernel-Power' then
            case EventID
            when 42 then add('システムがスリープ状態になります。 スリープの理由: ', reasonText)
            else Message
            end
       else Message
       end as msg
  from System
 where TimeGenerated >= sub(SYSTEM_DATE(), timestamp('5', 'd'))
   and (SourceName = 'EventLog' and EventID in (6005;6006;6008)
    or SourceName = 'Microsoft-Windows-Kernel-General' and EventID in (12;13)
    or SourceName = 'Microsoft-Windows-Kernel-Power' and EventID in (41;42)
    or SourceName = 'Microsoft-Windows-Power-Troubleshooter' and EventID in (1))
 order by TimeGenerated, srcname, EventID