Управление виртуальными машинами Windows с помощью PowerShell Direct

Область применения: Windows Server 2022, Windows 10, Windows Server 2016, Windows Server 2019

Вы можете использовать PowerShell Direct для удаленного управления виртуальными машинами Windows 10, Windows Server 2016 или Windows Server 2019 из узла Windows 10, Windows Server 2016 или Windows Server 2019 Hyper-V. PowerShell Direct позволяет управлять Windows PowerShell на виртуальной машине независимо от конфигурации сети или параметров удаленного управления на узле Hyper-V или виртуальной машине. Это позволяет администраторам Hyper-V автоматизировать управление и настройку виртуальных машин с помощью сценариев.

Запустить PowerShell Direct можно двумя способами:

  • Создание и выход из сеанса PowerShell Direct с помощью командлетов PSSession

  • Выполнение скрипта или команды с помощью командлета Invoke-Command

Если вы управляете виртуальными машинами более ранних версий, используйте средство "Подключение к виртуальной машине" (VMConnect) или настройте для этой машины виртуальную сеть.

Создание и выход из сеанса PowerShell Direct с помощью командлетов PSSession

  1. На узле Hyper-V откройте Windows PowerShell от имени администратора.

  2. Используйте командлет ENTER-PSSession для подключения к виртуальной машине. Выполните одну из следующих команд, чтобы создать сеанс с помощью имени виртуальной машины или GUID:

    Enter-PSSession -VMName <VMName>
    
    Enter-PSSession -VMId <VM GUID>
    
  3. Введите учетные данные для виртуальной машины.

  4. Выполните все необходимые команды. Эти команды выполняются на виртуальной машине, в которой был создан сеанс.

  5. По завершении используйте exit-PSSession , чтобы закрыть сеанс.

    Exit-PSSession
    

Выполнение скрипта или команды с помощью командлета Invoke-Command

Выполнить предварительно определенный набор команд на виртуальной машине можно с помощью командлета Invoke-Command. Ниже приведен пример использования командлета Invoke-Command, где PSTest — это имя виртуальной машины, а сценарий, который требуется запустить,(foo.ps1) находится в папке сценария (script) на диске C:

Invoke-Command -VMName PSTest  -FilePath C:\script\foo.ps1

Чтобы выполнить одну команду, используйте параметр -ScriptBlock:

Invoke-Command -VMName PSTest  -ScriptBlock { cmdlet }

Что необходимо для использования PowerShell Direct?

Чтобы создать сеанс PowerShell Direct на виртуальной машине:

  • Виртуальная машина должна работать на узле локально и быть загружена.

  • Необходимо войти в учетную запись администратора Hyper-V на хост-компьютере.

  • Необходимо указать действительные учетные данные пользователя для виртуальной машины.

  • Операционная система узла должна работать по крайней мере под управлением Windows 10 или Windows Server 2016.

  • Виртуальная машина должна работать как минимум под управлением Windows 10 или Windows Server 2016.

Командлет Get-VM можно использовать для проверка, что учетные данные, которые вы используете, имеют роль администратора Hyper-V и получить список виртуальных машин, работающих локально на узле и загрузили.

См. также

Ввод-PSSession Exit-PSSessionInvoke-Command