执行gpupdate /force后PowerShell修改的组策略注册表值被还原如何解决
问题核心原因
你直接修改HKLM:\SOFTWARE\Policies路径下的注册表项会被gpupdate还原,是因为该路径下的所有注册表值的数据源是本地/域组策略配置,每次执行gpupdate时,系统都会读取组策略的配置项覆盖该路径下的注册表值,和你加不加-Force参数没有关系。
解决方案
方案1:通过本地组策略编辑器修改(适配有图形界面的专业版/企业版系统)
- 按下Win+R输入
gpedit.msc回车打开本地组策略编辑器 - 定位到路径:计算机配置 > 管理模板 > 系统 > Device Guard
- 找到「部署代码完整性策略」选项,双击打开后设置为「未配置」或者「已禁用」,确定保存
- 执行
gpupdate /force即可生效,不会再出现配置还原的问题
方案2:通过PowerShell脚本修改组策略配置源(适配自动化部署场景)
仅适用于安装了组策略PowerShell模块的专业版/企业版系统,执行前需要以管理员权限启动PowerShell
- 执行命令修改对应组策略关联的注册表值:
Set-GPRegistryValue -Name "Local Group Policy" -Key "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard" -ValueName DeployConfigCIPolicy -Type DWord -Value 0 Set-GPRegistryValue -Name "Local Group Policy" -Key "HKLM\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard" -ValueName ConfigCIPolicyFilePath -Type String -Value ""
- 执行
gpupdate /force完成配置更新
方案3:家庭版系统/不需要保留现有本地组策略配置的场景
- 以管理员权限启动PowerShell,依次执行以下命令:
# 停止组策略服务 net stop gpsvc /y # 删除本地组策略缓存配置 Remove-Item -Path C:\Windows\System32\GroupPolicy\* -Recurse -Force # 修改目标注册表值 Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard -Name DeployConfigCIPolicy -Value 0 Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\DeviceGuard -Name ConfigCIPolicyFilePath -Value "" # 重启组策略服务 net start gpsvc # 执行策略更新 gpupdate /force
特殊场景说明
如果你的设备已加入Active Directory域,优先检查是否存在域下发的组策略覆盖了本地配置,如果是域策略管控的该配置项,需要联系域管理员调整域侧组策略规则,本地修改无法生效。
内容的提问来源于stack exchange,提问作者marcosagni98
相关产品推荐
相关产品推荐

