製品コラム

セイテクエンジニアのブログ  製品コラム  Windowsイベントログの保存先パスの変更と注意点ーWindows FAQ(仮)

 

 

Windowsイベントログの保存先パスの変更と注意点ーWindows FAQ(仮)

2024年09月04日配信
2024年09月04日更新
執筆者:セイ・テクノロジーズ エバンジェリスト

 弊社Webサイトのアクセスログを見ると、3年以上前に公開された以下のサポート技術情報へのアクセスが続いています。このサポート技術情報は、Windowsのイベントログの保存先パスを変更する方法を簡単に示したものですが、いくつか補足したいことがあるので、改めて解説します。

サポート技術情報|セイ・テクノロジーズ株式会社
Windows イベントログファイルの保存場所と変更方法 (Application.evtx, System.evtx 等)

 

イベントログの既定の保存先パス

 

 Windowsのイベントログを参照すると、Windowsオペレーティングシステム(OS)内で発生する重要なシステムイベントやハードウェア障害、パフォーマンス問題、アプリケーションエラー、セキュリティに関する情報を得ることができます。弊社製品「BOM for Windows」や「Job Director」を使用すると、Windowsのイベントログを監視したり、特定のイベントログの発生をトリガーとしてジョブの実行を制御したりできます。

 イベントログはカテゴリ別にログファイルが分かれており、多くの場合、その最大サイズは既定で20,480KB(Setupログは1,028KB)であり、最大サイズに達するとOSによってログファイルのイベントが古いものから上書きされます。セキュリティ(監査イベントを含む)やActive Directoryのイベントログは、システム侵害などセキュリティ問題を調査する上で特に重要なログであるため、運用環境においてはログを上書きするという既定の設定は変更することをお勧めします。また、ログを上書きしないように設定した場合は、ログがいっぱいになることによるシステムへの影響(アプリケーションの停止やエラーなど)を回避するために、C:ドライブにある既定の保存先パスではなく、ディスク領域のある場所に変更することをお勧めします。


 Windowsのイベントログの既定の保存先パスは、表1に示した通りです(%SystemRoot%は通常、C:¥Windows)。ログファイルの保存先パスは、前掲のサポート技術情報で説明しているとおり、「イベントビューアー」(Eventvwr.msc)で「ログのプロパティ」を開き、「ログファイルのパス」を変更するだけで簡単に変更することができます(画面1)。

 

Windows のログ  
Application %SystemRoot%¥System32¥Winevt¥Logs¥Application.evtx
セキュリティ %SystemRoot%¥System32¥Winevt¥Logs¥Security.evtx
Setup %SystemRoot%¥System32¥Winevt¥Logs¥Setup.evtx
システム %SystemRoot%¥System32¥Winevt¥Logs¥System.evtx
Active Directory 関連のログ  
Directory Service %SystemRoot%¥System32¥Winevt¥Logs¥Directory Service.evtx
DNS Server %SystemRoot%¥System32¥Winevt¥Logs¥DNS Server.evtx
DFS Replication %SystemRoot%¥System32¥Winevt¥Logs¥DFS Replication.evtx

表1 WindowsとActive Directory関連の主なログファイルの既定の場所

 

画面1

画面1 ログファイルの保存先パスは、ログのプロパテで「ログのパス」を変更するだけで簡単に行える

 

イベントログの保存先パスのセキュリティ設定

 

 前掲のサポート技術情報では説明していませんが、ログファイルの保存先パスを変更する場合、新しいパスのセキュリティ(NTFSアクセス許可)を適切に設定することが重要です。ログ用の新しいフォルダー(例、D:¥EventLogs)を作成したら、フォルダーのプロパティを開き、「セキュリティ」タブにある「詳細設定」をクリックして、所有者を「(ローカルコンピューターの)SYSTEM」に変更し、「継承の無効化」をクリックして、「継承されたアクセス許可をこのオブジェクトの明示的なアクセス許可に変更します」を選択します(画面2)。次に、「%SystemRoot%¥System32¥Winevt¥Logs」フォルダーと同じアクセス許可設定を行います。具体的には次のように設定します(画面3)。

 

種類 プリンシパル アクセス 継承元 適用先
許可 Administrators フル コントロール なし このフォルダー、サブフォルダーおよびファイル
許可 SYSTEM フル コントロール なし このフォルダー、サブフォルダーおよびファイル
許可 (NT Service¥)EventLog フル コントロール なし このフォルダー、サブフォルダーおよびファイル
許可 Authenticated Users 読み取り なし このフォルダーとサブフォルダー

表2 ログ格納用フォルダーの適切なNTFSアクセス許可

 

画面2

画面2 ログの保存先にするフォルダーを作成し、所有者を「SYSTEM」に変更して、継承を無効化する

 

画面3
画面3 「%SystemRoot%¥System32¥Winevt¥Logs」フォルダーと同じアクセス許可設定を行う

 

 PowerShellを使用して、ログの保存先パスを作成し、適切なアクセス許可を設定するには、次のコマンドラインを実行します。この例では、「D:¥EventLogs」フォルダーを作成しています。Server Core環境など、エクスプローラーを利用できない環境の場合は、この方法でログの保存先フォルダーを作成してください。

