使用 pywin32 库中的 win32evtlog 写入 Windows 事件日志

2023-12-09

我有一个简单的 python 脚本,将在 Windows 服务器上运行,我想将整个脚本中的特定事件记录到 Windows 事件日志中。有谁有一个简单而精确的写入 Windows 事件日志的示例,以便我可以从事件查看器查看该事件。我已阅读 pywin32 库的文档,但找不到任何明确的示例。我尝试使用以下方法构建事件:

win32evtlogutil.ReportEvent(ApplicationName, EventID, EventCategory,
                EventType, Inserts, Data, SID)

我没有成功,有人可以更深入地解释一下 ReportEvent 吗?


一个简单的例子:

>>> import sys
>>> import time
>>> import win32evtlog
>>> import win32evtlogutil
>>>
>>>
>>> "Python {:s} on {:s}".format(sys.version, sys.platform)
'Python 3.5.4 (v3.5.4:3f56838, Aug  8 2017, 02:17:05) [MSC v.1900 64 bit (AMD64)] on win32'
>>>
>>> DUMMY_EVT_APP_NAME = "Dummy Application"
>>> DUMMY_EVT_ID = 7040  # Got this from another event
>>> DUMMY_EVT_CATEG = 9876
>>> DUMMY_EVT_STRS = ["Dummy event string {:d}".format(item) for item in range(5)]
>>> DUMMY_EVT_DATA = b"Dummy event data"
>>>
>>> "Current time: {:s}".format(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
'Current time: 2018-07-18 20:03:08'
>>>
>>> win32evtlogutil.ReportEvent(
...     DUMMY_EVT_APP_NAME, DUMMY_EVT_ID, eventCategory=DUMMY_EVT_CATEG,
...     eventType=win32evtlog.EVENTLOG_WARNING_TYPE, strings=DUMMY_EVT_STRS,
...     data=DUMMY_EVT_DATA)
>>>

Output:

Event Viewer

您可以看到我从代码输入的值与(上)图像中的事件字段之间的对应关系事件查看器 (mmc) 窗户。

win32evtlogutil.ReportEvent是其一部分[GitHub]: mhammond/pywin32 - 适用于 Windows 的 Python (pywin32) 扩展,这是一个Python包装结束WINAPIs.
文档(WiP)可以在以下位置找到:[GitHub.MHammond]:Win32 扩展的 Python 帮助 (or [ME.TimGolden]:Python for Win32 扩展帮助).

您需要了解的所有信息均在[MS.Docs]:ReportEventW 函数, 哪一个是WINAPI用于完成此任务。请务必仔细阅读(以及其他一些内容)URL是它引用的),以便更熟悉参数、它们的值可能是什么以及其他信息。

