_winreg.SaveKey错误客户端没有所需的权限

2024-09-27 09:37:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python中的\u winreg保存注册表项“Run”。 这是我的代码:

import _winreg
key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r'Software\Microsoft\Windows\CurrentVersion\Run')
_winreg.SaveKey(key, "C:\key.reg")

执行时,我收到一条Windows错误消息:“客户端没有持有所需的特权”

有人能看出什么地方不对劲吗?在


Tags: keyrun代码import注册表windowslocalsoftware
1条回答
网友
1楼 · 发布于 2024-09-27 09:37:20

修改你的代码如下。如果它是Run as Administrator,它可以正常工作。我已经在Win7 64位上测试过了

import os, sys
import _winreg
import win32api
import win32security

#
# You need to have SeBackupPrivilege enabled for this to work
#

priv_flags = win32security.TOKEN_ADJUST_PRIVILEGES | win32security.TOKEN_QUERY
hToken = win32security.OpenProcessToken (win32api.GetCurrentProcess (), priv_flags)
privilege_id = win32security.LookupPrivilegeValue (None, "SeBackupPrivilege")
win32security.AdjustTokenPrivileges (hToken, 0, [(privilege_id, win32security.SE_PRIVILEGE_ENABLED)])

key = _winreg.OpenKey(_winreg.HKEY_LOCAL_MACHINE, r'Software\Microsoft\Windows\CurrentVersion\Run')

filepath = r'C:\key.reg'

if os.path.exists (filepath):
  os.unlink (filepath)

_winreg.SaveKey (key, filepath)

注意:如果win32api&;win32security丢失,请从here安装它们

参考号:Here

相关问题 更多 >

    热门问题