troubleshooting

HOWTO: 解决 Windows 运行态下 Capture OSImage 过慢问题

        当我们在 Windows 运行态下挂载一个 VHDX 文件,并希望将其捕获为一个 WIM 映像文件时可能会发生进度停滞的问题,此时如果打开任务管理器查看磁盘状态会看到磁盘处于读状态,大概每秒几十兆左右,而写入速度几乎为零,或只有几百字节或几兆字节,最高也就几十兆。

        查看保存 WIM 的目录发现该文件已经生成,但容量仍为零字节。使用资源监视器筛选 DISM 进程,可见正在处理任务,切换至磁盘活动选项卡,并未有实际的读写操作,如果此时按照读写频率进行排列时会发现进程 MsMpEng.exe 正在运行并产生了大量的读操作。说明 Windows Defender 正在后台扫描文件。

        据此,原因找到!如果要捕获的卷数据是可信赖的,尤其对于桌面标准化编制人员来说,挂载操作 WIM 文件是常见的工作,通常会将 WIM 文件做例外,但挂载 WIM 到目录后将遵循 Windows Defender 的扫描策略,此时可以考虑在合规安全按的前提下暂时关闭 Defender。

        但当准备临时关闭 Defender 时却发现实时保护无法关闭,且正受到“防篡改保护”(Tamper Protection),如下图所示。这通常是因为企业 IT 人员下发了安全策略。

image

        如果继续等待恐怕捕获映像的效率会大大降低,如果单独再搭建 Hyper-V 虚机环境来操作又太过繁琐,当然这是推荐的方案!但也可以考虑其他临时对策,虽然防篡改保护禁止关闭 Windows Defender 的实时保护功能,但安全策略可能未限制用户使用“排除项”,为此可打开“病毒和威胁防护”,找到“病毒和威胁防护设置”,点击“管理设置”,就可以看到“排除项”下的“添加或删除排除项”,然后添加要捕获的卷的盘符号即可,如:"E:\"。当完成映像捕获后,再删除该排除项即可。

image

troubleshooting

Windows 安全启动的最低服务需求

        当我们在对 Windows 故障进行排错时通常会使用系统内置的 msconfig 命令执行诊断启动,也就是我们常说的干净启动。在此启动模式下,仅会加载基本的设备和服务,通常可以确保系统能够正常启动进入桌面执行基本任务,便可针对系统缓慢、系统冻结等问题进行排错。

cleanboot

        如果诊断启动仍未让系统正常运行,我们还会通过高级启动选项,将系统引导启动至安全模式或带有网络连接的安全模式。自 Windows 10 开始要进入安装模式除了通过 shutdown -o,或者shift + 重启,或者通过 Windows 设置中恢复选项下提供的“高级启动”以外,还可以通过在设备加电启动后长按电源键执行两次强制关机来实现高级启动。这样我们便有机会在无法正常操作系统的前提下进入 Windows 安全模式。在某些极端的情况下,我们可能需要借助 Windows PE 加载脱机系统的注册表对服务进行修改,使其满足安全启动的需求,为此提供以下颇有历史的列表供大家参考:

1. 安全模式

•Cryptographic Services

•Event Log

•Help and Support

•Logical Disk Manager Administrative Service

•Net Logon

•Plug and Play

•Remote Procedure Call (RPC)

•Windows Management Instrumentation

2. 带有网络连接的安全模式

•AFD Networking Support Environment

•Computer Browser

•DHCP Client

•DNS Client

•Event Log

•Help and Support

•Logical Disk Manager

•NetBIOS Interface

•NetBios over Tcpip

•Net Logon

•Network Connections

•Plug and Play

•Remote Procedure Call (RPC)

•Server

•TCP/IP NetBIOS Helper

•TCP/IP Protocol Driver

•Terminal Services

•Windows Management Instrumentation

•Workstation

        对于现代操作系统 Windows 11,我们可以进入安全模式检索启动的服务,检索的工具可以是 Services.msc 服务管理器,当然也可以动用一些命令,会更容易生成所需的列表信息,或直接进行排错。

win11_safeboot_services

        使用 sc query type=service 便可在 cmd 环境下检索当前正在运行的服务,它们便是 Windows 当前版本在安全模式下所需的服务;如果使用driver类型,则会显示安全模式下活动的驱动。对于排错是不是很妙。

        如果希望将当前在运行的服务列表直观的显示出来并用于保存,恐怕用 PowerShell 是更方便的。如:

Get-Service | Where-object {$_.status -eq "running"}

win11_safeboot_services_ps

        末尾感叹一下,自带进入 Windows 10 时代,好像就很少几率在用到安全模式,因为系统已经变得非常稳定、安全!不是吗?!

troubleshooting
HOWTO: 解决 内核隔离的内存完整性已关闭 问题

        前段时间遇到了一个内核隔离中内存完整性功能被关闭的问题,如下图所示 Windows 安全中心报了一个警告查询后发现内存完整性被关闭,如下图所示:

Snipaste_2022-09-04_17-26-12

        可以点击“查看不兼容的驱动程序”来确认是哪个模块导致的内存完整性关闭,本例确认为 ftdibus.sys,发布名称为oem114.inf,找到该文件查询其数字签名发现该文件具有多个签名,其中 SZ DJI 这个让 gOxiA 回想起之前安装的某个软件,看来卸载程序后并没能从系统正确移除相关的驱动。

Snipaste_2022-09-04_17-26-48

        为了确保万无一失,检索了当前实例中安装的驱动发现除了ftdibus外还有多个驱动,从文件日期看确实比较久远,应该是未能满足系统的兼容性需求。

Snipaste_2022-09-04_17-32-08

        确认了需要移除的驱动后,便可以使用 DISM 的 remove-driver 参数卸载,这里不再复述。比较好奇的是这款陈旧的驱动为什么会有多个数字签名,并且还额外的搭上了 DJI 的,随即在网上搜索了一下了解到 FTDI 是一家从事 USB 技术的苏格兰半导体设备公司,主要开发将 RS-232 转换为 USB 信号的设备和电缆,所以 ftdibus 应该就是用于转换信号的驱动了,如果大家有在用 DJI 产品的不妨试试从官方下载对应系统版本的驱动来试试,网址为:https://ftdichip.com/drivers/

分页: 6/146 第一页 上页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]