Как остановить зависшую виртуальную машину на Hyper-V | Windows для системных администраторов

Как остановить зависшую виртуальную машину на Hyper-V

В том случае, если ваша виртуальная машина, запущенная на Hyper-V по каким-то причинам зависла, перестала отвечать, и не реагирует на кнопки включения/выключения/перезагрузки  виртуальной машины в консоли Hyper-V, единственный быстрый способ принудительно остановить такую машину —  «пристрелить» процесс на хостовой ОС, отвечающий за данную ВМ. Покажем как это сделать на Hyper-V, работающем на Windows Server 2016.

Итак, предположим, что одна из ВМ на Hyper-V зависла, гостевая ОС перестала отвечать, а кнопки  «Turn Off», «Shut Down» и  «Reset» в консоли Hyper-V Manager стали недоступны либо при нажатии возвращают ошибку:

Failed to change state

The operation cannot be performed while the object is in its current state

The operation cannot be performed while the object is in its current state Чтобы принудительно остановить / перезапустить такую ВМ без перезагруки всего хостового сервера, нужно завершить процесс этой ВМ. Для этого нужно узнать GUID виртуальной машины.

Определить GUID ВМ, можно открыв в консоли управления Hyper-V Manager настройки сервера (Hyper-V Settings). В разделе Server указано местоположение конфигурационных файлов ВМ (в нашем примере D:\VMStore). Настройки hyper v manager

Перейдите в данный каталог и найдите  каталог с именем вашей виртуальной машины. Нам требуется запомнить GUID, который указан в имени конфигурационных файлов ВМ.

hyper-v  guid виртуальной машиныТеперь нужно запустить диспетчер задач (Task Manager) и переключится на вкладку Details. Все виртуальные машины запускаются в рамках собственного экземпляра процесса vmwp.exe. Чтобы определить какой процесс за какую ВМ отвечает, нам нужен полученный ранее GUID зависшей ВМ. Найдите процесс vmwp.exe, в столбце User name которого указан полученный GUID. Завершите данный процесс (End Task).

Завершить процесс зависшей вирулаьной машины Hyper-V
Виртуальная машина будет остановлена. Теперь вы сможете делать с ней все что угодно.
Но! Гораздо проще найти и завершить процесс зависшей виртуальной машины с помощью PowerShell. В это случае нам понадобится только ее имя.

Получим GUID для ВМ с именем SVM-GUARDEDHOST1:

$VMGUID = (Get-VM "SVM-GUARDEDHOST1").ID

Найдём идентификатор процесса ‘vmwp.exe’  для данного VMGUID:

$VMWMProc = (Get-WmiObject Win32_Process | ? {$_.Name -match 'VMWP' -and $_.CommandLine -match $VMGUID})

И с помощью Stop-Process принудительно завершим этот процесс:

Stop-Process ($VMWMProc.ProcessId) –Force

powershell остановить зависшую ВМ

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

Совет. У нас также описана аналогичная процедура  по завершению процесса зависшей ВМ на хосте VMWare ESXi.
Еще записи по теме: Windows Server 2016
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

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

Я не робот( Обязательно отметьте)



MAXCACHE: 0.24MB/0.00102 sec