核心是离线识别硬件id、准备厂商专用驱动包、用pnputil强制注入inf并绑定设备;需启用测试签名、重启安装、验证状态并保留回滚备份。
在无外网环境下用 powershell 更新 windows server 网卡驱动,核心不是“在线搜索安装”,而是“离线识别 + 离线注入 + 强制安装”。整个过程不依赖 windows update 服务,也不需要联网下载,关键靠硬件 id 定位、驱动包准备和 inf 手动注册。
第一步:离线获取网卡真实硬件标识
没网络也能查清设备型号。以管理员身份运行 PowerShell,执行:
Get-PnpDevice -Class Net | Where-Object {$_.Status -ne "OK"} | Select-Object Name,InstanceId,Status
# 或更精准地导出全部网络类设备的 PnP ID
Get-PnpDevice -Class Net | ForEach-Object {
$dev = $_
$hwid = (Get-PnpDeviceProperty -InstanceId $dev.InstanceId -KeyName "DEVPKEY_Device_HardwareIds").Data
[PSCustomObject]@{Name=$dev.Name; InstanceId=$dev.InstanceId; HardwareIds=$hwid}
}重点关注输出中的 HardwareIds 字段,例如:PCI\VEN_8086&DEV_15B7&SUBSYS_00000000&REV_01。其中 VEN_8086 是 Intel 厂商码,DEV_15B7 是设备码——这就是驱动匹配的唯一依据。
第二步:提前准备好对应驱动离线包
驱动不能靠系统自动下载,必须人工准备:
- 去网卡厂商官网(Intel/Broadcom/Mellanox)下载适用于 Windows Server 2019/2022 的最新 离线驱动包(通常为 .zip 或 .exe 自解压格式);
- 解压后确认包内含 .inf 文件(如 e1d63x64.inf)、配套的 .sys 和 .cat 文件;
- 特别注意:Server 2019 对新型网卡(如 Intel X722、BCM57416、ConnectX-6 Dx)原生不支持,必须用厂商提供的专用驱动包,不能依赖系统内置 INF。
第三步:用 PowerShell 强制安装 INF 驱动
进入驱动解压目录,以管理员身份运行 PowerShell,执行:
# 1. 启用测试签名(若驱动未 WHQL 签名)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\CI\Policy" -Name "StatusCode" -Value 0 -Force
bcdedit /set testsigning on
shutdown /r /t 0
<h1>2. 重启后,执行安装(替换为你实际的 INF 文件名)</h1><p>$infPath = ".\e1d63x64.inf"
pnputil /add-driver $infPath /install</p><h1>3. 若需绑定到具体设备(尤其当设备显示为“未知”时)</h1><p>$hwid = "PCI\VEN_8086&DEV_15B7&SUBSYS_00000000&REV_01"
$driverName = (pnputil /enum-drivers | Select-String "$infPath" -Context 0,2).ToString().Split("`n")[0].Trim()
pnputil /install-driver $infPath /subsystem $hwid</p>成功后,设备管理器中黄色感叹号应消失,状态变为“此设备运转正常”。
第四步:验证与回退机制
安装不是终点,要确保稳定可用:
- 运行
Get-NetAdapter查看网卡是否列出且状态为 “Up”; - 用
Get-NetAdapterBinding -Name "*" | Where-Object { $_.ComponentID -eq "ms_tcpip6" }检查 IPv6 是否启用(某些驱动默认禁用); - 保留旧驱动备份:安装前先导出当前驱动信息
pnputil /enum-drivers > drivers-before.txt,出问题可快速回滚pnputil /delete-driver oemX.inf /uninstall。











