Что означает ошибка 0x80070005 в Hyper-V
Ошибка 0x80070005 в контексте Hyper-V — это системный код ERROR_ACCESS_DENIED («Доступ запрещен»). Она возникает, когда гипервизор или служба Hyper-V не могут получить необходимые права на чтение, запись или выполнение операций с файлами, реестром или другими системными ресурсами.
Типичные сценарии появления:
- При создании новой виртуальной машины (ВМ) или виртуального жесткого диска (VHD/VHDX).
- При запуске существующей виртуальной машины.
- При экспорте/импорте ВМ.
- При конфигурации сетевых адаптеров виртуального коммутатора.
Полный текст ошибки может варьироваться, но ключевая фраза всегда указывает на проблему с правами доступа: Не удалось выполнить запрошенную операцию. Доступ запрещен.
Причины возникновения
Ошибка 0x80070005 имеет конкретные и проверяемые причины:
- Недостаточные права доступа (ACL) к папкам Hyper-V. Это самая частая причина. Учетная запись, под которой работает служба Hyper-V (
NT VIRTUAL MACHINE\Virtual MachinesилиSYSTEM), а также ваш текущий пользователь, не имеют полного контроля над папками:C:\ProgramData\Microsoft\Windows\Hyper-V(конфигурации ВМ)- Папка, куда вы сохраняете VHD/VHDX-файлы.
- Диск, на котором находятся эти файлы.
- Конфликт со сторонним антивирусным ПО или встроенным Защитником Windows. Антивирусы часто блокируют доступ гипервизора к низкоуровневым ресурсам процессора (VT-x/AMD-V) или файлам виртуальных машин, интерпретируя это как подозрительную активность.
- Жесткие настройки групповых политик (GPO) или реестра. Политики безопасности, особенно в корпоративных средах, могут явно запрещать запуск гипервизора или доступ к определенным типам памяти/дисков.
- Повреждение или устаревшие компоненты Hyper-V. Неполная установка обновлений Windows может привести к конфликту прав между компонентами.
- Шифрование диска (BitLocker). Если диск с файлами ВМ зашифрован BitLocker и не разблокирован автоматически до загрузки системы, Hyper-V не сможет прочитать его.
Способ 1: Настройка прав доступа (ACL) — основной метод
Это решение устраняет причину №1.
- Определите папку, которая вызывает проблему. Чаще всего это папка, которую вы указали при создании виртуального жесткого диска или виртуальной машины.
- Откройте свойства папки. Щелкните правой кнопкой мыши по папке → Свойства → вкладка Безопасность.
- Нажмите «Дополнительно». В верхней части окна найдите и нажмите кнопку «Дополнительно».
- Измените владельца (если нужно). Если в поле «Владелец» указана не
АдминистраторыилиSYSTEM, нажмите «Изменить». ВведитеАдминистраторыилиSYSTEM, нажмите «Проверить имена» → OK. Не забудьте поставить галочку «Заменить владельца подконтейнеров и объектов». - Добавьте необходимые учетные записи и дайте права:
- Нажмите «Добавить» → «Выбрать субъект».
- Введите
SYSTEM→ «Проверить имена» → OK. - В разделе «Базовые разрешения» установите «Полный доступ».
- Повторите для учетной записи:
NT VIRTUAL MACHINE\Virtual Machines(если есть) и для вашей личной учетной записи пользователя. - Для каждого добавленного субъекта также поставьте галочку «Заменять все записи разрешений дочерних объектов».
- Примените изменения. Нажмите OK во всех окнах. Система начнет рекурсивно применять права. Это может занять время, если файлов много.
⚠️ Важно: Если папка находится на другом разделе (не системном), убедитесь, что у этой файловой системы нет особых ограничений (например, она не смонтирована как
Read-only).
Проверка через командную строку (администратор)
Вы можете проверить текущие ACL, выполнив в PowerShell (администратор):
Get-Acl -Path "D:\HyperV\VMs" | Format-List
Чтобы массово дать права (замените D:\HyperV\VMs на ваш путь):
$path = "D:\HyperV\VMs"
$acl = Get-Acl $path
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("SYSTEM","FullControl", "ContainerInherit,ObjectInherit", "None", "Allow")
$acl.SetAccessRule($rule
$acl | Set-Acl -Path $path
Способ 2: Отключение конфликтующего ПО (антивирус, брандмауэр)
Это решение устраняет причину №2.
- Временно отключите защиту в реальном времени:
- Windows Defender: Зайдите в
Безопасность Windows→Защита от вирусов и угроз→Управление настройками→ выключитеЗащита в реальном времени. - Сторонний антивирус: Найдите его значок в трее, кликните правой кнопкой и выберите «Отключить» или «Приостановить защиту» на 15-30 минут.
- Windows Defender: Зайдите в
- Отключите брандмауэр Windows (временно): Откройте
Брандмауэр Защитника Windows→ «Включение и отключение брандмауэра Защитника Windows» → отключите его для частной и публичной сети. - Попробуйте снова выполнить действие (запустить ВМ, создать VHDX).
- Если ошибка исчезла, проблема в ПО безопасности. Настройте исключения:
- Добавьте папки Hyper-V (
C:\ProgramData\Microsoft\Windows\Hyper-Vи вашу рабочую папку) в исключения антивируса и Защитника. - Добавьте процессы
vmms.exe(служба управления Hyper-V) иvmwp.exe(процесс рабочей ВМ) в исключения. - В брандмауэре создайте правило, разрешающее входящие/исходящие подключения для этих процессов.
- Добавьте папки Hyper-V (
Способ 3: Проверка и корректировка групповых политик и реестра
Это решение устраняет причину №3. Особенно актуально для корпоративных компьютеров.
- Проверьте наличие ключа реестра, запрещающего Hyper-V. Нажмите
Win+R, введитеregedit, нажмите Enter. - Перейдите по пути:
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Hyper-V - Если такой ключ существует, проверьте параметры внутри него. Наиболее вероятный «виновник» — параметр DWORD
DisableHypervisor. Если его значение1, гипервизор отключен. Измените значение на0или удалите весь ключHyper-V. - Также проверьте путь для политик Hyper-V в
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization. - Перезагрузите компьютер после внесения изменений в реестр.
💡 Совет: Если компьютер в домене, политики могут перезаписываться с сервера. В этом случае обратитесь к системному администратору.
Способ 4: Восстановление компонентов Hyper-V и обновление системы
Это решение устраняет причину №4.
- Запустите проверку целостности системных файлов. Откройте PowerShell от имени администратора и выполните:
Дождитесь завершения.DISM.exe /Online /Cleanup-image /Restorehealth - Затем проверьте и восстановите защищенные системные файлы:
sfc /scannow - Установите последние накопительные обновления Windows. Перейдите в
Параметры Windows→Обновление и безопасность→Центр обновления Windows→Проверить наличие обновлений. Установите все критические и накопительные обновления. - Перезагрузите компьютер.
- Если проблема не ушла, попробуйте отключить и заново включить компонент Hyper-V:
Панель управления→Программы и компоненты→Включение или отключение компонентов Windows.- Снимите галочку с
Hyper-V→ перезагрузитесь. - После загрузки снова поставьте галочку и перезагрузитесь еще раз.
Профилактика
Чтобы избежать повторного возникновения ошибки 0x80070005:
- Всегда работайте с папками Hyper-V от имени администратора. При создании новой папки для ВМ сразу настраивайте права, как описано в Способе 1.
- Настройте корректные исключения в любом установленном антивирусе до начала работы с Hyper-V.
- Избегайте установки «тяжелых» системных оптимизаторов и очистителей реестра, которые могут случайно сбросить ACL.
- Регулярно обновляйте Windows и драйверы, особенно для чипсета и контроллера хранилища (SATA/AHCI/RAID).
- При использовании шифрования диска (BitLocker) убедитесь, что диск с файлами ВМ разблокируется автоматически при загрузке (ключ TPM или PIN в стартовой загрузке).