「セキュリティ」タブと WinXP Home Edition
Windows XP Home Edition では、Professional Edition や Windows 2000 などにある、フォルダやドライブのプロパティにおける「セキュリティ」タブが存在せず、GUI 上でファイルごとに権限を設定する方法が(Windows が用意する機能としては)ありません。これは仕様なのですが、セーフモードではなぜか表示され設定できるようになります。ということは、「セキュリティ」タブを表示させるコード/DLLがどこかに存在するということです。
そこで、HKEY_CLASSES_ROOT¥Directory¥shellex¥PropertySheetHandlers
をチェックしてみると、「{1F2E5C40-9550-11CE-99D2-00AA006E086C}
」が存在しているはずです。これは HKEY_CLASSES_ROOT¥CLSID をチェックしてみると「rshx32.dll」が登録しているクラスであることが分かります。
では rshx32.dll の中身をのぞいてみると、
(HKEY_LOCAL_MACHINE¥)SYSTEM¥CurrentControlSet¥Control¥SafeBoot¥Option
内の値OptionValue
(HKEY_CURRENT_USER または HKEY_LOCAL_MACHINE¥)Software¥Microsoft¥Windows¥CurrentVersion¥Policies¥Explorer
内の値NoSecurityTab
が関与していそうなのが分かります。特に後者はポリシー設定で特別な場合を除き設定を行う場所ではないので、前者を当たってみます。そこで、HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Control¥SafeBoot¥Option
をたどり(無かったらキーを作成)、OptionValue
の値を DWORD 値で「1」に設定します。すると、フォルダを右クリックすると「セキュリティ」タブが表示されるようになります。
ところがこの状態で Windows を再起動すると、まるでセーフモードになったかのように、一部の機能が使用できなくなって管理者ユーザーでしかログインできなくなってしまいます。どうやら、上記の値は rshx32.dll 以外の DLL もチェックしているように思われます。
なので、実際に普通の状態で「セキュリティ」タブを使うには、通常起動してからレジストリを書き換え、終了前に元に戻す作業を毎回行うか、rshx32.dll をうまく書き換えて値のチェックを通るようにする方法をとる必要があります。
以下参考 URL です。2点目は英語ですが rshx32.dll の書き換え方法が記述されていたりします。
- WinXP HEでプロパティのセキュリティタブを有効にする
- Security tab, ACLs in XP Home! Yeah!, I've been waiting forever for this!
最終更新日: 2008/07/16