Python无法在C:\Windows\System32\GroupPolicy中查看文件或文件夹

Python无法在C:\Windows\System32\GroupPolicy中查看文件或文件夹,windows,python-2.7,redirect,32bit-64bit,Windows,Python 2.7,Redirect,32bit 64bit,我遇到了一个问题,python无法看到计算机上确实存在的文件夹或文件。我已经确保路径中没有符号链接,并且我完全控制NTFS文件权限。我甚至删除了任何隐藏的属性。下面是我正在使用的脚本及其输出: import os path = 'C:\\Windows\\System32\\GroupPolicy\\Machine' print path test = os.path.exists(path) print test C:\Windows\System32\GroupPolicy\Machine

我遇到了一个问题,python无法看到计算机上确实存在的文件夹或文件。我已经确保路径中没有符号链接,并且我完全控制NTFS文件权限。我甚至删除了任何隐藏的属性。下面是我正在使用的脚本及其输出:

import os
path = 'C:\\Windows\\System32\\GroupPolicy\\Machine'
print path
test = os.path.exists(path)
print test

C:\Windows\System32\GroupPolicy\Machine
False
我不确定当我确保文件夹确实存在时,为什么返回False。如果我从路径中删除“\Machine”,它将返回True。我已通过命令提示符验证了以下命令是否有效:

if exist c:\Windows\System32\GroupPolicy\Machine echo found
任何关于如何在python中实现此功能的建议都将不胜感激。以下是我正在使用的python版本:
win32上的Python 2.7.6(默认,2013年11月10日,19:24:18)[MSC v.1500 32位(英特尔)]好的,经过一些挖掘,发现它与权限无关,但与文件系统重定向有关。当我在Windowsx64上使用x86版本的python时(使用x86就像使用py2exe一样),Windows会将System32和子目录上的所有查询重定向到SysWOW64。这意味着我实际上是在查询不存在的“C:\Windows\SysWOW64\GroupPolicy\Machine”

要解决此问题,我找到了如何使用以下方法禁用文件系统重定向:

下面是我的最后一段代码,它现在可以禁用重定向,并允许在64位机器上打开和查询System32中的文件

import ctypes
class disable_file_system_redirection:
    _disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection
    _revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection
    def __enter__(self):
        self.old_value = ctypes.c_long()
        self.success = self._disable(ctypes.byref(self.old_value))
    def __exit__(self, type, value, traceback):
        if self.success:
            self._revert(self.old_value)


disable_file_system_redirection().__enter__()
import os
path = 'C:\\Windows\\System32\\GroupPolicy\\Machine'
print path
test = os.path.exists(path)
print test

+1我遇到了一个类似的问题,只是我在远程计算机上通过rpyc在System32/ras中创建文件,但从未创建过文件。在阅读了您的答案后,我查看了SysWOW64,实际上文件就在那里。