PS C:\> $originalFolder = "$env:SystemRoot\system32\winevt\Logs"
PS C:\> $targetFolder = "D:\EvengLogs"
PS C:\> mkdir $targetFolder
PS C:\> $originalAcl = Get-Acl -Path $originalFolder -Audit -AllCentralAccessPolicies
PS C:\> Set-Acl -Path $targetFolder -AclObject $originalAcl -ClearCentralAccessPolicy
PS C:\> $targetAcl = Get-Acl -Path $targetFolder -Audit -AllCentralAccessPolicies
PS C:\> $targetAcl.SetOwner([System.Security.Principal.NTAccount]::new("SYSTEM"))

 

イベントを上書きしないでアーカイブする

 

 ログのパスを新しい場所に変更したら、必要に応じて「イベントを上書きしないでログをアーカイブする」(セキュリティやActive Directory関連のログでは推奨)を選択します。ここで「適用」または「OK」をクリックしてしまうと、現在のログがクリアされてしまうので、先に「ログの消去」をクリックして、現在のログを保存してから、「適用」または「OK」をクリックしてください(画面4)。

 

画面4

画面4 ログのパスを変更する前に「ログの消去」をクリックして、現在のログを保存しておく


 なお、「イベントを上書きしないでログをアーカイブする」を選択した場合、ログが最大ログサイズに達すると、そのログと同じ場所に「Archive-ログ名-西暦-月-日-時-分-秒-ミリ秒.evtx」のファイル名で古いログがアーカイブされるようになります。

 PowerShellでログの保存先パスを変更するには、次のコマンドラインを実行します。この例では「セキュリティ(Security)」ログの場所を「D:¥EventLogs¥Security.evtx」に変更し、「イベントを上書きしないでログをアーカイブする」を有効にしています。Server Core環境など、「イベントビューアー」(Eventvwr.msc)を使用できない環境の場合は、この方法でログの保存先パスを変更してください。

PS C:\> $targetFolder = "D:\EvengLogs"
PS C:\> $logName = "Security"
PS C:\> New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\$logName" -Name "AutoBackupLogFiles" -Value "1" -PropertyType "DWord"
PS C:\> New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\$logName" -Name "Flags" -Value "1" -PropertyType "DWord"
PS C:\> Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\$logName" -Name "File" -Value "$targetFolder\$logName.evtx"

 

オフラインのWindowsのイベントログを参照と注意点

 

 Windowsが正常起動できなくなってしまった場合、「Windows回復環境(Windows Recovery Environment、Windows RE、WinRE)」や「Windowsプレインストール環境(Windows Preinstallation Environment、Windows PE、WinPE)」を使用すると、オフラインのWindowsイメージのファイルシステムにアクセスして、問題の調査や回復を試みることができます。WinREやWinPEから、問題のWindowsのイベントログを参照することも可能です。それには、Windowsイベントコマンドラインユーティリティ「WEVTUTIL」コマンドを使用します。

 

 例えば、OSのドライブ(Windowsフォルダーのあるドライブ)がWinREやWinPEのE:ドライブにマウントされている場合、次のようにログファイルのパスを指定してイベントを参照することができます。この例は、2024年7月1日(日本時間)以降にシステムログ(System.evtx)に記録された、イベントレベル「重大(1)」および「エラー(2)」のイベントを参照する例です(画面5)。

X:¥windows¥system32> WEVTUTIL qe /lf E:\Windows\System32\winevt\Logs\System.evtx /rd:true /f:text /q:"*[System[(Level=1  or Level=2) and TimeCreated[@SystemTime>='2024-06-30T15:00:00.000Z']]]"

 WEVTUTILコマンドの使い方については、こちらからダウンロード可能なホワイトペーパー「Windowsの運用管理を快適にする10の裏ワザ/表ワザ」でも説明しています。

 

画面5
画面5 オフラインのWindowsのシステムログ(既定の場所にあるSystem.evtx)を参照する

 上記のコマンドラインは、システムログが既定の場所にある場合の例です。オフラインのWindowsのイベントログを確認する場合は、ログの保存先パスが変更されている可能性も考慮する必要があります。ログファイルの保存先パスは、オンラインのWindowsの場合は「HKLM(HKEY_LOCAL_MACHINE)¥SYSTEM¥CurrentControlSet¥Services¥EventLog¥ログ名」キーの「File」値に格納されています。「CurrentControlSet」キーは稼働中のOSにのみ存在するキーであるため、オフラインの場合は「ControlSet001」キーを参照する必要があります。

 次の例は、WinRE/WinPEでE:ドライブにOSドライブがマウントされている場合に、レジストリのSYSTEMハイブをWinRE/WinPEのレジストリの「HKLM¥OfflineSys」にロードし、セキュリティ(Security)ログの場所を確認する例です。なお、ログファイルの保存先パスにドライブ文字が含まれる場合は、WinRE/WinPEでは別のドライブ文字にマウントされている場合があることに注意してください(画面6)。

X:¥windows¥system32> REG LOAD HKLM\OfflineSys E:\Windows\System32\config\SYSTEM
X:¥windows¥system32> REG QUERY "HKLM\OfflineSys\ControlSet001\Services\EventLog\Security" /v File


画面6
画面6 オフラインのWindowsのSYSTEMレジストリハイブをロードして、セキュリティ(Security)ログの場所を確認する。オフラインのレジストリから得られるドライブ文字と、WinRE/WinPE環境の実際のドライブ文字の違いに注意

 

参考:
イベントビューアーのログファイルを別の場所に移動する(Microsoft Learn)

blog_column_subscribe

blog_column_comment

最新記事