Как напрямую скопировать файл с хоста Hyper-V в виртуальную машину
09.01.2020
itpro
Windows Server 2012 R2
комментариев 5
В обновленной роли Hyper-V, представленной в Windows Server 2012 R2 и Windows 8.1 появилась возможность прямого копирования файлов с хоста Hyper-V в виртуальную машину без использования сетевых интерфейсов. Этот функционал реализуется с помощью новой службы в гостевой ОС под названием Guest Services, входящей в состав интеграционных компонентов Hyper-V (Integration Services).
Итак, чтобы воспользоваться возможностью прямого копирования файлов в виртуальную машину с хостовой ОС Hyper-V, нужно в ВМ установить последнюю версию компонентов интеграции (Integration Services версии не ниже 6.3.9600.16384), и активировать на ней службу Guest Services.
Служба Guest Services позволяет осуществить копирование файлов между хостовым гипервизором (компьютером с ролью Hyper-V) и виртуальной машиной, запущенной на нем без использования сетевых компонентов. Процесс копирования осуществляется через высокоскоростную внутреннюю шину vmbus (Virtual Machine Bus), напрямую связывающую гипервизор и виртуальную машину. Благодаря этому администратор может скопировать внутрь виртуальной машины любой файл, причем абсодютно неважно в какой сети находится целевая виртуальная машина, подключена ли она вообще к виртуальному коммутатору, или находится в изолированной сети.

Служба Guest services для виртуальных машин по умолчанию отключена. Включить ее можно через GUI консоли Hyper-V в свойствах виртуальной машины (в разделе Integration Services ) или с помощью Powershell.
Проверить, включена ли служба Guest services для виртуальной машины, можно так:

В данном примере служба отключена: Guest Service Interface: False.
Чтобы включить службу, воспользуемся такой командой:
Внутри виртуальной машины должна быть запущена служба Hyper-V Guest Service, ее статус можно получить так:
![]()
После того, как служа интеграции Guest Service включена, можно с помощью специального командлета Copy-VMFile скопировать любой файл, расположенный на файловой системе сервера Hyper-V напрямую в виртуальную машину. Чтобы скопировать файл в уже существующую папку в гостевой ОС, выполним на сервере команду:
Если целевой путь в гостевой ОС не существует, команда вернет ошибку. Чтобы автоматически создать указанный путь на файловой системе гостевой ОС, воспользуемся аргументом -CreateFullPath

Отключить службу Guest Services можно так:
Итак, благодаря службе Guest Services администратор 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″. Обратите внимание, что по умолчанию эта опция выключена.

Также включить ″Guest services″ можно из консоли PowerShell. Сначала проверяем их состояние:
Get-VMIntegrationService -Name ″Guest Service Interface″ -VMName SRV2008R2
И затем включаем:
Enable-VMIntegrationService -Name ″Guest Service Interface″ -VMName SRV2008R2
Как передать файлы в виртуальную ОС на Hyper-V?
Понадобилась 32 разрядная система. Решил поставить ее на Hyper-V, но ни разу этого не делал. В общем, теперь у меня есть виртуальная Windows 7.
Не понимаю, как можно передать файл с 8-ки на 7-ку. Буфер обмена может передавать только текст. А где хранятся файлы виртуальной 7-ки так и не понял.
- Вопрос задан более трёх лет назад
- 18208 просмотров
- Вконтакте

Буфер обмена передает все что угодно, в том числе файлы и папки.
Поэтому можете просто копировать и вставить. Но это медленно и расточительно в плане ресурсов.
А вообще самое верное решение это просто открыть сетевой доступ к папке. Быстро и просто.
Из более экзотических и специфических решений — ftp сервер, btsync, torrent, dropbox и. т. д.
- Вконтакте

@Tenebrius я честно говоря не понимаю о каком пункте вы говорите.
Файлы вставляются очень просто — скопировали, на одной машине, переключились на виртуалку, в нужной правый клик мышкой и «вставить» .
Ну или ctl-c ctrl-v
По поводу сети — что значит не подключается к сети? Вы намеренно не хотите подключить к сети, или просто возникли проблемы с подключением к сети?
Ну и опять же, если вы не подключите машину к сети, то как вы с ней будете работать? Доступ то к машине как осуществляете?
Копирование обычными способами не работает, ни ctrl+c/ctrl+v, ни через контекстное меню. Зато в главном меню виртуальной машины есть пункт «буфер обмена», но там только один пункт, позволяющий копировать текст.
А доступа к сети из виртуальной машины нет. В настройках сети запущенной там Windows 7 отсутствуют сетевые адаптеры.

