Доступ к консоли виртуальной машины Hyper-V с помощью RDCMan

Remote Desktop Connection Manager (RDCMan) – это официальная утилита Microsoft для удобного подключения ко множеству серверов по протоколу RDP (утилита предназначена заменить устаревшую оснастку Remote Desktops), позволяющая существенно упростить жизнь системному администратору. В RDCMan 2.7 появилась довольно интересная функция – возможность прямого подключения к консоли любой виртуальной машины, запущенной на гипервизоре Hyper-V, с помощью VMConnect. Соединение устанавливается в режиме Enhanced Session Mode, который использует для подключения шину VMBus (логический канал связи между хостом Hyper-V и виртуальными машинами).

Чтобы подключится к конкретной виртуальной машине, необходимо получить ее идентификатор (VM ID). С помощью PowerShell идентификатор конкретной ВМ можно получить так:

Get-VM -Name lon-dc01 | select ID

получить ID виртуальной машины

После того, как вы узнали идентификатор виртуальной машины, откройте RDCMan и добавьте новый сервер. В свойствах сервера проверьте, что включена опция «VM console connect». Затем в поле Server name укажите имя Hyper-V сервера, на котором запущена виртуальная машина. В поле id укажите ее идентификатор, полученный на предыдущем шаге, и сохраните настройки.

RDCMan подключение к консоли ВМ

Чтобы подключиться к виртуальной машине, вам нужно указать учетную запись пользователя с правами администратора Hyper-V.

Совет. Даже если ваша учетка состоит в локальной группе администраторов, ее нужно непосредственно включить в группу Hyper-V Administrators.

группа Hyper-V Administrators

Теперь вы можете подключиться к консоли виртуальной машины, запущенной на Hyper-V, точно также, как вы подключаетесь к обычному серверу Windows. Важно отметить, что виртуальная машина, к которой осуществляется подключение, может находиться во внутренней изолированной Hyper-V сети, у нее в принципе может не быть сетевого адаптера, и подключение не зависит от того, разрешен ли к ней RDP доступ или нет.

Совет. На сервере Hyper-V должен разрешен доступ к порту TCP 2179.

New-NetFirewallRule -Name "Hyper-V REMOTE_DESKTOP_TCP_IN " -DisplayName "Hyper-V REMOTE_DESKTOP_TCP_IN Port 2179" -Description Inbound rule for Hyper-V to allow remote connection to the virtual machines over Network port TCP 2179. VMMS.exe listens traffic over network port 2179" -Group "Hyper-V" -Direction Inbound -Protocol TCP -LocalPort 2179 -Action Allow -Profile Public

подключение к консоли ВМ

В том случае, если вы хотите разрешить подключаться к консоли ВМ определенному пользователю (не являющемуся администратором), необходимо предоставить ему разрешения следующим образом:

Grant-VMConnectAccess -ComputerName hyper-srv-01 -VMName lon-srv-01 -UserName contoso\iaivanov2

В том случае, если при подключении к ВМ появляется ошибка «Unknown disconnection reason 3848», необходимо настроить ряд разрешений. Дело в том, что политика CredSSS (Credential Security Service Provider) на хосте Hyper-V по умолчанию не позволяет аутентифицировать удаленных пользователей.

Unknown disconnection reason 3848

Запустите консоль PowerShell с правами администратора и выполните следующие команды:

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\AllowDefaultCredentials -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
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\AllowFreshCredentialsWhenNTLMOnly -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
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

Теперь попробуйте снова подключиться. Подключение должно успешно установится.

Таким образом, с помощью RDCMan, вы можете удаленно подключаться к консоли любой виртуальной машины, работающей на хосте Hyper-V, независимо от гостевой ОС, будь то Window, Linux, MacOs или что-то еще.

Опубликовано в Hyper-V

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *