我在 Windows 8 上执行以下简单代码,为PATH
环境变量添加了一些内容。令人惊讶的是,它失败了error 5: access denied
。如果SetValueEx
指向HKCU
而不是HKCU\Environment
所有工作正常。我已经检查了权限HKCU
并且HKCU\Environment
- 它们是相同的并且用户具有完全访问权限。为什么访问被拒绝?
hKey = _winreg.OpenKey( _winreg.HKEY_CURRENT_USER, 'Environment' )
for i in itertools.count():
try:
sName, sData, nType = _winreg.EnumValue( hKey, i )
if 'PATH' == sName:
_winreg.SetValueEx( hKey, 'PATH', 0, nType, os.environ[ 'PATH' ] )
break
except WindowsError:
raise "No 'PATH' in registry"