windows - 在不重新启动的情况下重新初始化 Windows 事件日志服务

标签 windows winapi event-log service-control-manager

我正在开发记录到自定义事件日志的应用程序。应用程序最近更名,事件日志的名称已更改(从“CompanyA Events”更改为“CompanyB Events”)。事件日志源的名称(“Subsystem1”、“Subsystem2”等)没有改变。应用程序安装程序从注册表中删除旧日志条目并写入新日志条目。

我注意到,在某些环境中(在 2008 R2 上经常发生)日志记录停止,并且没有事件被写入。有时事件实际上被写入了应该被删除的旧 evtx 文件。以下解决了问题:

  • 重启机器
  • 重新启动“Windows 事件日志”服务

后一个操作无法使用 SCM 实现,因为访问被拒绝,即使我是管理员。但是,终止进程有效,我启动了“Windows 事件日志”服务,之后事件日志记录正常工作。

问题:如何在不终止进程或重启机器的情况下重新初始化事件日志服务?是否存在某种已记录或未记录的调用,我可以使用它来通知事件日志服务它应该重新读取其配置?

最佳答案

仅作记录,因为这是一个老问题:我也遇到过这个问题,Christo's comment让我走上了解决的道路:

  • 使用 psexec -s net stop schedule(因此,我使用系统帐户停止了任务调度程序服务),
  • 然后我能够重新启动事件日志服务。
  • 重新启动后,我再次使用 psexec -s net start schedule。干得好。

您可能需要从 Microsoft 下载 psexec。

关于windows - 在不重新启动的情况下重新初始化 Windows 事件日志服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19169529/

相关文章:

winapi - 如何将 std::chrono::high_resolution_clock::now() 转换为 Windows 文件时间(以及反向转换)

c++ - Visual Studio 线程 - afxwin 还是 C++11 线程?

sharepoint - 从 Sharepoint webpart 中写入事件日志

windows - 如何以编程方式查找可执行引用

windows - 如何使用 powershell 字符串数组在特定文件夹中搜索 xml 文件

c - 如何使用 SetMenuInfo,更改菜单栏的文本

powershell - 如何使用PowerShell通过已存在的提供程序编写自定义事件日志?

c# - 在 Desc 顺序模式下使用 EventLogReader?

c++ - 如何更改 SysDateTimePick32 或 CDateTimeCtrl 的背景颜色?

windows - Windows Server 是否支持 Per-Monitor v2 Awareness?