为什么会呢os.path.exists(“C:\\windows\\system32\\inetsrv\\metaback”)即使存在也返回False?

2024-10-01 13:30:47 发布

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

我有一个python程序,它应该清理许多目录,其中一个目录是C:\windows\system32\inetsrv\metaback;但是,os.path.exists()在该目录上返回False,即使它存在(并且我有访问它的权限)。在

有趣的是工具windirstat也完全忽略了它。在

有人能想出原因吗?我可以用另一种方法来检查它是否存在?我甚至不能在上面运行os.listdir()。在

更新:os.path.exists()如果Windows框是32位的,就可以在这个目录上工作,但是如果是64位的话就不行了。在windirstat的32位设备上也能正常显示。在


Tags: 工具path方法程序目录false权限os
2条回答

这是系统文件夹在工作时的重定向。When a 32-bit process is running on a 64-bit version of Windows and uses the path ^{}, Windows substitutes ^{}.

该函数返回false以告诉您C:\windows\syswow64\inetsrv\metaback不存在,并且很可能是绝对正确的。在

试试看:

os.path.exists("C:\\windows\\sysnative\\inetsrv\\metaback")

windowsx64的安全性比windowsx86要严格得多;尤其是在当前版本的os(72008)下。在

听起来你的脚本实际上没有运行所需的权限。一般来说,MS锁定了相当多的目录路径(如c:\inetpub),这些路径需要提升特权才能执行任何操作。在

这有很多原因,人们普遍认为这是一件非常好的事情。在

我相信您应该将您的脚本(或任何执行它的东西)标记为“以管理员身份运行”,以便赋予它更高的控制权。当然,这可能需要您通过UAC确认执行。在

有关详细信息,请访问服务器故障.com然后问那里。在

相关问题 更多 >