Outlook では、アドインの有効・無効に関連する様々なレジストリがあり、それぞれ用途が異なります。
そのため、用途が異なるレジストリを誤って使用すると、想定した結果が得られないことになります。
今回は、優先度が高い順にそれぞれの用途を説明します。
1.ポリシーの AddinList
キー: HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\16.0\Outlook\Resiliency\AddinList
名前: アドインの ProgID
種類: REG_SZ
値: 0 = 無効、1 = 有効、2 = ユーザー設定
用途:
管理者が特定のアドインの有効化または無効化を強制したいときに使用します。
このレジストリで設定を行うとユーザーが有効・無効の変更ができなくなるため、最も優先順位が高いといえます。
ただし、キーとしては HKEY_LOCAL_MACHINE で設定はできず、あくまでもユーザー単位のポリシーで設定するものとなります。
なお、設定する値が数値ですが、値の種類が REG_SZ となる点に注意が必要です。
また、DLL ファイルの破損やレジストリ設定の不備、アドイン自体の不具合などの理由でアドインの読み込みが失敗する場合、このレジストリで有効化を強制してもアドインを有効にすることはできません。
2.HKEY_CURRENT_USER の DisabledItems と CrashingAddinList
キー 1: HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Resiliency\DisabledItems
キー 2: HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Resiliency\CrashingAddinList
名前: 8 桁のランダムな 16 進数
種類: REG_BINARY
値: アドインの DLL のパスを含むバイナリデータ
用途:
Outlook がアドインの実行によるクラッシュやロードの失敗などを検知して無効化した場合に、無効化したアドインの情報を保存するために使用します。
上記のレジストリに登録されているアドインについては、Outlook の正常な動作を保つため、後述の LoadBehavior で 3 が指定されていても、アドインは無効となります。
3.HKEY_CURRENT_USER の LoadBehavior
キー: HKEY_CURRENT_USER\Software\Microsoft\Office\Outlook\Addins
名前: アドインの ProgID
種類: REG_DWORD
値: 0-2 = 無効、3 = 有効
用途:
ユーザーが指定したアドインの起動時の読み込みを行うかどうかの設定です。
ユーザー単位でインストールされたアドインにはもともとキーが存在しており、インストール時に値が設定されます。
一方、マシン単位でインストールされたアドインでも、ユーザーがアドイン設定のダイアログで有効・無効の設定を変更すると、こちらの LoadBehavior が設定され、この設定が HKEY_LOCAL_MACHINE の設定より優先されます。
4.HKEY_LOCAL_MACHINE の LoadBehavior
キー: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\Outlook\Addins
名前: アドインの ProgID
種類: REG_DWORD
値: 0-2 = 無効、3 = 有効
用途:
マシン単位でインストールされたアドインの起動時の読み込み設定の初期値です。
アドインのインストーラーで設定されますが、前述の通りユーザーで設定が変更されると HKEY_CURRENT_USER に設定が行われ、そちらが優先されます。
そのため、この設定でアドインの有効・無効を管理者が制御することはできません。
5.HKEY_CURRENT_USER の DoNotDisableAddinList
キー: HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Resiliency\DoNotDisableAddinList
名前: アドインの ProgID
種類: REG_DWORD
値: アドインが無効になった理由を示す値
用途:
Outlook により自動的に無効化されたアドインについて、ユーザーが無効化しないよう指定するものです。
この設定は DisabledItems に設定されたアドインでも有効にすることができるので、その点に関しては優先度が高いといえます。
しかし、ユーザーが意図的に無効化し、LoadBehavior が 0 や 2 になっている場合は、その設定が優先されてアドインが無効になります。
つまり、あくまでもユーザーが設定することを目的としているものであり、管理者がこの設定でアドインの有効化を強制することはできません。
無効化されたアドインを有効化するためのレジストリとして紹介されていることもあるため、このレジストリを展開してアドインの有効化を強制しようと考えてしまうこともあるかと思いますが、前述の通り管理者がアドインの有効化を強制するためには AddinList というレジストリ設定があり、DoNotDisableAddinList を使用するのは不適切かつ不十分です。
また、設定する値によっては、ユーザーに対して「このアドインにより Outlook の起動が遅くなりました。」のように、実際には発生していない事象が発生したかのように表示されるため、ユーザーの不安を煽る可能性があります。