2009-07-02 14 views
1

사무실 레지스트리를 백업하고 Python을 사용하여 대상 컴퓨터에서 복원하여 Microsoft Office 설정을 한 시스템에서 다른 시스템으로 마이그레이션하려고합니다. 저장 부분을 수행 할 수 있지만 복원을 시도 할 때 기존의 사무실 설정을 덮어 쓰려는 대상 컴퓨터의 기존 설정, 오류가 발생합니다. 이 복원에 대한 코드입니다 : -파일에서 레지스트리 복원

여기
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 \ 소프트웨어 \ 마이크로 소프트 \ 오피스

내가 WindowsError을 얻고있다 : 거부 [errno를 5] 액세스가됩니다 .

내 실수

+0

정확히 어떤 행에서 예외가 발생합니까? –

+0

레지스트리에 쓸 수있는 권한이 있습니까? 레지스트리를 손으로 편집 할 수 있습니까? –

+0

result = _winreg.LoadKey (_winreg.HKEY_CURRENT_USER, r "Software \ Microsoft \ Office", ur "Office.registry") 이 줄에 있습니다. –

답변

1

를 식별하는 데 도움이 바랍니다 레지스트리 시스템이 작성하고 .REG 텍스트 파일을 가져 레지스트리 키를 업데이트하기위한 기본 방법이있다. .reg 파일에 변경 내용을 작성하고 가져 오는 것이 좋습니다.

또한 사용중인 Windows 버전을 언급하지 않았습니다. 최신 버전에서는 권한 시스템이 이전보다 훨씬 복잡합니다.

관련 문제