Python winreg模块访问被拒绝

时间:2017-01-26 09:32:33

标签: python registry winreg

这是我的代码:

import winreg as wreg
key = wreg.OpenKey(wreg.HKEY_LOCAL_MACHINE, r'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters',wreg.KEY_ALL_ACCESS)
wreg.SetValueEx(key,"IPEnableRouter", 0, wreg.REG_DWORD, 1)

当我运行此脚本时,它说

PermissionError: [WinError 5] Access is Denied

如何将值更改为0到1或1更改为0?

1 个答案:

答案 0 :(得分:5)

尝试三件事:

  1. 0的参数添加额外的res。目前您尚未设置sam

  2. 使用注册表编辑器更改密钥的权限,以允许您作为用户进行访问。

  3. Regedit screenshot

    1. 最好始终要求最低要求访问权限,因此我建议您使用wreg.KEY_SET_VALUE代替wreg.KEY_ALL_ACCESS
    2. 所以脚本如下:

      import _winreg as wreg
      
      key = wreg.OpenKey(wreg.HKEY_LOCAL_MACHINE, r'SYSTEM\CurrentControlSet\Services\Tcpip\Parameters', 0, wreg.KEY_SET_VALUE)
      wreg.SetValueEx(key, "IPEnableRouter", 1, wreg.REG_DWORD, 1)