常规

常规

如何连接 Hyper-V 虚拟机的桌面

如果你在服务器上安装了 Hyper-V 虚拟机,那么你可以使用 MultiDesk 来访问虚拟机的桌面。
使用的协议是 RDP over VMBus (Hyper-V)
步骤如下:

1. 在 Hyper-V 宿主机找到虚机的 ID

使用管理员权限运行 PowerShell. 输入命令 get-vm | ft name,id

PS C:\Windows\system32> get-vm | ft name,id

Name            Id
----            --
DockerDesktopVM 8a69c6db-adfa-427b-8e55-f005f08a8594
win10-2021      6dbd1b88-96d1-4a23-88c3-df9d478cd614

2. 增加服务器

  1. 在服务器中填写服务器的地址,而不是虚拟机的 IP 或者域名。
  2. 勾选 '连接虚机'
  3. 如果虚机是 Linux, 不要勾选 '增强模式'.
    勾选 '增强模式',可以在虚机中使用本地的以下资源:
    • 显示设置
    • 音频
    • 打印机
    • 使用剪贴板复制和粘贴
    • 智能卡
    • USB 设备
    • 硬盘
    • 即插即用设备
  4. 输入虚机的 ID, 比如 DockerDesktopVM 的 ID 8a69c6db-adfa-427b-8e55-f005f08a8594
  5. 用户名和密码也是服务器的用户名和密码,不是虚拟机的用户名和密码。
  6. 端口必须是2179。不是 3389。

3. 连接

连接成功后,将显示虚拟机的控制台:

故障解决

如果连接失败,可能是和 CredSSP 策略有关。宿主机无法认证远程用户。

在 PowerShell 中运行以下命令开启策略:

New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowDefaultCredentials -Name Hyper-V -PropertyType String -Value "Microsoft Virtual Console Service/*" -Force
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowDefaultCredentialsDomain -Name Hyper-V -PropertyType String -Value "Microsoft Virtual Console Service/*" -Force
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowFreshCredentials -Name Hyper-V -PropertyType String -Value "Microsoft Virtual Console Service/*" -Force
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowFreshCredentialsDomain -Name Hyper-V -PropertyType String -Value "Microsoft Virtual Console Service/*" -Force
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowFreshCredentialsWhenNTLMOnly -Name Hyper-V -PropertyType String -Value "Microsoft Virtual Console Service/*" -Force
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowFreshCredentialsWhenNTLMOnlyDomain -Name Hyper-V -PropertyType String -Value "Microsoft Virtual Console Service/*" -Force
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowSavedCredentials -Name Hyper-V -PropertyType String -Value "Microsoft Virtual Console Service/*" -Force
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowSavedCredentialsDomain -Name Hyper-V -PropertyType String -Value "Microsoft Virtual Console Service/*" -Force
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\Credssp\PolicyDefaults\AllowSavedCredentialsWhenNTLMOnly -Name Hyper-V -PropertyType String -Value "Microsoft Virtual Console Service/*" -Force

更多信息,参考 微软原始文档


© 2023 - Syvik