确保不要滥用(包括测试),否则您可能最终会被大量垃圾数据污染事件日志。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 pywin32 库中的 win32evtlog 写入 Windows 事件日志 的相关文章

  • 如何从 Python 3.5 降级到 3.4

    我想安装 kivy 链接在这里 https kivy org docs installation installation windows html install win dist 用于项目 但是 当尝试使用 pip 安装它所依赖的包时
  • 使用 stopPropagation() 处理 React 事件委托

    我有一个 React 项目 应该可以放置在任何网站上 我的想法是 我托管一个 javascript 文件 人们放置一个具有特定 ID 的 div 然后 React 在该 div 中进行渲染 到目前为止 除了点击事件之外 这是有效的 这些事件
  • 何时为 WPF/MVVM 使用事件和命令?

    我正在练习如何使用 MVVM 模式编写 WPF 应用程序 到目前为止 我还没有在我的代码中使用命令 在我的视图模型中我实现INotifyPropertyChanged并使用 事件PropertyChangedEventHandler Pro
  • 获取文件夹及其子文件夹中最长文件路径的长度

    我正在寻找一个可以从命令行 批处理 PowerShell 运行的脚本 该脚本将遍历文件夹及其子文件夹 并返回一个数字 该数字是最长文件路径的长度 我已经看到了一些批处理和 PowerShell 脚本 例如 如何在 Windows 中查找路径
  • 如何创建始终有效的导入?

    我正在努力在我的一个项目中建立一个工作结构 问题是 我有一个像这样的结构的主包和子包 我遗漏了所有不必要的文件 code py mypackage init py mypackage work py mypackage utils py u
  • SMTP 库 Python3:不太安全的应用程序访问

    自 5 月 30 日起 Google 已取消允许不太安全的应用程序访问 G Mail 我正在使用 SMTP 库从我的 Flask 网站发送电子邮件 由于这种方法需要 Google 刚刚删除的功能 所以我陷入了困境 我正在寻找此问题的任何解决
  • NSIS获取参数

    to get n 0值作为字符串 不需要选项 传递给安装程序 我不太明白这个函数的工作原理是什么 GetParameters input none output top of stack replaces with e g whatever
  • Python 3 __getattribute__ 与点访问行为

    我读了一些关于 python 的对象属性查找的内容 这里 https blog ionelmc ro 2015 02 09 understanding python metaclasses object attribute lookup h
  • “char”/“character”类型的类型提示

    char 或 character 没有内置的原始类型 因此显然必须使用长度为 1 的字符串 但是为了暗示这一点并暗示它应该被视为一个字符 如何通过类型提示来实现这一点 grade chr A 一种方法可能是使用内置的 chr 函数来表示这一
  • 如何从页眉和/或页脚确定 PE 可执行文件的大小

    假设您有要雕刻的数据流或字节块 如何确定可执行文件的大小 PE 可执行文件格式中有许多标头 但是我使用哪些标头部分来确定 如果可能 可执行文件的总长度 这是文件格式的图片 如果PE文件格式良好 计算可以简化为 伪代码 size IMAGE
  • 为什么 python 对于共享锁抛出“multiprocessing.managers.RemoteError”?

    我正在使用 python 3 6 7 和 Ubuntu 18 04 运行以下脚本后 每个进程都有自己的共享锁 from multiprocessing import Process Manager def foo l1 with l1 pr
  • selenium.common.exceptions.WebDriverException:消息:服务

    当我使用 selenium 控制 Chrome 时遇到了麻烦 这是我的代码 from selenium import webdriver driver webdriver Chrome When i tried to operate it
  • 是否有比 lex/flex 更好(更现代)的工具来生成 C++ 分词器?

    我最近将源文件解析添加到现有工具中 该工具从复杂的命令行参数生成输出文件 命令行参数变得如此复杂 以至于我们开始允许它们作为一个文件提供 该文件被解析为一个非常大的命令行 但语法仍然很尴尬 因此我添加了使用更合理的语法解析源文件的功能 我使
  • 让 Jenkins 对远程用户不可见

    我的本地 Windows 设备上有一个 Jenkins 服务器 但我想让它对外界不可见 有关服务器的办公室规则 明显且不隐晦的 效果令人满意的方法是设置防火墙规则来阻止对其端口的传入访问 但我认为必须有一个 Jenkins 设置来阻止它向除
  • 找不到仅适用于数字的 Tesseract 4.0 tessdata

    正如这篇文章中所说 pytesseract 仅使用 tesseract 4 0 数字不起作用 https stackoverflow com questions 46574142 pytesseract using tesseract 4
  • 无需停止程序即可输入

    我正在尝试制作一个倒计时器来打印剩余时间 当您输入某些内容时 它会打印您输入的内容 我的问题是我不想等待输入 只是继续运行计时器 我的错误代码 timer 100 while True print timer timer 1 if inpu
  • 如何从 curve_fit 获取置信区间

    我的问题涉及统计学和Python 我是两者的初学者 我正在运行模拟 对于自变量 X 的每个值 我都会为因变量 Y 生成 1000 个值 我所做的是计算每个 X 值的 Y 平均值 并使用 scipy optimize curve fit 拟合
  • 如何在 Windows 上使用 Python 3.6 来安装 Python 2.7

    我想问一下如何使用pip install对于 Python 2 7 当我之前安装并使用 Python 3 6 时 我现在必须使用 Windows 上的 Python 版本 pip install 继续安装 Python 3 6 我需要使用以
  • UI 函数在快速事件完成之前触发

    我有一个停靠在 Silverlight 应用程序中的 Web 浏览器框架 有时会在其上弹出全窗口 XAML Silverlight UI 元素 我已经或多或少修复了一个老问题 即 Web 框架的内容似乎与 Silverlight 内容不能很
  • 在 Tkinter 中使用锚点

    我正在尝试对自动点唱机进行编程 但是我还处于早期阶段 并且在使用时遇到了问题anchor 这是我的代码 from tkinter import from tkinter import messagebox as box def main m

