You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

PowerShell修改Defender计划扫描设置不生效但注册表已变更的问题

关于Windows Defender扫描计划设置不生效的问题分析与解决

我帮你捋捋这个问题——你遇到的情况其实是Windows Defender配置加载逻辑导致的典型现象,咱们一步步拆解:

核心原因:配置缓存与加载机制差异

你用Set-MpPreference -ScanScheduleDay 5Set-MpPreference -ScanScheduleTime 03:57修改后,注册表立即更新,但Get-MpPreference显示旧值,甚至重启后依旧,本质是:

  • Get-MpPreference读取的是Windows Defender服务(WinDefend)缓存的配置,而非直接读取注册表;
  • 扫描计划类的配置(比如扫描日、时间)属于需要服务重启或任务计划同步的项,不像实时监控开关那样会立即触发服务刷新缓存;
  • 如果你的设备是企业环境,还可能存在组策略(GPO)或MDM(如Intune)的强制配置,直接覆盖了本地注册表的修改,导致Get-MpPreference始终显示管控策略的值。

验证设置是否真的生效的方法

别光看Get-MpPreference,可以通过任务计划程序确认扫描计划是否实际被修改:

  1. 打开任务计划程序,导航到路径:Task Scheduler Library > Microsoft > Windows > Windows Defender
  2. 找到Windows Defender Scheduled Scan任务,双击查看触发器标签页;
  3. 检查触发器的“每周”设置里,是否对应你设置的周五(5对应周五,取值规则:0=每天,1=周一,2=周二…7=周日)和03:57的时间。如果这里的配置是对的,说明你的设置其实已经生效,只是Get-MpPreference没读取到最新缓存。

解决Get-MpPreference显示不一致的步骤

1. 重启Windows Defender服务强制刷新缓存

以管理员身份打开PowerShell,执行以下命令:

Restart-Service WinDefend -Force

重启完成后再运行Get-MpPreference,查看ScanScheduleDayScanScheduleTime是否显示为你设置的值。

2. 检查是否有组策略/MDM管控

如果重启服务后还是没变化,大概率是被集中管控覆盖了:

  • 组策略检查:打开gpedit.msc,导航到Computer Configuration > Administrative Templates > Windows Components > Windows Defender Antivirus > Scan
  • 查看指定每周扫描日指定每周扫描时间这两个策略是否被设置为“已启用”,如果是,本地的注册表修改会被忽略,需要联系管理员调整组策略,或者在允许的范围内修改。

为什么其他设置(如禁用实时监控)正常生效?

Set-MpPreference -DisableRealtimeMonitoring 1这类实时防护相关的设置,Windows Defender服务会立即监听注册表变更并应用,不需要重启服务或同步任务计划,所以你能在Windows安全应用里看到即时生效的结果,和扫描计划的加载逻辑不一样。

内容的提问来源于stack exchange,提问作者Samuel

火山引擎 最新活动