Отказано в доступе при попытке включить Hyper-V с помощью команды Powershell с последовательной консолью на виртуальной машине Windows Server 2019 (Azure)

#azure #powershell #azure-powershell #windows-server-2019 #azure-vm

#azure #powershell #azure-powershell #windows-server-2019 #azure-vm

Вопрос:

Я создал виртуальную машину с изображением центра обработки данных Windows Server 2019 в Azure. Из-за политики компании нам не разрешается иметь общедоступный IP-адрес и порт. Единственный способ получить доступ к виртуальной машине — использовать последовательную консоль.

Я смог запустить PowerShell в последовательной консоли. Однако у меня возникла проблема с доступом.

Ошибка:

 PS C:windowssystem32> Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
Enable-WindowsOptionalFeature : Win32 internal error "Access is denied" 0x5
occurred while reading the console output buffer. Contact Microsoft Customer
Support Services.
At line:1 char:1
  Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      CategoryInfo          : ReadError: (:) [Enable-WindowsOptionalFeature],
   HostException
      FullyQualifiedErrorId : ReadConsoleOutput,Microsoft.Dism.Commands.Enable
   WindowsOptionalFeatureCommand
  

Я попытался поднять запрос Powershell, но безуспешно. Созданная мной учетная запись должна иметь доступ администратора. Интересно, есть ли какой-нибудь способ заставить это работать. Заранее спасибо.

Ответ №1:

Я полагаю, что существует некоторое ограничение на образ центра обработки данных Server 2019, потому что я также получаю ту же ошибку, но она работала на центре обработки данных Server 2016, см. это.

введите описание изображения здесь

В качестве обходного пути, если виртуальной машине Azure не назначен общедоступный IP-адрес, я предлагаю запускать сценарии PowerShell в виртуальной машине Azure с помощью команды запуска. Функция использует агент виртуальной машины (VM) для запуска сценариев PowerShell в виртуальной машине Azure Windows. Для получения дополнительной информации о выполнении сценариев на вашей виртуальной машине Windows вы можете обратиться к этому документу.

Например, вы можете включить hyper-v с помощью сценариев PowerShell

 Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
  

Затем вызовите сценарии с помощью Invoke-AzVMRunCommand командлета для запуска сценария PowerShell на виртуальной машине Azure. Командлет ожидает, что сценарий, указанный в -ScriptPath параметре, будет локальным для того места, где выполняется командлет.

введите описание изображения здесь

Комментарии:

1. Спасибо, Нэнси, за ваш отличный ответ. Использование агента виртуальной машины для запуска сценариев PS (внутри виртуальной машины) работает для меня. Я немного смущен последней частью, которую вы упомянули. Я попытался запустить Invoke-AzVMRunCommand на своем локальном компьютере. Похоже, команда не распознана как командлет. Не могли бы вы подробнее рассказать? Спасибо!

2. Вы можете использовать run command через портал Azure, смотрите здесь . В PowerShell сначала необходимо установить Azure PowerShell . Кроме того, вам нужна виртуальная машина Azure с поддержкой вложения, чтобы включить вложенную виртуализацию в виртуальной машине Azure. Обратитесь к этому .

Ответ №2:

Я также столкнулся с этим сообщением об ошибке сегодня, и я заметил, что у меня активный сеанс RDP на целевой машине и с открытым Windows PowerShell (для целей тестирования).).

Итак, я просто попытался выйти из PowerShell и закрыть сеанс RDP, тогда это работает!