Azure Windows VM规模集添加自定义脚本扩展后自动更新禁用失效原因问询
问题根因
- Azure Windows 自定义脚本扩展(CS扩展)内置执行前预检查逻辑:扩展在Windows环境下运行前,会自动校验系统是否具备运行脚本所需的基础依赖(包括对应版本的PowerShell运行时、系统核心组件补丁),校验过程会主动将被禁用的Windows Update服务(wuauserv)启动类型修改为手动/触发模式,扩展执行完成后默认不会回滚该服务配置,这是扩展的原生设计逻辑。
- 你在规模集模型中配置的禁用自动更新属性,属于Azure资源层的控制逻辑,仅会阻止Azure平台侧主动向VM推送系统更新的调度任务,不会强制锁死Windows操作系统内部的服务配置状态。未添加CS扩展时,Packer自定义镜像中预置的服务禁用配置未被修改,因此运行符合预期;添加CS扩展后,扩展修改了系统内的服务启动规则,资源层配置无法覆盖系统内部变更,因此出现自动更新被触发的问题。
- 若你的自定义脚本本身包含依赖系统组件安装、业务软件部署逻辑,部分安装包也会主动调用Windows Update服务获取必要依赖,同样可能导致服务状态被重置。
可行适配方案
你当前规划的在自定义脚本末尾重新禁用Windows Update服务的方案是合理的,直接在脚本最后添加以下两行命令即可永久生效:
sc config wuauserv start= disabled net stop wuauserv
注意sc config命令中等号后必须保留1个空格,否则命令会执行失败。
内容的提问来源于stack exchange,提问作者Slime-uk
相关产品推荐
相关产品推荐

