#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, тогда это работает!