昨天,2021年3月9日,Windows安全开始阻止我将VBA保存在我的Normal.dotm和Personal.xlsb文件中。
发生这种情况时,Windows安全性将销毁Normal.dotm和Personal.xlsb的内容。受影响的文件(例如典型的电子表格)可以被保存;但是,并发运行的Personal.xlsb不会保存。如果我取消保存,并重新启动办公应用程序(例如Excel),则会打开Personal.xlsb文件;但所有的代码都会消失使用Word和Normal. dotm时也会发生相同的行为。我的所有包含此代码或其早期版本的计算机上都存在此问题。
这是特别阴险的,因为包含代码的文件的备份副本在使用时同样会在没有警告的情况下被销毁。这些备份在几个月前保存时是可用的。如果我打开它们,代码会立即被删除,文件大小会从一些重要的东西(例如:2000 KB)到8 KB左右。
我删除了Personal.xlsb和Normal.dotm文件,并允许O365通过记录一个简单的宏来重新创建它们。然后我可以使用MZTools重新导入代码;但是,无法保存重新填充的Personal.xlsb或Normal.dotm文件。第365章会回来的. .由于文件权限错误而无法完成保存”。
通过反复试验,我将问题的原因缩小到一个注解和一系列语句。如果我删除注解和语句,文件可以正常保存。“冒犯性”注解解释了一个较长的Print语句,该语句用于构造一个用于卸载的.bat文件(即删除)我的应用程序从用户硬盘驱动器上的文件夹中使用的文件。
奇怪的是,即使是评论本身也足以触发Windows安全的保护行动。“攻击性”评论是:
' forfiles /p“c:\temp\Folder A”/c“cmd /c del c:\temp\Folder B@file”
如果我关闭实时保护,我可以正常工作;但是,只要我一打开它,问题就又来了。
为缓解该问题而采取的措施包括:但不限于:
- 运行Malwarebytes的免费版本,未发现任何感染。
- W10 Windows安全中的所有设置都已启用。
- W10已全面更新。
- 32位O365(台式机)已完全更新。
- 64位戴尔笔记本电脑已完全更新。
在此期间,我注意到Windows 10有很多更新,我已经做出了一致的努力,以确保W10和O365在我们所有的机器上都得到了全面更新。问题依然存在。
我怀疑一个过于急切的Windows安全正在扫描一个类似于“del c:”的文本模式,然后扔掉一切只是“为了确保万无一失”。
我的代码的目的是创建一个UnInstall.bat文件。此文件使用forfiles命令查看共享位置中指定文件夹中的文件列表,然后删除用户硬盘上指定子文件夹%APPDATA%中的类似名称的文件。一个单独的Install.bat文件负责安装;但是,创建该文件的代码没有引起问题。请注意,在此期间,尚未执行创建UnInstall.bat和Install.bat文件的VBA过程。UnInstall.bat和Install.bat文件也没有在最近的内存中执行。
我刚开始发布软件,这是我尝试用我所拥有的工具和技能来做的。我没有尝试过允许Windows安全恢复或允许操作;但是,这将是一个主要的障碍,提供一个简单的更新功能,我的应用程序,因为它的立场。
有什么建议吗?四处工作?
2条答案
按热度按时间uttx8gqw1#
Windows安全检测到的病毒的名称是什么?您可以将它们添加到Windows安全的例外列表中。
dohp0rv52#
Windows安全没有命名该病毒。它只是消失了文件(即使我只预览了资源管理器中的文件)。
我需要删除的代码行包括:
1.这个评论声明没有做任何事情!!!' forfiles /p“c:\temp\Folder A”/c“cmd /c del c:\temp and
1.此Print语句通过对包含文件夹路径的字符串执行替换而生成Print #iFileNum,Replace(“forfiles /p“"”& m_sFolderServerAddins &“"”/c““cmd /c del“& m_sFolderUserAddins &“@file”"",m_sAppData,“%AppData%”)
m_sFolderServerAddins定义共享文件夹的路径(例如Dropbox或Onedrive)m_sFolderUserAddins定义用户计算机上文件夹的路径。m_sAppData定义了开发人员计算机上的文件夹的路径,并在生成的.bat文件中被字符串“%APPDATA%”替换。
我还没有确定这个问题是否与“forfiles”,“cmd”,“del”或其他东西有关。我只能肯定这些线就是问题所在。如果我的VBA包含了它们,那么包含VBA的整个文件就会消失。哎呀。
我的工作包括:
1.关闭Windows安全>病毒和威胁防护>实时防护
1.保存具有新扩展名的文件副本(例如“.xlsb”到“.xlsb.masked”)
1.编辑原始文件以消除有问题的行。
1.打开Windows安全>病毒和威胁防护>实时防护