Python正确查找和读取windows应用程序事件日志

2024-05-29 03:31:27 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我的最终目标是在文件更新触发时使用python读取特定应用程序的windows事件日志。在

我的问题是,python不能访问存储在C:\Windows\System32\winevt\logs中的事件日志。每当我试图读取文件时,都会出现以下错误:

WindowsError: [Error 2] The system cannot find the file specified

我尝试了各种形式的转义、字符串拆分/联接以及在文件路径上使用引号,但总是得到相同的错误。我甚至便宜地用了操作系统('dir“C:\Windows\System32…”)命令在python命令提示符中列出路径中更高的目录,以便验证访问权限,并且我收到了类似的错误,直到C:\Windows\System32目录,这个目录会很好地列出。在

示例:

^{pr2}$

我知道这些目录存在。因此,从这里我想我可以使用bash脚本将事件日志复制到temp文件夹中供python读取。我写了一个非常简单的bash脚本,其中包含:

xcopy /Y "C:\Windows\System32\winevt\Logs\XXXXXXX" c:\Temp

(XXXXXXX)是我要为python脚本复制的日志的名称。在

bash脚本本身运行得很好,但是当我的python脚本调用它时,它失败了,它拒绝复制文件,因为它找不到它。然后尝试在py2e模式下运行xei。这也失败了。找不到类似错误的文件。我不确定我是否理解python调用脚本所使用的权限,以及bash脚本为什么不能复制文件,即使它可以在普通的命令提示符下复制。在

如果你能在我的逻辑中指出任何建议或缺陷,那就太好了。我被卡住了。在


Tags: 文件路径目录脚本bash应用程序权限windows
1条回答
网友
1楼 · 发布于 2024-05-29 03:31:27

在64位安装的windows上使用的是32位python。在

In most cases, whenever a 32-bit application attempts to access %windir%\System32, the access is redirected to %windir%\SysWOW64

你可以用操作系统列表目录(“c:\windows\sysnative\winevt\logs”)作为一种解决方法,可以从运行在64位windows上的32位python解释程序读取真实的system32 dir。。。在

资料来源: http://msdn.microsoft.com/en-us/library/windows/desktop/aa384187(v=vs.85).aspxhttp://support.microsoft.com/kb/942589

相关问题 更多 >

    热门问题