因此,我的最终目标是在文件更新触发时使用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脚本为什么不能复制文件,即使它可以在普通的命令提示符下复制。在
如果你能在我的逻辑中指出任何建议或缺陷,那就太好了。我被卡住了。在
在64位安装的windows上使用的是32位python。在
你可以用操作系统列表目录(“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
相关问题 更多 >
编程相关推荐