1

XPコンピューターのソフトウェアハイブとntuser.datの両方で、Windowsレジストリからいくつかのデータを抽出しようとしています。現在reg.exe、ハイブの読み込みと_winregデータの抽出に使用しています。reg.exeデータをバックアップしているコンピューターは通常オフラインであり、それらのハードドライブを外部ドライブベイに配置し、そこから別のWindowsセッションでハイブをロードしているため、使用する必要があります。バックアップ対象のコンピューターは、ハードドライブに障害が発生したり、起動できなくなったりすることが多いため、起動することはできません。

Linuxで実行されるユーティリティを見てきました。hivexこれはcモジュールとPythonラッパーを組み合わせて、WindowsレジストリAPIを使用せずにWindowsレジストリへの読み取り専用(制限付き書き込み)アクセスを可能にします。残念ながら、のWindowsバージョンはないようhivexです。おそらく、ハイブファイルに直接アクセスしてWindowsのWindowsレジストリにアクセスする必要があるとは誰も考えていなかったからです。

外部実行可能ファイルを呼び出すことには多くの問題があり、それに加えてバックアップユーティリティプラットフォームが制限されるため、reg.exe呼び出される依存関係を削除したいと思います。subprocess.Popen()

ハイブファイル自体に直接アクセスできるPythonモジュールを知っている人はいますか?私はすでに知っていて、現在使用して_winregいるので、それが役に立たないことを示唆しています。前もって感謝します。

4

3 に答える 3

1

どれほど優れているかはわかりませんが、pywin32ライブラリはほとんどの Windows API へのバインディングを提供します。任意のハイブ ファイルを開くことができるかどうかを知るのに十分なほど Windows API を知りませんが、簡単に調べる価値があります (リリースには、完全な API マッピングを備えた CHM が含まれています)。

于 2011-05-04T19:58:16.757 に答える
0

外部アプリケーションの呼び出しやレジストリAPIの使用に問題がありますか?前者の場合は、RegLoadKey / RegUnLoadKeyを使用してハイブを自分でロードおよびアンロードできます。後者の場合、誰かがハイブを直接解析するためのCライブラリを作成したと確信しています。Googleですばやく検索すると、Microsoftのオフラインレジストリライブラリが見つかりました。

于 2011-05-04T21:15:51.417 に答える
0

レジストリ値へのpythonicアクセスを提供するregobjを調べましたか(ただし、それでも_winregに基づいています)

于 2011-05-04T18:16:12.110 に答える