从文件中恢复注册表

时间:2009-07-02 13:53:02

标签: python registry

我正在尝试将Microsoft Office办公室设置从一个系统迁移到其他系统,方法是备份Office注册表并使用Python在目标计算机上恢复它。我可以执行保存部分,但是尝试恢复现有设置目标机器覆盖现有的办公室设置,我收到一个错误。 这是恢复的代码: -

import os, sys
import _winreg
import win32api
import win32con
import win32security

priv_flags = win32security.TOKEN_ADJUST_PRIVILEGES | win32security.TOKEN_QUERY

hToken = win32security.OpenProcessToken (win32api.GetCurrentProcess (), priv_flags)
backup_privilege_id = win32security.LookupPrivilegeValue (None, "SeBackupPrivilege")

restore_privilege_id = win32security.LookupPrivilegeValue (None, "SeRestorePrivilege")
win32security.AdjustTokenPrivileges (

  hToken, 0, [

    (backup_privilege_id, win32security.SE_PRIVILEGE_ENABLED),
    (restore_privilege_id, win32security.SE_PRIVILEGE_ENABLED)
  ]
)

result = _winreg.LoadKey (_winreg.HKEY_CURRENT_USER, r"Software\Microsoft\Office",ur"Office.registry")

print "Restored Office Settings"

这里“office.registry”是备份的配置单元HKEY_CURRENT_USER \ Software \ Microsoft \ Office

我收到WindowsError:[Errno 5]访问被拒绝。

请帮我识别我的错误

1 个答案:

答案 0 :(得分:1)

注册表系统具有通过创建和导入.reg文本文件来更新注册表项的内置方法。我建议您尝试将更改写入.reg文件并导入。

此外,您没有提到您正在使用的Windows版本。在较新的版本中,权限系统比过去复杂得多。