Memo/Windows/EventLog

https://dexlab.net:443/pukiwiki/index.php?Memo/Windows/EventLog
 


EventLog: イベントログの取得

いくつか方法がある


Windows ServerのDNS logをパフォーマンス モニターを使って保存

  1. [KB2956577 をダウンロードしてインストール
    • WinServer 2012 R2の場合
      $url="http://download.windowsupdate.com/c/msdownload/update/software/htfx/2014/08/windows8.1-kb2956577-v2-x64_44c65e7492177e35d5bad619812dcb76310a94cf.msu"
      wget $url -outfile $env:USERPROFILE\Desktop\windows8.1-kb2956577-v2.msu
  2. eventvwr.msc でイベントビューワを開く
  3. Applications and Services Logs\DNS-Server
  4. Task Categoryに「Lookup」があれば、名前解決されたログ
  5. Task Categoryが「None」ばかりの場合、以下を設定してみる。数十分経過しないと、ログには表示されなかった。

Windows ServerのDNS debug logをCSVへ変換

  • Making Sense of the Microsoft DNS Debug Log
    • DNSサーバのパフォーマンスが落ちる。 WinServer 2012 R2 以降は落ちにくくなったようだ。ログの代わりにパフォーマンスモニターの方法を検討
    • ログの最大サイズは指定した方が良い
    • 保存先が未指定の場合
      C:\Windows\System32\dns\dns.log
  • スクリプト Read DNS debug log and generate output in readble CSV format
    • ソースの文字コードがUTF-16だが、UTF-8 BOM無しの方が扱いやすいので変更。
    • Windows Server 2012 R2では少し変える必要があった。
      • DNS debug logの行頭が「2/25/2020 9:18:51 AM 0320 PACKET ...」なので一致しないので条件変更
      • 「PM」のスペースは1で一致しなかったので、スペースを一つ削除
      • 行に"["が無いログがあり、エラーになるので、条件を追加。「System.Management.Automation.RuntimeException: You cannot call a method on a null-valued expression.」「System.Management.Automation.RuntimeException: null 値の式ではメソッドを呼び出せません。」
        4/7/2020 2:55:27 AM B48 Note: got GQCS failure on a dead socket context status=995, socket=524, pcon=000000678D9617F0, state=-1, IP=0.0.0.0
        4/7/2020 2:55:27 AM B48 Note: got GQCS failure on a dead socket context status=995, socket=40800, pcon=000000678D962DF0, state=-1, IP=::
    • Read-dns-debug-logs-Get-DNSDebugLog.ps1 Get-DNSDebugLog.ps1
      -                if ( $_ -match "^\d\d" -AND $_ -notlike "*EVENT*") {
      +                if ( $_ -match "^\d" -AND $_ -notlike "*EVENT*" -AND $_ -match "\[" ) {
      
      -                    if ($_ -match ":\d\d AM|:\d\d  PM") {
      +                    if ($_ -match ":\d\d AM|:\d\d PM") {

PowerShellを使う方法

Get-WinEvent

  • -LogName:
    • System
    • Security
    • Application

Export-CSV

  • -Encoding: Default (SJIS) , UTF8
  • -Delimiter: "`t" タブ区切り
  • Applicationログをcsv形式で出力
    $log_path="./event_application.csv"
    Get-WinEvent -LogName Application | Select timeCreated,levelDisplayName,providerName,id,@{name="message";expression={$_.message.Replace("`n",";")}}| Export-CSV $log_path -Encoding Default
  • evtx形式をcsv形式へ変換。かなり時間がかかる
    $evtx_path="./security-20200217.evtx"
    $csv_path="./security-20200217.csv"
    Get-WinEvent -Path $evtx_path | Select timeCreated,levelDisplayName,providerName,id,@{name="message";expression={$_.message.Replace("`n",";")}}| Export-CSV $csv_path -Encoding Default

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-04-07 (火) 23:50:50 (124d)