本文提供了一个全面的指南,用于诊断和解决与 Windows Server 和 Windows 客户端环境中Microsoft Hyper-V 相关的常见安装、配置和作问题。 在功能安装、虚拟机(VM)管理、群集创建、网络或服务启动期间,可能会出现 Hyper-V 问题,这通常影响任务关键型工作负荷和高可用性配置。 快速识别和解决这些问题对于保持业务连续性、VM 运行时间和群集稳定性至关重要。
可能会遇到以下一个或多个问题:
- 安装和配置失败
- 群集和实时迁移问题
- VM作和 Hyper-V 管理器问题
- 网络和存储问题
- 其他技术和安全症状
安装和配置失败
- 错误消息:
在指定服务器上添加或删除功能的请求失败。 - > Hyper-V 功能未知。
- CBS(Component-Based 服务)日志:“ERROR_SXS_ASSEMBLY_MISSING”。
- 安装或服务器重启后,Hyper-V 角色不可见。
- 与 Windows Management Instrumentation (WMI) 相关的错误:
错误 CSI 000000b5 (F) 记录 (联机安装) $(运行时)。System32)\WindowsVirtualization.V2.mof [gle=0x80004005]。 - > 错误 CSI 000000b6 (F) CMIADAPTER:找不到内部错误消息(0x1002):0X80041002类、实例或属性CIM_RegisteredProfile。
- MSinfo32 无法打开;WMI 查询失败。
群集和实时迁移问题
- 错误消息:
无法在主机名>上<访问远程注册表。 确保远程注册表服务正在运行,并启用远程管理。 - > 虚拟机无法实时迁移到目标主机,因为目标计算机上的硬件不兼容... - > 无法识别提供给包的凭据(0x8009030D)。
- 群集验证失败或异常缓慢。
- 群集共享卷显示为 RAW,或者无法从非聚集节点访问。
VM作和 Hyper-V 管理器问题
- VM 无法启动错误消息:
由于内存不足,虚拟机无法启动。
- VM 停滞在“已保存状态”或无法在主机升级/重新启动后启动。
- 虚拟机管理服务(VMMS)无法启动。
- 错误消息:
Hyper-V 尝试访问计算机上的对象时出错。
- Hyper-V 管理器无法连接时出现错误消息:
WinRM 客户端无法处理请求...
- 增强会话模式在审核模式下不可用。
网络和存储问题
- Hyper-V 安装后禁用网络适配器;未分配 IP 地址,或者未选中 IPv4。
- VM 无法获取 IP 地址或与网络通信。
- Hyper-V 虚拟交换机停滞在“身份不明”状态。
- VLAN 标记问题 - 仅本机 VLAN 有效。
其他技术和安全症状
- 重新启动后,意外的 VM MAC 地址发生更改或冲突。
- 端口预留冲突(例如传输控制协议(TCP)端口 50000–50059)阻止应用程序在启用 Hyper-V 后使用。
- 频繁的服务主体名称(SPN)注册失败:来自 Microsoft-Windows-Hyper-V-VMMS 的事件 ID 14050。
- WMI 存储库损坏,无法安装或使用 Hyper-V 功能。
根本原因因症状类别而异:
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 如果您错误地修改注册表,可能会出现严重问题。 因此,请确保仔细执行这些步骤。 出于防范目的,请在修改之前备份注册表,以便在出现问题时还原注册表。 有关如何备份和恢复注册表的更多信息,请参见如何在 Windows 中备份和恢复注册表。
原因 1:安装和功能启用问题
- CBS 包缺失或损坏:在 CBS 日志中记录为“ERROR_SXS_ASSEMBLY_MISSING”。 与 CBS 包相关的注册表权限可能不正确或不完整。
- 不支持的作系统(OS)版本或硬件:Hyper-V 在 Windows 家庭版或不支持的 CPU 上不可用。 不兼容的硬件也可能导致启动失败。
- 损坏的 WMI 存储库:WMI 子系统错误会中断功能安装和系统信息检索。
- BIOS/UEFI 配置错误:BIOS/UEFI 设置中未启用虚拟化功能。
决议
-
修复 CBS 包和注册表问题:
-
向所有用户授予对以下注册表项的完全控制权限:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages -
运行 PowerShell 脚本以重置包状态:
$name = "CurrentState" $check = (get-childitem -Path HKLM:\software\microsoft\windows\currentversion\component based servicing\packages -Recurse).Name foreach ($check1 in $check) { if ((Get-ItemProperty -Path $check1).$name -eq 0x50 -or (Get-ItemProperty -Path $check1).$name -eq 0x40) { Set-ItemProperty -Path $check1 -Name $name -Value 0 } } -
使用部署映像服务和管理启用 Hyper-V 功能(DISM):
Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /All Dism /online /enable-feature /featurename:Microsoft-Hyper-V-Management-Clients Dism /online /enable-feature /featurename:Microsoft-Hyper-V-Management-PowerShell -
确保使用的是受支持的 OS 版本,例如 Windows 专业版、企业版或教育版。
-
-
修复 WMI 存储库:
-
以管理员身份打开命令提示符并运行:
winmgmt /resetrepository winmgmt /verifyrepository winmgmt /salvagerepository cd %windir%\system32\wbem for /f %s in ('dir /b \*.mof') do mofcomp %s for /f %s in ('dir /b \*.mfl') do mofcomp %s
-
-
更新 BIOS/UEFI 配置:
- 在 BIOS/UEFI 设置中启用 Intel VT-x 或 AMD-V 功能。
- 对于受信任的平台模块 (TPM) 支持,请确保配置所有必需的选项。
原因 2:群集和 VM 迁移失败
- 加密或 TLS/SSL 缺少注册表项:缺少密钥,例如
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002阻止身份验证和安全连接。 - 处理器或硬件不兼容:如果 VM 状态依赖于目标主机上不可用的 CPU 功能,实时迁移将失败。
- Kerberos 或委派配置错误:Active Directory 中缺少 Kerberos 身份验证或约束委派可防止实时迁移。
- 群集数据库损坏:第三方软件升级或中断期间出错可能会损坏群集数据库。
决议
-
还原加密配置:
-
从工作服务器导出缺少的注册表项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Cryptography\Configuration\Local\SSL\00010002 -
将密钥导入受影响的服务器并重新启动。
-
-
为实时迁移启用 Kerberos 和委派:
- 在 Hyper-V 管理器中,转到 “设置>实时迁移>高级功能 ”,然后选择“ 使用 Kerberos”。
- 通过为合作伙伴主机添加通用 Internet 文件系统(CIFS)和Microsoft虚拟系统迁移服务,在 Active Directory 中配置委派。
-
地址 CPU 兼容性:
- 执行快速迁移,使 VM 状态与新主机保持一致。
- 跨群集节点验证 CPU 功能。
原因 3:VM作、网络和存储
- 禁用或配置错误的网络适配器属性:IPv4 可能未选中或虚拟交换机配置不当。
- VLAN 或网络接口卡(NIC)组合设置不当:VLAN 标记可能误用或与物理交换机配置不一致。
- 磁盘或存储损坏:损坏或硬件故障会导致 VM 不可访问。
- 端口预留冲突:Hyper-V 保留可能与应用程序要求冲突的高 TCP 端口。
决议
-
重新启用网络适配器:
-
在设备管理器中,在受影响的网络适配器上启用 IPv4。
-
使用 PowerShell:
Enable-NetAdapter -Name "<adaptername>" Enable-NetAdapterBinding -Name "<adaptername>" -ComponentID ms_tcpip
-
-
修复虚拟交换机或 VLAN 标记问题:
使用 PowerShell 修改虚拟交换机:
New-VMSwitch -Name "SET" -NetAdapterName "<adaptername>" -EnableEmbeddedTeaming $true Set-VMNetworkAdapterVlan -VMName "<vmname>" -Access -VlanId <vlan_id> -
解决磁盘问题:
用于
DiskPart清除只读属性:diskpart list disk select disk <disk number> attributes disk clear readonly -
解决端口预留冲突:
在启用 Hyper-V 之前保留应用程序所需的端口:
netsh int ipv4 delete excludedportrange protocol=tcp <startport> <numberofports>
原因 4:权限、安全性和系统服务
- 文件或文件夹权限不正确:Hyper-V 或“NT VIRTUAL MACHINE\Virtual Machines”的权限不足可能会阻止对 VM 文件夹的访问。
- 服务帐户删除:删除 SQL Server 或 System Center Virtual Machine Manager (SCVMM) 帐户可能会阻止服务启动。
- SPN 注册失败:丢失或配置错误的 SPN 会中断 Kerberos 身份验证。
决议
-
正确的文件和文件夹权限:
确保 VM 文件夹和 VHD 上的“管理员”、“Hyper-V 管理员”和“NT VIRTUAL MACHINE\Virtual Machines”的完全访问权限。
-
还原服务帐户:
如果删除了服务帐户,请将新所有者分配给数据库并重启关联的服务。
-
修复 SPN 注册失败:
查看群集配置设置,并确保注册所有必需的 SPN。
原因 5:已知 bug 和产品缺陷
- 万维网名称(WWPN)生成器 bug:注册表值超出范围会导致 VMMS 服务失败。
- MsMpEng.exe 或 NTFS 死锁 bug:Defender Microsoft 中的 bug 会导致具有 NTFS 事务元数据的死锁。
- 群集创建和密钥管理服务(KMS)激活缺陷:内部产品 bug 可能会影响群集作和许可证激活。
决议
-
WWPN 生成器 bug:
NextWWPN编辑注册表值,使其与定义的范围保持一致,并重启 Hyper-V/VMMS 服务。 -
群集创建和 KMS 激活缺陷:
将未解决的问题升级为 Microsoft支持 部门提供日志和配置详细信息。