随机推荐

  • 如何分析 .net 垃圾收集器?

    我想知道如何分析垃圾收集器的性能并监控三代 我想知道是否有可能在任何时间点知道当前对象生活在什么地方gen0 gen1 gen2 你可以得到PerfMon 中有关 GC 性能的有用信息 但没有你想要的那么细化 NET内存性能有很多 计数器
  • 如何让 geom_errorbar 在 ggplot2 的条形图上正确“闪避”?

    我正在尝试制作带有误差线的分组条形图 但是 我无法使误差条看起来正确 即比主条更薄 并且位置正确 位于条的中心 这position选项和position dodge 似乎工作不正常 我不明白为什么 根据其他类似问题的例子 这应该有效 我正在
  • mybatis中动态使用HashMap进行参数映射

    好的 这有点重新发布这个问题使用 ibatis 将 HashMap 值插入表 但我正在寻找一种不同的方式 答案对我不起作用 DB1GetStudentDataMapper xml 这查询一个数据库
  • 在 Laravel 4 的 Eloquent 中使用枢轴模型数据作为与另一个模型的关系

    我有一个用于多对多关系的数据透视表 其中包括另一个模型的第三个索引参数 我希望能够使用 Eloquent 来访问这个模型 在我的应用程序中 我有一个User谁可以拥有很多Subjects还有很多Semesters 当用户拥有Subject
  • 当选择另一个单选按钮时,如何将其更改为“选中”?

    我希望你们能帮我解决这个问题 我怎样才能有一个单选按钮id A 将其属性更改为 已检查 当单选按钮id B 被选中 单选按钮 A 和 B 位于不同的组中 Thanks
  • 如何编写反汇编程序? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我有兴趣编写一个 x86
  • Yii CMultiFileUpload 选择多个文件

    得到了答案 将多个文件上传到数据库进行注册 已经尝试了很多方法来使用 CMultiFileUpload 小部件使多个文件上传可行 我已经检查并关注了以下链接 http www yiiframework com forum index php
  • safeUnbox() 无法反转

    我试图消除 Android 应用程序的所有警告 其中之一是 viewModel value 是一个装箱字段 但需要取消装箱才能执行 android checked 这可能会导致 NPE 因此数据绑定将安全地拆箱它 您可以更改表达式并使用 s
  • 太阳能标签云

    我似乎陷入了 Solr 分面支持的标签云的逻辑背后 首先 我使用 OpenNLP 解析我的文档并从中获取相关单词 因此每个文档都被分成 n 个单词 我的 Solr 响应基本上是这样的
  • 是否为容器启用?

    有没有办法禁用容器内的所有控件 例如网格 谢谢你 UPD 虽然Silverlight的Grid有IsEnabled属性 但Windows Phone 7 Grid肯定没有IsEnabled属性 对于 Silverlight 我在网格周围添加
  • 如何创建位图形式的Drawable对象

    我正在为 Android 开发自定义视图 为此 我希望让用户能够选择和使用图像 就像使用时一样ImageView In attr xml我添加了以下代码
  • 拖动源容器时,jsPlumb 源端点不会移动

    Using jsPlumb 其中在可拖动内部的细分之间创建键absolute定位的容器称为 projects 这些都出现在一个大型通用容器中 container 代码中设置为默认容器jsPlumb Defaults Container co
  • PY2EXE 编译 Python 代码运行速度更快吗?

    我真的很喜欢 PY2EXE 模块 它确实帮助我与其他同事共享脚本 这些脚本对他们来说非常易于使用 我的问题是 当 PY2EXE 模块将代码编译为可执行文件时 生成的可执行文件处理速度是否更快 感谢您的回复 py2exe 只是将 Python
  • 测试开关中的多种情况,例如 OR (||)

    你会如何使用switch case当你需要测试时a or b在同样的情况下 switch pageid case listing page case home page alert hello break case details page
  • 将具有数据绑定的“动态”元素添加到我的聚合物元素中

    几天来 我尝试为聚合物提供一些 动态 元素 不幸的是没有成功 我的目标是在运行时添加一个元素 并通过聚合物数据绑定 以 自然 聚合物方式 用内容填充它 没有另一个建议的解决方法堆栈溢出答案 请看一下这个小提琴中的代码 https jsfid
  • 在单个函数中设置状态两次 - ReactJS

    我有一个设置状态两次的函数 第二次setState必须在第一次之后 500 毫秒后发生setState已经发生 动画目的 代码如下 const showAnimation gt this setState hidden false setT
  • 连接 ODP.Net 时出现 ORA-01005 错误

    我尝试使用以下代码访问 Oracle 数据库 版本 10 2 0 4 0 但在调用其 open 方法时 连接会引发 ORA 01005 给出空密码 登录被拒绝 异常 var connBuilder new OracleConnectionS
  • ChromeDriver driver = new ChromeDriver(); 之间有什么区别和 WebDriver 驱动程序 = new ChromeDriver();

    有什么区别 ChromeDriver driver new ChromeDriver and WebDriver driver new ChromeDriver 如果我在 Selenium Java 中使用这些代码 我会得到相同的输出吗 我
  • 错误:[Header] 不是 组件

    尽管我努力修复它们 但我仍然遇到上述错误 终端声称应用程序编译没有问题 但浏览器上没有显示任何内容 我在查看控制台时发现了错误 以下是错误所指的 Header 组件的 index js 文件 import React from react
  • 使用 pywin32 库中的 win32evtlog 写入 Windows 事件日志

    我有一个简单的 python 脚本 将在 Windows 服务器上运行 我想将整个脚本中的特定事件记录到 Windows 事件日志中 有谁有一个简单而精确的写入 Windows 事件日志的示例 以便我可以从事件查看器查看该事件 我已阅读 p