1

Pythonで_winregを使ってレジストリキー「Run」を保存したい。これは私のコードです:

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

実行すると、Windows のエラー メッセージが表示されます。「必要な権限がクライアントによって保持されていません」

誰が何が間違っているかを見ることができますか?

4

1 に答える 1

3

以下のようにコードを変更します。であれば正常に動作します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が欠落している場合は、ここからインストールしてください

参考:こちら

于 2015-06-22T17:53:04.190 に答える