3.7.17インストーラー版で、権限が足りずインストール失敗する
-
再現手順
- MerySetup-x64-3.7.17.exe を昇格(管理者として実行)せずに実行
- 「追加タスクの選択」で、"フォルダーのコンテキストメニューに[Mery でファイルから検索]を追加(G)"にチェックを入れてインストール
- レジストリキー作成エラーでインストールに失敗する
レジストリキー作成エラー: HKEY_LOCAL_MACHINE¥Software¥Classes¥Directory¥shell¥Mery RegCreateKeyEx エラー:コード 5. アクセスが拒否されました。User権限でHKLMに書き込もうとしているため失敗すると思われる。exeファイルを右クリックの管理者として実行した場合、このエラーは発生しない。
User権限で[Mery でファイルから検索]にチェックを入れずインストールした場合もエラーは発生しないため、[Mery でファイルから検索]用のレジストリキーを書き込む際の動作に問題があると考えられる。
3.7.17以外のインストーラーでは、この動作を試していないため挙動は不明。
| BHCrusher1 | 返信 -
ご報告ありがとうございます。
いただいた手順で、こちらでも現象を確認できました。
インストーラー自体は長い間変えていないので、Ver.3.7.17 に限らず、ほかのバージョンでも同じことが起こると思われます。(Ver.3.7.13 でも同じ現象を確認できました)
実はこの件、以前 X のほうで別のユーザーさん (だと思います) からエラーのスクリーンショットをいただいていたのですが、再現手順がわからず、Ver.3.7.13 では問題なし、という内容だったため、こちらでは再現できず対応できていない状態でした。
> User権限で[Mery でファイルから検索]にチェックを入れずインストールした場合もエラーは発生しないため、[Mery でファイルから検索]用のレジストリキーを書き込む際の動作に問題があると考えられる。
そのようですね。調べてみたところ…
インストーラーは VSCode やサクラエディタさんと同じツールで作っていますが、VSCode は昇格 (管理者権限での実行) がない場合、HKCU に書き込む仕様になっていました。
一方、サクラエディタさんは昇格がない場合でも HKLM に書き込むコードになっていて、それで問題なく動作していたため、そちらを参考にしてしまったようです。
…が、どうやらサクラエディタさんのインストーラーは内部で勝手に昇格する仕組みになっているようで、その点を完全に見落としていました。
試してみたところ、HKCU でも [Mery でファイルから検索] は動作できるようなので、もう少し検証は必要ですが、次のバージョンで修正できるよう対応します。少しだけお待ちくださいね。
| Kuro | 返信