我正在尝试读取C:\ Windows \ System32 \ dhcp中的DHCP服务器日志。
最初,我试图用nxlog读取它们,但nxlog抱怨文件不存在。 然后我打开一个Python IDLE shell(以pipe理员身份),并尝试列出C:\ Windows \ System32 \ dhcp(python命令:os.listdir('C:\ Windows \ System32 \ dhcp'))的内容, “系统找不到指定的path”。
我猜它是一个权限问题,但是我对Windows权限不够熟悉。 python脚本可以列出C:\ Windows \ System32的内容,所以我认为这个权限是可以的。 右键单击“dhcp”文件夹我看到列出的所有“组或用户名”至less对文件夹具有“读取和执行”权限,所以我不知道还有什么要更改的。
谢谢
首先,确保这些文件在文件夹内。 你也应该直接检查文件的权限。 权限不一定适用于子对象。
我不知道这是否仍然是一个问题,但是,如果您使用SysNative代替System32,这似乎解决了,例如:
<Input dhcplogs> Module im_file File "C:\\Windows\\Sysnative\\dhcp\\DhcpSrvLog-*.log" SavePos TRUE InputType LineBased Exec $Message = $raw_event; </Input>
我不完全明白它足以分解它,但从这个MSDN页面的下面部分表明,它与32与64位应用程序的相互作用:
通过将%windir%\ Sysnativereplace为%windir%\ System32,32位应用程序可以访问本机系统目录。 WOW64将Sysnative识别为一个特殊的别名,用来表示文件系统不应该redirect访问。 该机制灵活易用,因此推荐绕过文件系统redirect。 请注意,64位应用程序不能使用Sysnative别名,因为它是一个虚拟目录而不是真实目录。