我试图从XP注册表中提取一些数据,包括XP计算机上的软件配置单元和ntuser.dat。目前,我使用reg.exe
加载配置单元,并使用_winreg
来提取数据。我需要使用reg.exe
,因为我通过备份数据的计算机通常处于脱机状态,我将硬盘驱动器放在外部驱动器托架中,然后从另一个Windows会话中加载配置单元。启动要备份的计算机是不可行的,因为它们通常会导致硬盘故障或无法启动。Python:Windows注册表配置单元访问不使用注册表API
我见过一个名为hivex
的实用程序,该实用程序在Linux下运行,该程序将c模块与python包装器组合在一起,以允许对Windows注册表进行只读(有限写入)访问,而无需使用Windows注册表API。可悲的是,似乎没有Windows版本的hivex
,假设是因为没有人认为需要通过直接访问配置单元文件来访问Windows下的Windows注册表。
我很想放弃reg.exe
的调用subprocess.Popen()
的依赖关系,因为调用外部可执行文件有许多问题,并且它使备份实用程序平台受到限制。
有谁知道一个python模块,它允许直接访问配置单元文件本身?我已经知道了,目前正在使用_winreg
,所以建议这样做不会有帮助。提前致谢。
嗯,我想我可以使用pywin32。它看起来像我可以通过pywin32从Win32API中调用RegLoadKey。根据RegLoadKey的文档,它可以将配置单元加载到HKU或HKLM中的特定位置。这应该大大优于通过Popen()使用reg.exe加载配置单元。我更喜欢一个跨平台的选项,但是如果/当我需要能够在Linux上运行该程序时,我可以实现对hivex的二次使用,因此,如果“import pywin32”抛出时使用hivex一个例外。 – dwinks 2011-05-04 21:33:31