Так вы что ходите на виртуальную машину из стандартного подключения? Так работать невозможно, это подключение только для администрирования годится.
По поводу отсутствия сетевого адаптера — его нет потому что вы не установили виртуальный коммутатор. Зайдите в диспетчер гиперви, откройте диспетчер виртуальных коммутаторов, и добавьте виртуальный коммутатор.
Перезапустите виртуальную машину и у вас появиться сетевой адаптер.
После чего в виртуальной машине разрешите доступ по RDP и подключайтесь по RDP к этой машине, ну и папку по сети можно будет расшарить.
Общая папка между реальной и виртуальной Windows: способы быстрой передачи файлов (+ проброс USB-диска/флешки)
Доброго времени суток!
Относительно недавно у меня на блоге была заметка про подкл. старых сканеров и принтеров к новым ПК с помощью вирт. машин (а после мне на почту пришло неск. просьб о том, как организовать быстрый обмен файлами между вирт. и реальной Windows. ). Что же, сегодня попробую ответить на него.
Как правило, для этого создают общую папку, с которой можно работать и из виртуальной машины, и из реальной. Например, в эту папку можно загрузить документы и распечатать их; либо установочные файлы игры (программы) и инсталлировать ее.
Ниже в заметке предложу на выбор неск. вариантов создания такой папки (рекомендую вам начать с первого). Однако, в определенных случаях — могут понадобиться и другие. 😉
Примечание : материал заметки актуален для VirtualBox. Именно в ней и сделаны все нижеприведенные скриншоты!
📌 В тему!
1) Как установить и настроить виртуальную машину VirtualBox (пошаговый пример / или как запустить старую Windows в новой ОС)
2) Подключение старого принтера/сканера (и др. устройств) к Windows 10/11 для которой нет драйвера: как их заставить работать в виртуальной Windows XP/7

Варианты передачи данных между реальной и виртуальной Windows
Вариант 1: общая папка через настройки ВМ (VirtualBox)
VirtualBox хороша тем, что позволяет буквально в три клика создать общую папку (между вирт. Windows и реальной) для обмена файлами и документами.
-
закройте окно виртуальной машины (если она у вас запущена), и откройте ее настройки . См. скрин ниже; 👇


Добавить общую папку

Подкл. образ диска

Открываем и устанавливаем

После перезагрузки — появился сетевой диск!
Вариант 2: Drag and Drop (перенеси из одного окна в другое)
Если в вирт. Windows были установили дополнения , как было показано чуть выше в варианте 1 , — вы можете включить опцию для быстрого обмена файлами прямо из окна вирт. машины (напрямую, также как вы это делаете между двумя окнами проводника, просто зажав ЛКМ и потянув нужный файл в другое окно. ).
Для этого запустите нужную вирт. машину и во вкладке «Устройства / Функция Drag and Drop» включите двунаправленный обмен. См. пример ниже. 👇

Функция Drag and Drop
Далее просто зажмите ЛКМ на нужном файле и перенесите его из окна вирт. машины в окно реальной (или наоборот) — должен начаться процесс копирования. Быстро?! 👌

Просто перетаскиваем из одной ОС в другую нужный файл!
Вариант 3: через интернет (облачные диски, например)
Еще одним весьма неплохим вариантом обмена данными между вирт. машиной и любыми другими устройствами (ПК, телефоны, и пр.) — явл. облачные диски и различные сервисы в сети Интернет.
Разумеется, для работы с Яндекс-диском (и др. сервисами) — необходимо подкл. к сети. Благо, что при использовании VirtualBox «расшарить» доступ в Интернет — проще простого:
- достаточно перейти в настройки вирт. машины;
- во вкладке «Сеть» выбрать опцию «Сетевой мост» и указать ваш сетевой адаптер, через который на реальном ПК осуществляется доступ к Интернету.
- Всё! Сразу после перезагрузки вирт. машины — у нее появится доступ к сети! См. скрины ниже. 👇



