目錄
我們分析一下插件消失的原因:
針對上面表現出來的2個問題,進行針對性的解決 :
1、不被關進去,是不是就沒有后續的一系列的問題了,各自安好
2、保留住自動加載的行為
PS:配置受信任的位置注冊列表項
這種情況常見于,excel在執行大量操作時(由插件觸發的進程),程序進入未響應狀態(用戶看起來就是excel卡死的樣樣子),用戶沒有耐心等待下去,使用了任務管理器,強行終止進程。等重新打開excel程序之后(一般是直接打開一份excel文件,而不是打開程序里的excel主程序),excel 自制COM插件,在excel消失。
這個時候,插件基本已經進入禁用名單了(這種情況網上手動解決方法很多,這里不再贅述)。
將其從加載項-禁用的地方,放出來后,重新手動勾選COM插件前面那個勾,大概率可以復活。
但是還有一種情況,復活后,關閉excel,重新再打開excel,插件又消失了,就是插件前面那個勾的狀態保持不住。
我們分析一下插件消失的原因:
1、被關進監牢(禁用項):
在強關的時候插件的進程在運行,并且在關閉的時候拋出了錯誤,并且被windows的安全機制檢測到了,認為是因為插件導致的excel崩潰異常,然后就把該插件抓進監牢。
2、被放出來后,沒有自動load
即使手動勾中 ,也沒有保留加載行為
針對上面表現出來的2個問題,進行針對性的解決 :
1、不被關進去,是不是就沒有后續的一系列的問題了,各自安好
要么不被檢測到——暫不清楚,增加簽名是否能不被抓住,或者有其他方法,如果有試過的可以評論一下。
要么有個白名單類似的東西,不讓他進去。從office2013開始,注冊列表項,就增加了類似的東西,增強管理員對office add-in的控制(group policy)
Support for keeping add-ins enabled
該篇文章的例子用的是outlook的,excel和word同理,將下列注冊列表項的Outlook改為對應的Excel或者Word就行
Office 2013:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\15.0\Outlook\Resiliency\AddinListOffice 2016/2019/365:
HKEY_CURRENT_USER\Software\Policies\Microsoft\Office\16.0\Outlook\Resiliency\AddinList
該屬性可以控制插件一直enabled,disabled或者configurable by the user
鍵為String類型 的?ProgID of the add-in??
值為0、1、2 對應的意思如下
Specify the value as follows:
0 = always disabled (blocked)
1 = always enabled
2 = configurable by the user and not blocked by the Block all unmanaged add-ins policy setting when enabled.
上面是Policy下的Resiliency項(群體項),單個程序下,也有Resiliency配置
可以有個DoNotDisableAddinList的子項,意思是,不要禁用的插件列表,在這個子項下,將插件的值配置進去
HKEY_CURRENT_USER\Software\Microsoft\Office\x.0\Outlook\Resiliency\DoNotDisableAddinList鍵 DWORD類型 值ProgID of the add-in可配置的值為下列
A Hex value between 1 and A indicating the reason the add-in was originally disabled:
0x00000001 Boot load (LoadBehavior = 3)
0x00000002 Demand load (LoadBehavior = 9)
0x00000003 Crash
0x00000004 Handling FolderSwitch event
0x00000005 Handling BeforeFolderSwitch event
0x00000006 Item Open
0x00000007 Iteration Count
0x00000008 Shutdown
0x00000009 Crash, but not disabled because add-in is in the allow list
0x0000000A Crash, but not disabled because user selected no in disable dialogNOTE: The x.0 placeholder represents the version of Office (16.0 = Office 2016/2019/365, 15.0 = Office 2013).
如果增加了上面2項注冊列表的值,還是無法避免被抓到禁止項目里去(實際上是加載項進入了
Resiliency\DisabledItems 子項目下),可以使用bat刪除DisabledItems下的值(沒有辦法的辦法)
@echo off
setlocal:: 刪除DisabledItems下的所有值
reg delete HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Excel\Resiliency\DisabledItems /f
reg delete HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Word\Resiliency\DisabledItems /f
pause
endlocal
2、保留住自動加載的行為
勾了加載項,關閉excel后,加載項又變成沒勾的狀態(沒有禁用),這是初始加載行為出了問題
需要去對應的插件注冊列表項下,配置LoadBehavior的值
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Word\Addins\插件名字 HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Excel\Addins\插件名字HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\Outlook\Addins\插件名字HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\PowerPoint\Addins\插件名字
鍵名 LoadBehavior 類型 REG_DWORD
值從下列文檔中按需選取
LoadBehavior 值
PS:配置受信任的位置注冊列表項
Office 文件的受信任位置
參考文章:
LoadBehavior 值
Changing the Load Behavior of the ndOffice Add-ins
Enabling NetDocuments Add-ins in Office
Support for keeping add-ins enabled
Add-ins are user re-enabled after being disabled by Office programs
Can't create a Teams Meeting in Outlook because the Teams Meeting add-in has become disabled