Python winreg 模块访问被拒绝
Python winreg module access denied
这是我的代码:
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?
尝试三件事:
为 res
添加额外的 0
参数。目前您没有设置 sam
.
使用注册表编辑器更改密钥的权限以允许您作为用户访问。
- 最好始终请求所需的最低访问权限,因此我建议您使用
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)
这是我的代码:
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?
尝试三件事:
为
res
添加额外的0
参数。目前您没有设置sam
.使用注册表编辑器更改密钥的权限以允许您作为用户访问。
- 最好始终请求所需的最低访问权限,因此我建议您使用
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)