Привет, дорогой читатель! Если ты когда-нибудь задавался вопросом – как перенести файл с хостовой машины на виртуальную в Hyper-V, то эта статья для тебя! Дело в том, что не всегда представляется возможным организовать сетевую связность между хостом и виртуальной машиной, а иногда это и вовсе не нужно. К счастью, в Hyper-V предусмотрена простая возможность переноса файлов прямо на виртуальные машины (как Windows так и Linux и другие) с помощью PowerShell и сейчас мы про неё расскажем.
Важно отметить, что данная функционал стал доступен только в 3 версии PowerShell. Поэтому проверьте установленную у себя версию. Для этого в консоли PowerShell введите команду $PSVersionTable
Процесс
Итак, сразу раскроем все карты. Для переноса файлов на гостевые (виртуальные) машины нужно использовать команду со следующим синтаксисом:
Copy-VMFile -Name “Имя виртуальной машины” -SourcePath ?Путь кфайлукоторыйхотим перенести? -DestinationPath ?Путь кпапке на виртуальной машинекуда хотимположить файл? -CreateFullPath -FileSource Host
Основой команды является часть Copy-VMFile, которая, в терминологии PowerShell, называется командлетом (Cmdlet) далее следуют ключи командлета, определяющие параметры и правила выполнения команды. Например, в примере выше, c помощью ключа -Name мы указываем имя виртуальной машины, на которую хотим скопировать файл, путь к которому указываем в ключе -SoucePath. Директория, в которую мы хотим поместить файл на виртуальной машине указывается в ключе -DestinationPath. Ключ -CreateFullPath создаст директорию, если её ещё нет. Ну и -FileSource Host означает, что источником, с которого мы переносим файл является хостовый сервер.
Однако, если вы выполните команду на текущем этапе без предварительной подготовки виртуальной машины, то получите следующую ошибку:
Чтобы этого избежать, необходимо предварительно включить в параметрах виртуальной машины поддержку гостевых сервисов (Guest Services). Для этого зайдите в параметры виртуальной машины, далее выберите Сервисы Интеграции (Integration Services) и поставьте галочку напротив Гостевые сервисы (Guest Services).
Или просто введите команду Enable-VMIntegrationService -Name ?Guest Service Interface? -VMName “Имя виртуальной машины”
После этого следует ввести команду Copy-VMFiles ещё раз, после чего начнётся копирование файлов с хоста в указанную директорию на виртуальной машине. Данный способ подходит для файлов любых размеров, ограничением является только используемое виртуальной машиной дисковое пространство.