イベント ビューアでは、ログに記録されるエラーは共通であり、異なるイベント ID を持つさまざまなエラーが発生することがあります。セキュリティ ログに記録されるイベントは通常、次のキーワードのいずれかになります。監査の成功または監査の失敗。この投稿では、次について説明しますセキュリティ ログがいっぱいになりました (イベント ID 1104)このイベントがトリガーされる理由と、クライアント マシンまたはサーバー マシンのどちらでこの状況で実行できるアクションも含まれます。
イベントの説明に示されているように、このイベントは Windows セキュリティ ログがいっぱいになるたびに生成されます。たとえば、セキュリティ イベント ログ ファイルの最大サイズに達し、イベント ログの保存方法がイベントを上書きしない(ログを手動でクリアする)この記事で説明されているようにMicrosoft のドキュメント。セキュリティ イベント ログ設定のオプションは次のとおりです。
- 必要に応じてイベントを上書きします (最も古いイベントから順に)– これはデフォルトの設定です。最大ログ サイズに達すると、新しいアイテムが入るために古いアイテムが削除されます。
- ログがいっぱいになったらアーカイブし、イベントを上書きしないでください– このオプションを選択すると、Windows は最大ログ サイズに達したときにログを自動的に保存し、新しいログを作成します。ログは、セキュリティ ログが保存されている場所にアーカイブされます。デフォルトでは、これは次の場所にあります%SystemRoot%\SYSTEM32\WINEVT\LOGS。ログイン イベント ビューアのプロパティを表示して、正確な場所を確認できます。
- イベントを上書きしない(ログを手動でクリアする)– このオプションを選択し、イベント ログが最大サイズに達した場合、ログが手動でクリアされるまで、それ以上のイベントは書き込まれません。
セキュリティ イベント ログ設定を確認または変更するには、最初に変更する必要がある可能性があるのは最大ログ サイズ (KB)– ログ ファイルの最大サイズは 20 MB (20480 KB) です。さらに、上で概説したように保持ポリシーを決定します。
セキュリティ ログがいっぱいになりました (イベント ID 1104)
セキュリティ ログ イベント ファイル サイズの上限に達し、これ以上イベントを記録する余地がなくなると、イベント ID 1104: セキュリティ ログがいっぱいになりましたログ ファイルがいっぱいであることを示すログが記録され、次のいずれかのアクションをただちに実行する必要があります。
- イベント ビューアでログの上書きを有効にする
- Windows セキュリティ イベント ログをアーカイブする
- セキュリティ ログを手動でクリアする
これらの推奨されるアクションを詳しく見てみましょう。
1] イベント ビューアでログの上書きを有効にする
デフォルトでは、セキュリティ ログは必要に応じてイベントを上書きするように構成されています。ログの上書きオプションをオンにすると、イベント ビューアーが古いログを上書きできるようになり、メモリがいっぱいになるのを防ぐことができます。したがって、次の手順に従って、このオプションが有効になっていることを確認する必要があります。
- を押します。Windowsキー+Rをクリックして「実行」ダイアログを呼び出します。
- [ファイル名を指定して実行] ダイアログ ボックスで、次のように入力します。イベントvwrEnter キーを押してイベント ビューアを開きます。
- 拡大するWindows ログ。
- クリック安全。
- 右側のペインのアクションメニュー、選択プロパティ。または、セキュリティログ左側のナビゲーションペインで を選択し、プロパティ。
- さて、イベントログの最大サイズに達した場合セクションで、ラジオ ボタンを選択します。必要に応じてイベントを上書きします (最も古いイベントから順に)オプション。
- クリック適用する>わかりました。
2] Windows セキュリティ イベント ログをアーカイブする
セキュリティを重視した環境 (特に企業/組織) では、Windows セキュリティ イベント ログのアーカイブが必要または義務付けられる場合があります。これは、上に示したようにイベント ビューアから選択することで実行できます。ログがいっぱいになったらアーカイブし、イベントを上書きしないでくださいオプション、またはPowerShell スクリプトの作成と実行以下のコードを使用します。 PowerShell スクリプトはセキュリティ イベント ログのサイズをチェックし、必要に応じてアーカイブします。スクリプトによって実行される手順は次のとおりです。
- セキュリティ イベント ログが 250 MB 未満の場合、情報イベントがアプリケーション イベント ログに書き込まれます。
- ログが 250 MB を超える場合
- ログは D:\Logs\OS にアーカイブされます。
- アーカイブ操作が失敗すると、エラー イベントがアプリケーション イベント ログに書き込まれ、電子メールが送信されます。
- アーカイブ操作が成功すると、情報イベントがアプリケーション イベント ログに書き込まれ、電子メールが送信されます。
環境でスクリプトを使用する前に、次の変数を構成します。
- $ArchiveSize – 必要なログ サイズ制限 (MB) に設定します。
- $ArchiveFolder – ログ ファイルのアーカイブを保存する既存のパスに設定します。
- $mailMsgServer – 有効な SMTP サーバーに設定します
- $mailMsgFrom – 有効な FROM 電子メール アドレスに設定します
- $MailMsgTo – 有効な TO 電子メール アドレスに設定します
# Set the archive location $ArchiveFolder = "D:\Logs\OS" # How big can the security event log get in MB before we automatically archive? $ArchiveSize = 250 # Verify the archive folder exists If (!(Test-Path $ArchiveFolder)) { Write-Host Write-Host "Archive folder $ArchiveFolder does not exist, aborting ..." -ForegroundColor Red Exit } # Configure environment $sysName = $env:computername $eventName = "Security Event Log Monitoring" $mailMsgServer = "your.smtp.server.name" $mailMsgSubject = "$sysName Security Event Log Monitoring" $mailMsgFrom = "[email protected]" $mailMsgTo = "[email protected]" # Add event source to application log if necessary If (-NOT ([System.Diagnostics.EventLog]::SourceExists($eventName))) { New-EventLog -LogName Application -Source $eventName } # Check the security log $Log = Get-WmiObject Win32_NTEventLogFile -Filter "logfilename = 'security'" $SizeCurrentMB = [math]::Round($Log.FileSize / 1024 / 1024,2) $SizeMaximumMB = [math]::Round($Log.MaxFileSize / 1024 / 1024,2) Write-Host # Archive the security log if over the limit If ($SizeCurrentMB -gt $ArchiveSize) { $ArchiveFile = $ArchiveFolder + "\Security-" + (Get-Date -Format "yyyy-MM-dd@HHmm") + ".evt" $EventMessage = "The security event log size is currently " + $SizeCurrentMB + " MB. The maximum allowable size is " + $SizeMaximumMB + " MB. The security event log size has exceeded the threshold of $ArchiveSize MB." $Results = ($Log.BackupEventlog($ArchiveFile)).ReturnValue If ($Results -eq 0) { # Successful backup of security event log $Results = ($Log.ClearEventlog()).ReturnValue $EventMessage += "The security event log was successfully archived to $ArchiveFile and cleared." Write-Host $EventMessage Write-EventLog -LogName Application -Source $eventName -EventId 11 -EntryType Information -Message $eventMessage -Category 0 $mailMsgBody = $EventMessage Send-MailMessage -From $mailMsgFrom -to $MailMsgTo -subject $mailMsgSubject -Body $mailMsgBody -SmtpServer $mailMsgServer } Else { $EventMessage += "The security event log could not be archived to $ArchiveFile and was not cleared. Review and resolve security event log issues on $sysName ASAP!" Write-Host $EventMessage Write-EventLog -LogName Application -Source $eventName -EventId 11 -EntryType Error -Message $eventMessage -Category 0 $mailMsgBody = $EventMessage Send-MailMessage -From $mailMsgFrom -to $MailMsgTo -subject $mailMsgSubject -Body $mailMsgBody -SmtpServer $mailMsgServer } } Else { # Write an informational event to the application event log $EventMessage = "The security event log size is currently " + $SizeCurrentMB + " MB. The maximum allowable size is " + $SizeMaximumMB + " MB. The security event log size is below the threshold of $ArchiveSize MB so no action was taken." Write-Host $EventMessage Write-EventLog -LogName Application -Source $eventName -EventId 11 -EntryType Information -Message $eventMessage -Category 0 } # Close the log $Log.Dispose()
読む:タスク スケジューラで PowerShell スクリプトをスケジュールする方法
必要に応じて、XML ファイルを使用してスクリプトを 1 時間ごとに実行するように設定できます。このためには、次のコードを XML ファイルに保存してから、タスクスケジューラにインポートします。必ず変更してください<Arguments>セクションをスクリプトを保存したフォルダー/ファイル名に置き換えます。
<?xml version="1.0" encoding="UTF-16"?> <Task version="1.3" xmlns="https://schemas.microsoft.com/windows/2004/02/mit/task"> <RegistrationInfo> <Date>2017-01-18T16:41:30.9576112</Date> <Description>Monitor security event log. Archive and clear log if threshold is met.</Description> </RegistrationInfo> <Triggers> <CalendarTrigger> <Repetition> <Interval>PT2H</Interval> <StopAtDurationEnd>false</StopAtDurationEnd> </Repetition> <StartBoundary>2017-01-18T00:00:00</StartBoundary> <ExecutionTimeLimit>PT30M</ExecutionTimeLimit> <Enabled>true</Enabled> <ScheduleByDay> <DaysInterval>1</DaysInterval> </ScheduleByDay> </CalendarTrigger> </Triggers> <Principals> <Principal id="Author"> <UserId>S-1-5-18</UserId> <RunLevel>HighestAvailable</RunLevel> </Principal> </Principals> <Settings> <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries> <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries> <AllowHardTerminate>true</AllowHardTerminate> <StartWhenAvailable>false</StartWhenAvailable> <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable> <IdleSettings> <StopOnIdleEnd>true</StopOnIdleEnd> <RestartOnIdle>false</RestartOnIdle> </IdleSettings> <AllowStartOnDemand>true</AllowStartOnDemand> <Enabled>true</Enabled> <Hidden>false</Hidden> <RunOnlyIfIdle>false</RunOnlyIfIdle> <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession> <UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine> <WakeToRun>false</WakeToRun> <ExecutionTimeLimit>P3D</ExecutionTimeLimit> <Priority>7</Priority> </Settings> <Actions Context="Author"> <Exec> <Command>C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe</Command> <Arguments>c:\scripts\PS\MonitorSecurityLog.ps1</Arguments> </Exec> </Actions> </Task>
読む: タスク XML に、正しく接続されていないか範囲外の値が含まれています
ログのアーカイブを有効または構成すると、最も古いログが保存され、新しいログで上書きされることはありません。したがって、今後は、Windows は最大ログ サイズに達するとログをアーカイブし、指定したディレクトリ (デフォルトでない場合) に保存します。アーカイブされたファイルの名前は次のとおりです。アーカイブ-<Section> -<Date/Time>たとえば、フォーマットアーカイブ-セキュリティ-2023-02-14-18-05-34。アーカイブされたファイルを使用して、古いイベントを追跡できるようになりました。
読む:WinDefLogView を使用して Windows Defender イベント ログを読み取る
3] セキュリティログを手動でクリアします
保持ポリシーを次のように設定している場合イベントを上書きしない(ログを手動でクリアする)、あなたはする必要がありますセキュリティログを手動でクリアする次のいずれかの方法を使用します。
- イベントビューア
- WEVTUTIL.exeユーティリティ
- バッチファイル
それでおしまい!
今すぐ読んでください:イベントログにイベントが存在しない
マルウェアが検出されたイベント ID は何ですか?
Windows セキュリティ イベント ログ ID 4688 は、システム上でマルウェアが検出されたことを示します。たとえば、Windows システムにマルウェアが存在する場合、イベント 4688 を検索すると、その悪意のあるプログラムによって実行されたプロセスが明らかになります。その情報を使用して、クイック スキャンを実行できます。Windows Defender スキャンをスケジュールする、 またはDefender オフライン スキャンを実行する。
ログオン イベントのセキュリティ ID は何ですか?
イベント ビューアでは、イベントID 4624ローカル コンピュータへのログオンが成功するたびにログオンされます。このイベントは、アクセスされたコンピューター、つまりログオン セッションが作成されたコンピューター上で生成されます。イベントログオン タイプ 11: CachedInteractiveユーザーが、コンピュータ上にローカルに保存されたネットワーク資格情報を使用してコンピュータにログオンしていることを示します。資格情報を確認するためにドメイン コントローラーに接続されませんでした。