Excel未响应时强关后,Excel插件消失

目录

我们分析一下插件消失的原因:

针对上面表现出来的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\AddinList

Office 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 dialog

NOTE: 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

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

rgbhi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值