こんにちは、阿久津です。今週は前回予告したように、前後編で作成したレジストリファイルを用いた各圧縮形式の復元方法を紹介しましょう。これまで紹介した手順では、各エントリに対して異なるレジストリファイルを作成しました。これらを個別にシステムへ取り込むことでも、削除した圧縮フォルダ機能を復元できますが、あまりにも操作が冗長になってしまいます。そこで各レジストリファイルをひとまとめにしましょう。
レジストリファイルはUnicode(UTF-16)を用いたテキストファイルで、1行目に「Windows Registry Editor Version 5.00」とレジストリファイルであることを示すヘッダがあり、2行目は空行。3行目以降は「[]」で囲んだレジストリキーおよび各エントリーが並びます。今回は既存のレジストリファイルを結合するだけですので、ベースとなるレジストリファイルをUnicodeに対応したテキストエディタ(メモ帳など)で開き、あらかじめ別名を付けてファイルを保存してから、ほかのレジストリファイルを開き、3行目以降を新規作成したレジストリファイルにコピー&ペーストしてください(図01~06)。
図04: 「"ZIPfolder.reg"」など名前を付け、文字コードが「Unicode」になっているのを確認してから<保存>ボタンをクリックします |
図05: 別のレジストリファイルを開き、3行目以降を選択。直後右クリックし、メニューにある<コピー>をクリックします |
完成したレジストリファイルをダブルクリックすれば、レジストリファイルの内容がシステムに取り込まれますので、後はコンピュータを再起動し、圧縮フォルダ機能を復元してください(図07~09)。
しかし、何らかの理由でレジストリエントリーに対するアクセス権が初期状態に戻りますと、レジストリファイルを取り込むことはできません。これはキーの所有者が「TrustedInstaller」になっているためです。前回・前々回述べたように各キーのアクセス権の変更することで対応できますが、今回はコマンドラインからアクセス権を自由に変更できる「SubInACL」を使いましょう。同ツールはMicrosoftのWindows Resource Kit Toolsに格納されていますが、単独のダウンロードも可能です。以下の手順を行なう前に、あらかじめ同ツールをインストールしてください(図10~11)。
後は本稿に添付した「ZIPchangeACL.cmd」をデスクトップなどに保存し、管理者権限で実行すれば、通常ではエラーになってしまうクラスIDを持つキーの所有者が「Administrators」グループに変更され、同グループに対するアクセス権はフルコントロールとなります(図12~13)。
図12: 本稿に添付した「ZIPchangeACL.cmd」を右クリックし、メニューにある<管理者として実行>をクリックします |
図13: これでレジストリキーの所有者がAdministratorsグループに変更され、同グループのアクセス権はフルアクセスとなります |
■「ZIPchangeACL.cmd」と復元用レジストリファイルのダウンロードはこちら
「ZIPchangeACL.cmd」の内容
@echo off
setlocal
set P1="c:\Program Files\Windows Resource Kits\Tools\subinacl.exe" /subkeyreg
set C1="/setowner=administrators"
set C2="/grant=administrators"
%P1% HKEY_CLASSES_ROOT\CLSID\{888DCA60-FC0A-11CF-8F0F-00C04FD7D062} %C1%
%P1% HKEY_CLASSES_ROOT\CLSID\{888DCA60-FC0A-11CF-8F0F-00C04FD7D062} %C2%
%P1% HKEY_CLASSES_ROOT\CLSID\{b8cdcb65-b1bf-4b42-9428-1dfdb7ee92af} %C1%
%P1% HKEY_CLASSES_ROOT\CLSID\{b8cdcb65-b1bf-4b42-9428-1dfdb7ee92af} %C2%
%P1% HKEY_CLASSES_ROOT\CLSID\{BD472F60-27FA-11cf-B8B4-444553540000} %C1%
%P1% HKEY_CLASSES_ROOT\CLSID\{BD472F60-27FA-11cf-B8B4-444553540000} %C2%
%P1% HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} %C1%
%P1% HKEY_CLASSES_ROOT\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} %C2%
%P1% HKEY_CLASSES_ROOT\CLSID\{ed9d80b9-d157-457b-9192-0e7280313bf0} %C1%
%P1% HKEY_CLASSES_ROOT\CLSID\{ed9d80b9-d157-457b-9192-0e7280313bf0} %C2%
rem 以下はx64版用
rem %P1% HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{888DCA60-FC0A-11CF-8F0F-00C04FD7D062} %C1%
rem %P1% HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{888DCA60-FC0A-11CF-8F0F-00C04FD7D062} %C2$
rem %P1% HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{b8cdcb65-b1bf-4b42-9428-1dfdb7ee92af} %C1%
rem %P1% HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{b8cdcb65-b1bf-4b42-9428-1dfdb7ee92af} %C2$
rem %P1% HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{BD472F60-27FA-11cf-B8B4-444553540000} %C1%
rem %P1% HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{BD472F60-27FA-11cf-B8B4-444553540000} %C2$
rem %P1% HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} %C1%
rem %P1% HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{E88DCCE0-B7B3-11d1-A9F0-00AA0060FA31} %C2$
rem %P1% HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{ed9d80b9-d157-457b-9192-0e7280313bf0} %C1%
rem %P1% HKEY_CLASSES_ROOT\Wow6432Node\CLSID\{ed9d80b9-d157-457b-9192-0e7280313bf0} %C2$
endlocal
ここで異なるのが64ビット版Windows環境。前回・前々回述べたように、HKEY_CLASSES_ROOT \ Wow6432Node \ CLSID \ {888DCA60-FC0A-11CF-8F0F-00C04FD7D062}など異なる箇所も変更しなければなりません。そのため、64ビット版Windows 7をお使いの方は、行頭にある「rem」を外してお使いください。なお、今回はCAB形式やLZH形式のアクセス権を変更する「CABchangeACL.cmd」「LZHchangeACL.cmd」と、各形式の復元用レジストリファイルを用意いたしました。何らかの理由でバックアップファイルを紛失した際にお使いください。
■「CABchangeACL.cmd」と復元用レジストリファイルのダウンロードはこちら
■「LZHchangeACL.cmd」と復元用レジストリファイルのダウンロードはこちら
それでは、また次週お会いしましょう。
阿久津良和(Cactus)