В вирт. машине открываем браузер и устанавливаем облачный диск (Интернет работает, страница Google открылась!)
Вариант 4: через общую сетевую папку (плюс еще и в том, что этой папкой смогут пользоваться все ПК из локальной сети)
Этот вариант более долгий в плане настроек (по сравнению с остальными), зато позволяет всем компьютерам из локальной сети (а вирт. машина будет одним из ПК в локальной сети) обмениваться файлами! Это может быть весьма удобно, и быстро!
В своем примере ниже покажу настройку «реальной» ОС Windows 10 (11) и виртуальной Windows XP (как наиболее часто и бывает). Итак.
1) Сначала в настройках вирт. машины VirtualBox во вкладке «Сеть» нужно установить подключение в режим сетевой мост и указать адаптер для подкл. к Интернету (аналогично тому, как мы делали в предыдущем варианте).

2) Затем в виртуальной и реальной Windows необходимо открыть свойства системы ( Win+R , и команда sysdm.cpl ) и:
- задать одинаковуюрабочую группу;
- проверить, чтобы имена ПК были различны. После изменения настроек — ОС необходимо перезагрузить!

Раб. группа должна быть одинакова на реал. и вирт. машине!
3) Этот шаг обязателен, если вы хотите расшарить папку между Windows 10 и XP (если у вас две ОС Windows 10 — этот шаг можно опустить).
Необходимо открыть компоненты Windows 10/11, и включить клиент и сервер SMB (в Windows XP это уже включено).

4) Затем необходимо открыть панель управления Windows 10/11 (в вирт. Windows XP делать не нужно!) по нижеприведенному пути и вкл. сетевое обнаружение и откл. парольную защиту .
Сеть и Интернет\Центр управления сетями и общим доступом\Дополнительные параметры общего доступа

Вкл. сетевое обнаружение

Отключить общий доступ с парольной защитой
5) Теперь в виртуальной машине (с Windows XP) необходимо создать папку (желательно с англ. именем).
После нажать Win+R , и использовать команду control folders — в меню «Вид» необходимо проверить, чтобы был включен простой общий доступ к файлам . См. скрин ниже. 👇

Простой общий доступ
6) Затем открыть свойства созданной папки, и в меню «Sharing» (Доступ) расшарить папку для общего доступа (+ разрешить всем пользователям сети изменять файлы в папке). См. скрин ниже, как в моей англ. версии ОС Windows XP это выглядит. 👇

Делаем общую папку
7) Собственно, это всё.
Если вышеприведенное было сделано правильно (и вирт. машина с Windows XP включена!), достаточно открыть проводник ( Win+E ) в реальной Windows 10/11 — во вкладке «Сеть» будут представлены компьютеры в вашей рабочей группе, в т.ч. и вирт. машина.
И, само собой, там будет и заветная расшаренная папка, которой смогут пользоваться все компьютеры из локальной сети. (пока запущена вирт. машина).

Общая папка заработала!
Вариант 5: проброс USB-флешки/диска
Способ хорош, но работает далеко не всегда идеально: нередко отсутствуют драйвера для USB-контроллера в старых версиях Windows. Поэтому, я бы для начала порекомендовал загрузить в вирт. версию Windows набор драйверов (например, Driver Pack Solutions) — он может пригодиться, если ОС сразу же не увидит «проброшенный» диск/флешку.
Как сделать так, чтобы USB-накопитель стал виден в Windows:
- сначала необходимо запустить вирт. машину;
- подкл. к USB-порту флешку или диск;
- в нижней части окна кликнуть по значку «USB» и выбрать свой диск/флешку ( прим. : если не знаете, что из этого списка выбрать — отключите накопитель и подключите вновь — сразу заметите новый пункт. ) ;
- если ОС Windows не увидит диск — запустите авто-обновление драйверов (с помощью драйвер-пака). После перезагрузите вирт. машину). См. пример ниже. 👇


После перезагрузки ВМ — диски появились!
Вариант 6: через подкл. образов (как ISO, так и диска VHD)
Эти способы удобны для разового обмена файлами, но очень неудобны, если нужно постоянно что-то передавать из одной ОС в другую. Но на всякий случай укажу и их.
Во-первых, обратите внимание, что вирт. машина позволяет подключить образы ISO (вкладка «Оптические диски»). Ничего не мешает 📌создать ISO-образ из любых файлов и папок на жестком диске, а затем подключить его.

Устройства — оптические диски — выбор ISO
Во-вторых, диск от вашей вирт. машины можно подключить через встроенную утилиту управление дисками (см. скрин ниже: «Действие / присоединить виртуальный жесткий диск» 👇). Разумеется, перед этим необходимо выключить вирт. машину.

Присоединить виртуальный жесткий диск
Если решили вопрос иначе — поделитесь пожалуйста в комментариях, заранее благодарю.