我如何才能知道“Windows 模块安装程序工作器”正在做什么?

我如何才能知道“Windows 模块安装程序工作器”正在做什么?

Windows Update 告诉我我已是最新版本,而且我并没有故意启动任何安装程序,但是“Windows 模块安装程序工作器”进程正在愉快地破坏我的磁盘 - 有没有日志,或者有什么方法可以找出它在做什么?

答案1

自 2015 年起需要按需生成可读的日志

运行 Get-WindowsUpdateLog cmdlet 时,会创建 WindowsUpdate.log 文件的副本作为静态日志文件。除非您再次运行 Get-WindowsUpdateLog,否则它不会更新为旧的 WindowsUpate.log。

基本上打开一个 powershell 并输入Get-WindowsUpdateLog。它会执行它的操作并最终打印类似

WindowsUpdate.log written to C:\Users\User\Desktop\WindowsUpdate.log

然后您就可以检查它。日志非常冗长,TiWorker 非常忙碌,例如,仅用于检查/安装您可能收到的 Windows Defender 定义更新略多于 1000 行的日志输出

经过更多的实验(使用一台使用硬盘的旧 PC,因此需要一段时间),“firehose”日志确实存在很大的局限性:如果启动了一项需要很长时间才能完成的旧任务,但在执行过程中没有打印任何内容,则很难在日志中找到 Windows 是否尝试执行较新的任务,但您会得到一些线索,表明新任务被推迟或出错。通常,这些任务会0x8007002在“控制面板”用户界面中被中止/推迟,令人生畏。

此外,如果还有其他(通常是非 MSFT)应用程序调用 TiWorker 进行服务,而不是 Windows 更新,据我所知,您将不会在该日志中获得任何信息。因此,似乎日志仅捕获了 TiWorker 所做工作的一小部分。显然您必须更改注册表(直接通过策略)以获取更多信息:

要自行启用 Windows Installer 日志记录,请使用 Regedit.exe 打开注册表,然后创建以下子项和项:

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer 类型:Reg_SZ 值:Logging 数据:voicewarmupx 值字段中的字母可以按任意顺序排列。每个字母打开不同的日志记录模式。对于 MSI 版本 1.1,每个字母的实际功能如下:

v - 详细输出 o - 磁盘空间不足消息 i - 状态消息 c - 初始 UI 参数 e - 所有错误消息 w - 非致命警告 a - 操作启动 r - 操作特定记录 m - 内存不足或致命退出信息 u - 用户请求 p - 终端属性 + - 附加到现有文件 ! - 将每行刷新到日志 x - 额外的调试信息。“x”标志仅在 Windows Server 2003 及更高版本的操作系统、MSI 可再发行版本 3.0 以及更高版本的 MSI 可再发行版本上可用。

" - 通配符:记录除 v 和 x 选项之外的所有信息。要包含 v 和 x 选项,请指定 "/lvx”。注意:此更改仅应用于故障排除,不应保留,因为它会对系统性能和磁盘空间产生不利影响。每次使用“控制面板”中的“添加或删除程序”项时,都会创建一个新的 Msi*.log 文件。要禁用日志记录,请删除“日志记录”注册表值。

使用组策略启用 Windows 安装程序日志记录 您可以通过编辑适当的 OU 或目录组策略来启用使用组策略的日志记录。在组策略下,展开计算机配置,展开管理模板,展开 Windows 组件,然后选择 Windows 安装程序。

双击“日志记录”,然后单击“启用”。在“日志记录”框中,输入要记录的选项。日志文件 Msi.log 出现在系统卷的 Temp 文件夹中。

虽然这些日志都是纯文本(MSI Office 喜欢在 中创建巨大的日志%windir%\temp),但wilogutl使它们更容易理解。(特别是这个工具对功能和组件状态有一个抽象/概述。)

对于 Windows 安装日志,MSFT 还提供了安装诊断作为替代(对新手更友好)解析器,他们说它实际上包含在 Win 10 2004(2020 年 4 月发布)中,但可以下载用于旧版本的 Win 10。不过,我无法在该版本的%SystemDrive%$Windows.~bt\SourcesVS Dev Eval VM 上找到他们指示的位置()。也许只有在安装失败时它才会出现。无论如何,它与安装一些 Defender 更新后等常规事情无关。

相关内容