You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows PE禁用网络后PowerShell执行WMI查询失败问题排查

WinPE禁用网络后WMI查询报内存错误的解决方法

问题背景

拥有包含指定组件的Windows PE镜像,原本可正常运行WMI查询与.NET应用;使用含<EnableNetwork>false</EnableNetwork>的unattend文件执行wpeinit -unattend后,PowerShell执行WMI查询出现「Invalid access to memory location」错误,无unattend文件时正常,添加组件包也无法解决,多WinPE版本可复现。

问题根源

直接设置<EnableNetwork>false会强制禁用WinPE中所有网络相关的服务、驱动及底层初始化逻辑,但WMI的核心服务(winmgmt)和部分WMI Provider依赖网络栈的基础内存分配组件——一刀切禁用网络会导致WMI运行时的内存初始化不完整,进而触发内存访问错误。

解决配置方案

方案1:精细禁用网络(推荐)

放弃使用<EnableNetwork>false,改用手动禁用网络适配器的方式,保留WMI所需的基础组件:

  1. 删除unattend文件中的<EnableNetwork>节点
  2. 在unattend的Microsoft-Windows-Shell-Setup → FirstLogonCommands中添加以下命令(二选一即可):
    • WMIC命令:
      wmic nic where "NetConnectionStatus=2" call Disable
      
    • PowerShell命令:
      Get-NetAdapter | Where-Object Status -eq 'Up' | Disable-NetAdapter -Confirm:$false
      

方案2:保留<EnableNetwork>false并补全WMI服务配置

如果必须使用<EnableNetwork>false,需在unattend文件中强制启用WMI核心服务:
在Microsoft-Windows-WinPE-Setup节点下添加服务启动配置:

<Services>
    <Service>
        <Name>winmgmt</Name>
        <Start>Auto</Start>
    </Service>
    <Service>
        <Name>wbemapsrv</Name>
        <Start>Auto</Start>
    </Service>
</Services>

同时确认WinPE镜像已包含WinPE-WMI.cab和WinPE-NetFX.cab组件(需保证这两个组件未被遗漏)

验证步骤

  1. 应用修改后的unattend文件,执行wpeinit -unattend
  2. 运行Get-Service winmgmt,wbemapsrv确认两个服务处于Running状态
  3. 执行原WMI查询,验证错误是否消失

内容的提问来源于stack exchange,提问作者arrowSpace

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 14:36:21