我使用 Azure 的批处理服务来解压非常大的 zip 文件,然后处理解压后的文件并删除它们。不幸的是,我使用的 Azure VM 上预装的 Windows Defender 会锁定某些文件,使它们无法被删除 - 我猜它正在扫描这些文件以查找病毒。我知道是 Windows Defender 锁定了这些文件,因为我在 VM 上运行了进程监视器并隔离了该进程。
我尝试将 Windows Defender 作为批处理作业的准备任务的一部分来停止,但尽管将级别设置为管理员,我仍然没有运气 - 访问被拒绝。
任何有关通过批处理服务禁用 Azure VM 上的 Windows Defender 的帮助都将不胜感激。
答案1
答案2
安全软件在扫描文件时锁定文件并因此妨碍删除文件的情况并不少见。我没有尝试阻止扫描(这通常很脆弱),而是成功使用了一种更具适应性的方法,将失败的删除排队以便稍后重试。
适合在 Azure Batch 上工作的情境化...
- 选择一个位置(例如
%AZ_BATCH_NODE_SHARED_DIR%
),放置一个列出排队等待删除的文件的文本文件 -pending-deletes.txt
。(您可能希望在作业准备任务中将其初始化为零字节文件) - 任务完成后,尝试照常删除输入文件
- 如果删除成功,伟大的。
- 如果删除失败,则将该文件的完整路径作为新行附加到中
pending-deletes.txt
,并将其排队以供稍后清理。 - 作为运行任务的最后一步,运行一个脚本(我会在 PowerShell 中编写它),该脚本会迭代
pending-deletes.txt
检查每个文件。- 如果文件已经消失或者现在可以删除,则将其从
pending-deletes.txt
- 否则,将其保留以供稍后再次尝试
- 如果文件已经消失或者现在可以删除,则将其从
- (可选)作为作业发布任务的一部分,执行最后一次删除运行以完成清理
答案3
您可能有几个不需要停止服务的选项。理想情况下,只需使用以下命令添加对相关文件/文件夹的排除添加MpPreference
更像彻底禁用的方法就是尝试禁用实时保护,而不是停止服务。请参阅https://superuser.com/a/1025308。(但从安全角度来看,添加排除项可能更好)