将事件查看器日志文件移动到另一个位置
将事件查看器日志文件移动到另一个位置
在Windows Server环境中,事件查看器日志文件默认存储在系统目录下。但随着日志数据的不断积累,可能会占用大量磁盘空间。本文将详细介绍如何将事件查看器日志文件移动到硬盘上的另一个位置,包括手动操作步骤和使用Powershell脚本进行操作的方法。
本文介绍如何将 Windows Server 2016 和 Windows Server 2019 事件查看器日志文件移动到硬盘上的另一个位置。
适用版本
- Windows Server 2016
- Windows Server 2019
原始 KB 数
315417
Windows Server 日志类型
Windows Server 记录以下日志中的事件:
- 应用程序日志:包含由程序记录的事件。 写入应用程序日志的事件由软件程序的开发人员确定。
- 安全日志:包含有效和无效登录尝试等事件。 它还包含与资源使用相关的事件,例如,创建、打开或删除文件时。 必须以管理员身份或管理员组的成员登录才能打开、使用以及指定安全日志中记录的事件。
- 系统日志:包含由 Windows 系统组件记录的事件。 这些事件由 Windows 预先确定。
- 目录服务日志:包含与 Active Directory 相关的事件。 此日志仅适用于域控制器。
- DNS 服务器日志:包含与 INTERNET 协议(IP)地址的 DNS 名称解析相关的事件。 此日志仅在 DNS 服务器上可用。
- 文件复制服务日志:包含域控制器之间的复制过程中记录的事件。 此日志仅适用于域控制器。
默认情况下,事件查看器日志文件使用 .evt 扩展名,并且位于 %SystemRoot%\System32\winevt\Logs
文件夹中。 日志文件名称和位置信息存储在注册表中。 可以编辑此信息以更改日志文件的默认位置。 如果需要更多磁盘空间来记录数据,可能需要将日志文件移动到另一个位置。
在另一个位置创建事件日志文件夹
创建要将事件日志存储在本地驱动器中的文件夹,并分配正确的权限。 步骤如下:
- 创建文件夹(例如
C:\EventLogs
)。 - 右键单击该文件夹并选择“属性”。
- 选择“安全”选项卡,然后选择“高级”以获取特殊权限或高级设置。
注意:默认情况下,该文件夹已启用“继承”。
- 选择“更改”以将所有者更改为 SYSTEM,然后选择“禁用继承”,如下所示:
系统将提示你转换或删除继承的权限。 选择“将继承的权限转换为对此对象的显式权限”,你将看到对该文件夹显式设置的权限。
注意:若要为日志创建子文件夹,请使用此对象选项中的可继承权限条目检查“替换所有子对象权限条目”。 父级设置的权限将应用于所有子文件夹和文件。
- 调整权限,以便为文件夹分配正确的权限,并检查“应用于”列。 这些权限应与存储事件查看器日志的默认文件夹(%SystemRoot%\System32\winevt\Logs)的高级权限相同。 确保“经过身份验证的用户”仅对此文件夹和子文件夹具有“读取”权限。
注意:若要添加 EventLog 用户,请转到属性对话框的“安全性”选项卡,然后按照以下步骤操作:
- 选择“编辑>添加”。
- 选择“位置”,选择本地计算机名称,然后选择“确定”。
- 在“输入对象名称”中键入 NT SERVICE\EventLog 以选择并选择“检查名称”。 名称应解析为 EventLog。 选择“确定”,以完成操作。
请确保在 EventLog 用户的 EventLog 权限下选择了“完全控制”。
将事件查看器日志文件移动到另一个位置
可以使用事件查看器将日志文件移动到创建的文件夹中,如下所示:
- 打开“事件查看器”。
- 在左窗格中的 Windows 日志下右键单击日志名称(例如系统),然后选择“属性”。
- 将日志路径值更改为已创建文件夹的位置,并将日志文件名称保留在路径末尾(例如 C:\EventLogs\System.evtx)。
- 选择“清除日志”,然后选择“保存”和“清除”以将事件日志文件保留在其他位置。
- 选择“应用”>“确定”。
注意:检查已将事件日志移动到的文件夹。 如果事件日志不在文件夹中,请重启系统。
可以使用注册表编辑器确认日志路径已更新。 例如,转到以下注册表路径并检查文件值的值数据。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\System
使用 Powershell 移动事件查看器日志文件
出于此目的,可以使用 Powershell。 在示例中,安全事件日志将迁移到 C:\Logs:
$originalFolder = "$env:SystemRoot\system32\winevt\Logs"
$targetFolder = "C:\logs"
$logName = "Security"
$originalAcl = Get-Acl -Path $originalFolder -Audit -AllCentralAccessPolicies
Set-Acl -Path $targetFolder -AclObject $originalAcl -ClearCentralAccessPolicy
$targetAcl = Get-Acl -Path $targetFolder -Audit -AllCentralAccessPolicies
$targetAcl.SetOwner([System.Security.Principal.NTAccount]::new("SYSTEM"))
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\$logName" -Name "AutoBackupLogFiles" -Value "1" -PropertyType "DWord"
New-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\$logName" -Name "Flags" -Value "1" -PropertyType "DWord"
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\EventLog\$logName" -Name "File" -Value "$targetFolder\$logName.evtx"
参考
有关如何在事件查看器中查看和管理日志的详细信息,请参阅如何删除损坏事件查看器日志文件。 若要了解有关常规事件查看器用法的详细信息,请选择事件查看器中的“操作”菜单,然后选择“帮助”。
本文原文来自微软官方文档