Заметки о Windows и других программных продуктах Microsoft...

Копируем файлы с хоста Hyper-V в виртуальную машину

Копируем файлы с хоста Hyper-V в виртуальную машину

Четвертая версия PowerShell, вышедшая вместе с Windows Server 2012 R2, включает в себя некоторое количество новых командлетов для управления Hyper-V. Одним из таких командлетов является командлет Copy-VMFile, позволяющий копировать файлы в виртуальную машину напрямую, не используя сетевое подключение.

Напомню, что утилита VMConnect, отвечающая в Hyper-V за локальное подключение к ВМ, в стандартном режиме не дает возможность перенести в гостевую систему файлы и папки, только текст. Правда есть еще расширенный режим подключения, но для него необходима поддержка гостевой системы, которая имеется только в новейших ОС Windows. Для всех остальных ОС при необходимости скопировать данные внутрь ВМ необходимо настроить сетевое подключение.

С помощью командлета Copy-VMFile можно скопировать необходимые файлы в ВМ напрямую с хоста, не используя подключение по сети. Для примера возьмем виртуальную машину SRV2008R2 с установленной Windows Server 2008R2 (что исключает использование расширенного режима) и скопируем в нее файл Doc.txt командой:

Copy-VMFile -Name SRV2008R2 -SourcePath ″D:\Doc.txt″ -DestinationPath ″C:\Doc\doc.txt″ -CreateFullPath -FileSource Host

Здесь ключ SourcePath указывает расположение копируемого файла на хосте, DestinationPath — папку в виртуальной машине, в которую будет скопирован файл, CreateFullPath создает папку в случае ее отсутствия, а FileSource Host указывает в качестве источника локальный хост Hyper-V.

Копирование файлов в виртуальную машину

 

Для работы командлета необходимо включение опции Гостевые службы (Guest services) в настройках ВМ на вкладке ″Integration Services″. Обратите внимание, что по умолчанию эта опция выключена.

Сервисы интеграции в Hyper-V Manager

 

Также включить ″Guest services″ можно из консоли PowerShell. Сначала проверяем их состояние:

Get-VMIntegrationService -Name ″Guest Service Interface″ -VMName SRV2008R2

И затем включаем:

Enable-VMIntegrationService -Name ″Guest Service Interface″ -VMName SRV2008R2

Сервисы интеграции в PowerShell

 
 
Комментарии
Eugene Leitan

Полезное нововведение! 🙂

Андрей

Спасибо за заметку.
Опишу несколько своих ошибок при попытке скопировать файл в виртуальную машину:
1) Не запустил консоль powershell от имени администратора.
2) Версия «Integration Services» VM была ниже версии таковых хоста. В таком случае идем в меню «Action» VM и выбираем «Insert Integration Services Setup Disk», обновляемся и перезапускаем VM.
Может кому пригодиться.