Jak bezpośrednio skopiować plik z hosta Hyper-V na maszynę wirtualną

Zaktualizowana rola funkcji Hyper-V wprowadzona w systemach Windows Server 2012 R2 i Windows 8.1 wprowadziła możliwość bezpośredniego kopiowania plików z hosta Hyper-V na maszynę wirtualną bez użycia interfejsów sieciowych. Ta funkcjonalność jest implementowana przy użyciu nowej usługi w systemie-gościu o nazwie Usługi dla gości, część komponentów integracji Hyper-V (usługi integracji).


Aby więc skorzystać z możliwości bezpośredniego kopiowania plików na maszynę wirtualną z systemem operacyjnym hosta Hyper-V, musisz zainstalować najnowszą wersję komponentów integracji (Integration Services w wersji nie niższej niż 6.3.9600.16384) na maszynie wirtualnej i aktywować na niej Usługi dla gości.

Usługi dla gości umożliwia kopiowanie plików między hiperwizorem hosta (komputerem z rolą Hyper-V) a maszyną wirtualną na nim uruchomioną bez użycia składników sieciowych. Proces kopiowania przez szybką magistralę wewnętrzną vmbus (Virtual Machine Bus), bezpośrednio łącząc hiperwizora z maszyną wirtualną. Dzięki temu administrator może skopiować dowolny plik na maszynie wirtualnej i nie ma znaczenia, w której sieci jest wirtualna maszyna docelowa, czy w ogóle jest podłączona do przełącznika wirtualnego, czy jest w sieci izolowanej.

Uwaga. W poprzednich wersjach Hyper-V, aby skopiować plik wewnątrz maszyny wirtualnej z serwera Hyper-V, trzeba było skonfigurować połączenie rdp, foldery współdzielone przez dodatkową sieć wewnętrzną lub współdzielone pliki vhd. Nie należy również mylić kopiowania plików za pośrednictwem Usług gości z możliwością kopiowania plików za pośrednictwem trybu rozszerzenia protokołu rdp - Tryb sesji zaczarowanej.

Usługi gościa dla maszyn wirtualnych są domyślnie wyłączone. Możesz go włączyć za pomocą graficznego interfejsu użytkownika konsoli Hyper-V we właściwościach maszyny wirtualnej (w sekcji Usługi integracji) lub za pomocą programu PowerShell.

Sprawdź, czy usługi gościa są włączone dla maszyny wirtualnej przez:

Get-VMIntegrationService -VMName HV2012R2 -Name „Interfejs usługi gościa”

W tym przykładzie usługa jest wyłączona: Interfejs usługi gościa: Fałsz.

Aby włączyć usługę, użyj następującego polecenia:

Włącz-VMIntegrationService -VMName "HV2012R2" -Name "Interfejs usługi gościa" -ErrorAction Kontynuuj

Usługa gościa funkcji Hyper-V musi być uruchomiona na maszynie wirtualnej, jej status można uzyskać w następujący sposób:

Interfejs vmicguest Get-Service

Po włączeniu usługi integracji z usługą gościa za pomocą specjalnego polecenia cmdlet Copy-VMFile możesz skopiować dowolny plik znajdujący się bezpośrednio w systemie plików serwera Hyper-V na maszynę wirtualną. Aby skopiować plik do istniejącego folderu w systemie-gościu, wykonaj polecenie na serwerze:

Copy-VMFile „HV2012R2” -SourcePath C: \ Install \ 2012R2.iso -DestinationPath C: \ Install \ 2012R2.iso -FileSource Host

Jeśli ścieżka docelowa nie istnieje w systemie-gościu, polecenie zwróci błąd. Aby automatycznie utworzyć określoną ścieżkę w systemie plików systemu-gościa, używamy argumentu -CreateFullPath

Kopiuj-VMFile „HV2012R2” -SourcePath C: \ Install \ 2012R2.iso -DestinationPath C: \ Install \ 2012R2.iso -FileSource Host -CreateFullPath

Uwaga. Polecenie cmdlet Copy-VMFile pozwala kopiować tylko jeden plik na raz. Aby skopiować całą zawartość folderu, możesz użyć tej konstrukcji:

Get-ChildItem C: \ Scripts -Recurse -File | % Copy-VMFile "HV2012R2" -SourcePath $ _. Pełna nazwa -DestinationPath $ _. Pełna nazwa -CreateFullPath -FileSource Host

Możesz wyłączyć Usługi dla gości w następujący sposób:

Get-VMIntegrationService -VMName "HV2012R2" -Name "Interfejs usługi gościa" | Wyłącz-VMIntegrationService -Passthru

Dzięki usługom gościa administrator funkcji Hyper-V może bezpośrednio skopiować dowolny plik w systemie operacyjnym gościa na maszynie wirtualnej.