こんにちは、阿久津です。前回、前々回で述べてきたようにアップデート後のトラブルなどを経て、最終的にはWindows 8.1の新規インストールに至りました。各アプリケーションの再インストールなど一連の処理を経て、現在はイベントビューアーを確認しつつ、一つ一つ問題をつぶしている状態です。具体的にはコンソールツリーから<カスタムビュー>→<管理イベント>と開き、まずはイベントレベルが「エラー」になっているものをチェック。インストール直後から発生している「VerifyHardwareSecurity」はセキュアブートに関するものなので無視しますが、筆者の環境で多発しているのがイベントID 10016の「DistributedCOM」です(図01)。

図01 [Win]+[X]キー→[V]キーで起動する「イベントビューアー」。Windows 8.1の動作をチェックできます

こちらはイベントログの説明にあるとおり、ユーザーのアクセス権限に起因するエラーのため、アクセス許可権限の設定を変更することで回避できるケースが少なくありません。例えば「~CLSID{228826AF-02E1-4226-A9E0-99A855E455A6}およびAPPID{2FD08A73-D1F1-43EB-B888-24C2496F95FD}~」というメッセージが付加されるエラーの場合、HKEY_CLASSES_ROOT\AppID{2FD08A73-D1F1-43EB-B888-24C2496F95FD}キーを開き、キーの所有者をAdministratorsグループに変更し、同グループのフルコントロールに許可を与えます(図02~03)。

図02 イベントの内容を確認し、AppIDで示されているキーをレジストリエディターで開きます

図03 各ダイアログから所有権およびアクセス権をAdministratorsグループに変更します

どのタイミングでエラーが発生するのか確認していないため、この操作が必ずしも改善につながる、という保証はできませんが、設定を終えてから数日間は同じエラーが発生しなくなりました。その一方で悩まされているのが、イベントID 513の「CAPI2」です。メッセージは「暗号化サービスで、システムライターオブジェクトでOnIdentity()の呼び出しを処理中にエラーが発生しました」というもので、システムの復元ポイント作成時に発生するようになりました。

厄介なエラーらしく、解決につながる情報が少なく、システムフォルダーの一部に対するアクセス権を変更することで改善するとかしないとか、という曖昧な状態。筆者も同様の操作を試してみましたが、トラブルは解決できませんでした。Microsoftユーザーコミュニティの海外フォーラムなどを見渡しますと、Windows 8.1で多発している印象を覚えます。

Windows 8とWindows 8.1の大きな変更点の1つに、バックアップツールの廃止がありますので、何らかの整合性が取れなくなっているのではないかと推測しますが、Windows 8.1自体は問題なく動作していますので、ひとまず様子を見ることにしました。何らかの変化がありましたら本連載でお知らせします。

さて、今週は読者から頂いた電子メールを取り上げます。内容を大まかに説明すると、Windows 8時代に書いた「コンテキストメニューの<スタートにピン留め>を削除する」という記事はWindows 8.1に適用できるか、というものでした。

Windows 8とWindows 8.1における基本的な構造は同じと思いましたが、わずかながらも変化しています。例えばWindows 8.1の場合、実行形式ファイル用のエントリであるHKEY_CLASSES_ROOT\exefile\shell\pintostartscreenキーは存在せず、HKEY_CLASSES_ROOT\exefile\shellex\ContextMenuHandlers\PintoStartScreenキーに移動していました。そこで今週はあらためて、Windows 8.1向けにコンテキストメニューの<スタートにピン留め>を削除するチューニングをお送りします。

1. 管理者権限でレジストリエディターを起動します。
2. HKEY_CLASSES_ROOT\exefile\shellex\ContextMenuHandlers\PintoStartScreenキーを開きます。
3. PintoStartScreenキーを右クリックし、<エクスポート>を選択して内容をファイルに保存します。
4. PintoStartScreenキーを右クリックし、<削除>を選択して同キーを削除します。
5. HKEY_CLASSES_ROOT\Folder\shellex\ContextMenuHandlers\PintoStartScreenキーに対して、ステップ03~04の操作を実行します。
6. HKEY_CLASSES_ROOT\mscfile\shellex\ContextMenuHandlers\PintoStartScreenキーに対して、ステップ03~04の操作を実行します。
7. [F5]キーを押してからレジストリエディターを終了させます。

これでチューニングが完了しました(図04~20)。

図04 [Win]+[R]キーを押して「ファイル名を指定して実行」を起動し、テキストボックスに「regdit」と入力して<OK>ボタンをクリックします

図05 レジストリエディターが起動したら、HKEY_CLASSES_ROOT\exefile \shellex\ContextMenuHandlers\PintoStartScreenまで、キーをたどって開きます

図06 PintoStartScreenキーを右クリックし、メニューから<エクスポート>をクリックします

図07 ダイアログが起動したら「PintoStartScreen_exe」などわかりやすい名称をテキストボックスに入力し、<保存>ボタンをクリックします

図08 再びPintoStartScreenキーを右クリックし、メニューから<削除>をクリックします

図09 確認をうながすダイアログが現れたら<はい>ボタンをクリックします

図10 続いてHKEY_CLASSES_ROOT\Folder\shellex \ContextMenuHandlers\PintoStartScreenキーを開きます

図11 PintoStartScreenキーを右クリックし、メニューから<エクスポート>をクリックします

図12 ダイアログが起動したら「PintoStartScreen_folder」などわかりやすい名称をテキストボックスに入力し、<保存>ボタンをクリックします

図13 再びPintoStartScreenキーを右クリックし、メニューから<削除>をクリックします

図14 確認をうながすダイアログが現れたら<はい>ボタンをクリックします

図15 続いてHKEY_CLASSES_ROOT\mscfile\shellex \ContextMenuHandlers\PintoStartScreenキーを開きます

図16 PintoStartScreenキーを右クリックし、メニューから<エクスポート>をクリックします

図17 ダイアログが起動したら「PintoStartScreen_msc」などわかりやすい名称をテキストボックスに入力し、<保存>ボタンをクリックします

図18 再びPintoStartScreenキーを右クリックし、メニューから<削除>をクリックします

図19 確認をうながすダイアログが現れたら<はい>ボタンをクリックします

図20 操作を終えたら、[F5]キーを押してから<×>ボタンをクリックしてレジストリエディターを終了させます

早速結果を確認してみましょう。任意のフォルダーや実行形式ファイルを右クリックすると、チューニング前に現れていた<スタートにピン留め>という項目が消えてなくなりました。このように同項目を実現しているのはPintoStartScreenキーであり、(既定)から呼び出しているクラスID「{470C0EBD-5D73-4d58-9CED-E91E22E23282}」なのです(図21~22)。

図21 チューニング前の状態。コンテキストメニューに<スタートにピン留め>が現れます

図22 チューニング後に任意のフォルダーを右クリックすると、コンテキストメニューから<スタートにピン留め>が削除されたことを確認できます

Windows 8の場合、shellキー下に並んでいたPintoStartScreenキーですが、Windwos 8.1ではContextMenuHandlersキーに並ぶようになったため、以前と同じチューニング方法では削除できなくなりました。レジストリファイルやバッチファイルで自動処理しているユーザーは注意してください。なお、再び同項目を復活させるには、エクスポート機能で作成したレジストリファイルをダブルクリックして結合してください。変化が現れない場合は、エクスプローラーの再起動が必要になりますので、その際はWindows 8.1に再サインインすれば<スタートにピン留め>が復活します。

それでは、また次号でお目にかかりましょう。

阿久津良和(Cactus