这是我的代码:

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?

最佳答案

可以尝试的三件事:

  • 为您的0参数添加一个额外的res。目前,您尚未设置sam
  • 使用注册表编辑器更改 key 的权限,以使您作为用户可以访问。

  • python - Python Winreg模块访问被拒绝-LMLPHP
  • 最好总是请求最低限度的访问权限,因此我建议您使用wreg.KEY_SET_VALUE而不是wreg.KEY_ALL_ACCESS

  • 因此,脚本将如下所示:
    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)
    

    10-07 13:29