HOWTO:禁用 Windows 10 更新
HOWTO: 禁用 Windows 更新
Windows as a Service 是大势所趋,满足了大多数用户的需求。在过去用户总是抱怨 Windows 更新周期过慢,现在 Windows 10 每半年就会推出一个功能更新,但也并不是所有的用户都感到满意,真是众口难调!之前抱怨 Windows 更新过慢的一些企业用户,反而现在又抱怨更新过快!gOxiA 倒认为,其实他们的抱怨不是因为更新过快,而是因为每半年一次的功能更新常会发生更新失败的问题,这就增加了 IT 维护成本。导致更新失败的原因确实很多,在企业中常见的是因为一些第三方安全软件导致的,所以 In-Place Upgrade 就极易失败。最终,IT 希望能禁用或推迟 Windows 10 的功能更新,但在实际操作中发现并不能彻底禁用功能更新补丁的推送,这主要是因为 Waas 策略导致的,要求客户端要获得持续的支持就必须更新到最新版本,所以在到达推迟更新的最后期限后 Windows 10 仍旧会接收功能更新。
有不少 IT 人员来咨询是否有什么方案能解决这一问题?!网上也提供了很多种禁用更新的方法,但多少都有些瑕疵,其实我们完全可以借助微软 GPO 来实现禁用功能更新的需求。
首先在企业内部部署 WSUS,使客户端接入到 WSUS 上接受企业的统一更新管理,这样企业 IT 可以利用 WSUS 的审批功能只允许每月的安全更新。
虽然 Windows 客户端连接到 WSUS 上接受管理,但仍旧可以从微软官方获取更新,这就导致功能更新最终会被推送到系统上,尤其是“微软 Windows 10 易升”这样的工具。
所以我们还需要阻断到微软更新服务器的连接,为此我们使用 GPO 来实现。在“计算机配置 /管理模板/Windows 组件/Windows 更新”中找到“不要连接任何 Windows 更新 Internet 位置”,将其设置为“已启用”。
gOxiA 专门写了一个脚本,可通过 Github 获取。
https://github.com/goxia/ITSM/blob/master/W10_DisableOSUpgrade.bat
Windows Defender Application Guard 快速体验
Windows Defender Application Guard 快速体验
为了阻止以前出现过的以及新涌现的攻击,微软为 Windows 10 v1709 新增了一个安全功能,利用独特的硬件隔离方法来化解来自互联网的攻击。这项安全功能称之为“Windows Defender Application Guard”(以下简称:WDAG),专为 Windows 10 和 Microsoft Edge 设计,WDAG可有效隔离用户或企业不受信任的站点,从而在浏览 Internet 时提供保护。应用的隔离容器技术基于Hyper-V,简单理解就是当用户触发访问不受信任的站点时,Microsoft Edge 将在 Hyper-V 的隔离容器中打开这些网站,这样就可以将网站与主机操作系统隔离开来,使主机系统得到保护,有效阻止攻击者。
在 Windows 10 v1709 版时,要启用 WDAG 需要企业版,但自 Windows 10 v1803 开始专业版(Pro)也可直接开启 WDAG,但一些管理、数据和打印支持特性仍需要企业版。
要安装和启用 WDAG 只需要通过 Windows 程序和功能 添加即可,如下图所示。当然我们也可以通过 PowerShell 命令行安装。
虽然 WDAG 基于 Hyper-V,但是在安装“Windows Defender 应用程序防护”时,并不需要事先安装和配置 Hyper-V Role,而且与其也并不冲突,但是如果你要在虚拟机中体验 WDAG 是不受支持的。
要使用 WDAG 只需要运行 Microsoft Edge,在菜单中点击“New Application Guard window”(新应用程序窗口,PS:由于当时测试使用的是英文系统,所以截图为英文界面。)即可启动。
在首次启动 WDAG 时会进行初始化,gOxiA 使用的是固态硬盘,所以并没有等待太久,初始化完毕后会打开一个新的 Microsoft Edge,其窗口边缘为醒目的橙色,且左上角也有醒目的“Application Guard”图标,便于用户识别。
前面已经讲过,WDAG采用了隔离技术,默认配置下是不能在 WDAG 和主机系统间交互数据的,而且在 WDAG 中下载的一些资源也无法执行,但是就目前测试看处理流程上还有待完善,例如 gOxiA 在 WDAG 中点击了一个 PDF 链接并打开,是可以在 WDAG 中阅读这个 PDF 文件的,但是如果关闭后从下载列表中再次打开时则会被拒绝,当然也无法通过右键点击复制,将其从 WDAG 环境下复制到主机系统。
另一个有意思的发现是 WDAG 呈现出来的 Edge 是基于 RDP 的,可以在任务管理器中看到这个进程“hvsirdpclient.exe”,那么 WDAG 应该还用到了 RemoteApp。继续深挖,当然是想看看 WDAG 的系统环境,因为在主机系统环境下还能看到“vmmem”这个进程,占用了 1GB 的内存,它应该就是 WDAG 实例。
要想一探 WDAG 实例环境,只能从当前打开的 WDAG Microsoft Edge 入手,如下图所示 gOxiA 成功打开了 WDAG 的资源管理器,WDAG 的磁盘大小约40GB,查看占用的容量显示为 2.34GB(PS:有意思,占用了这么少的空间,怪不得启动速度有所保障。),但是其系统盘根目录下有个名为WDAG的子目录,存放这一个目录重定向文件,占用了4GB左右,而这个文件貌似是直接映射的 WDAG 主机系统下的目录文件,从命名看应该是供用户读写的区域。
之所以会有前面的说法,是因为通过对进程的监视发现 WDAG 这个虚拟机相关的资源文件相当复杂,除了常见的虚机 VHDX 外,还在其基础上生成了多个差异磁盘,而这些虚拟磁盘文件都只有几百兆的容量,要想单独拷贝出来 Mount 查看其内部结构或加载到 Hyper-V 跑一跑是不可能的。而且 WDAG 的资源目录中还有一个名为 Base 的目录,包含了完整的 Windows 目录结构,而这个目录应该就是前面提到的目录重定向的源文件。
有兴趣的朋友可以在深入挖掘,貌似微软针对 WDAG 的安全性问题还有奖励活动。最后概览一下 WDAG 这个系统环境,当前版本是 10.0.17134 即 1803 版 Windows 10,而且是个专业版,但这个专业版貌似又运行在 S Mode 下,因为无法在 WDAG 下执行传统 EXE 程序,当然 UWP 应用也被禁用了(PS:也许还应用了 AppLocker 技术进行了限制)。此外,要想在 WDAG 与主机环境交换数据或应用打印,是需要企业版支持的,且需要配合组策略(GPO)进行配置,此外通过组策略还可以为企业提供 WDAG 的统一管理特性,如果您所在的企业对 WDAG 感兴趣可联系 gOxiA 获得咨询服务。
小贴士:
- 重置容器环境,并放弃用户在WDAG中生成的所有数据
C:\Windows\System32\wdagtool.exe cleanup RESET_PERSISTENCE_LAYER
Part3 - 使用 Windows FFU 映像部署 Windows 10
Part3 - 使用 Windows FFU 映像部署 Windows 10
在学习和了解 “Part1 - Windows FFU 映像格式概览”和“Part2 - 使用 Windows FFU 映像部署的准备工作”后,今天我们就要进入 FFU 部署的正题,首先启动 PE 引导要捕获的 Windows PC,执行如下命令行对 Windows 所在硬盘进行 FFU 映像的捕获。
上面这条命令行的重点是 /capture-ffu,即使用 FFU 进行捕获的重要参数;/imagefile 则指定 ffu 格式映像存储的路径;/capturedrive 是指定要捕获的硬盘,其中 \\.\physicaldrive0 表示硬盘 0,如果你的固态硬盘是 mSATA 接口,且本机还有机械硬盘,那么 SSD 的标识号可能是 1,当然为了准确定位硬盘号,最好是通过命令行获取“wmic diskdrive list brief”。
捕获到的 oem.ffu 文件较大,有近 14GB。虽然在前文中提到 FFU 不支持压缩和分卷存储,但实践中还是能通过 /split-image 进行分卷存储的,具体参考如下:
执行上面的命令后,会基于原有的 oem.ffu 重新生成名为 winoem*.sfu 的多个文件,大小为 3500MB,这样我们就能方便的将其存储在 FAT32 格式的 UFlash 中。
至此 FFU 映像我们已经捕获完毕,接下来就可以部署到新 PC 上,这里 gOxiA 使用 Hyper-V 准备了一台虚拟机,分配了一个 256GB 容量的磁盘,使用 PE 引导执行如下命令行。
如果是分卷存储的 FFU,则可以参考如下命令行:
FFU 释放后,会发现当前硬盘的分区和系统数据都已部署完毕,重新启动会执行 UEFI 初始化,之后就能正常启动 Windows 10 系统。
基于 FFU 映像格式的 Windows 部署,非常适合工厂部署的应用场景,因为无需再考虑磁盘分区准备的环节;由于 FFU 是基于扇区的,所以部署的效率会比 WIM 更高一些。对于一些需要大批量交付全新 Windows PC 的企业用户,其实也可以考虑采用 FFU 方式。