Hyper-Vサーバーおよび仮想マシンへのファイルのコピー方法:7つの方法
Hyper-V は Windows 上で動作するハイパーバイザーであり、インストールされたマシン上で直接管理できるほか、リモートからの管理も可能です。多くの場合、Hyper-V サーバーへのファイルのコピーや、サーバーから仮想マシンへのファイルのコピーが必要になります。Hyper-V 仮想マシンにはファイルをドラッグ&ドロップで直接移動することはできないため、他の方法を使用してファイルをコピーする必要があります。
たとえば、Hyper-V で新しい仮想マシンを作成する場合、その仮想マシンに OS をインストールする必要があります。 通常、これはオペレーティングシステムメディアのISOインストールイメージをマウントすることで行われます。 メディアを Hyper-V ホストに取り込むには、ISO ファイルをホストにコピーし、新しい仮想マシンにゲスト OS をインストールする必要があります。
このブログ記事では、Hyper-V 仮想マシンおよび Hyper-V Server にファイルをコピーする 6 つの方法を紹介しています。Hyper-V Server にファイルをコピーするこれらの方法は、Hyper-V ホストから仮想マシンにファイルをコピーする場合など、他のシナリオでも使用できます。
方法 1: Hyper-V ホスト上のファイル共有を使用してファイルをコピーする方法
この方法では、Hyper-V ホスト上にファイル共有を作成し、ISO イメージやその他のファイルをこの SMB ファイル共有にコピーします。 SMBプロトコル これはWindowsのネイティブ共有プロトコルですが、Linuxやその他のオペレーティングシステムでもサポートされています。
ネットワーク接続が確立されていれば、この方法を使用して、任意の物理マシンや仮想マシンからHyper-Vサーバーへファイルをコピーすることもできます。
- Hyper-V を実行しているマシンで SMB の受信接続を許可するファイアウォール ルールを有効にします。有効にするには
file and printer sharingファイアウォール内で、Hyper-V ホスト上で次のコマンドを実行します:
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=Yes
注: できます SMBファイル共有の設定 必要なユーザーに適切なアクセス権限を付与し、必要なフォルダのみを共有してください。
- Windows マシンにグラフィカルユーザーインターフェイス(GUI)が搭載されている場合は、Windows エクスプローラーのアドレスバーに共有パスを入力して、Hyper-V ホスト上のリモートファイル共有に接続します。この例では、管理目的で全ての Windows マシンにデフォルトで有効になっている隠しシステム共有"C$"を使用します。同様に、D$ や E$ などの他のボリュームにも接続できます。
10.10.10.31c$
注: デモ用として、ファイルはC:ドライブに保存されています。VMファイル、ISOイメージ、ファイル共有、およびその他のシステム以外のデータについては、別の専用パーティションを使用することをお勧めします。
- ISOイメージを保存したいディレクトリ、またはコピーする必要があるその他のファイルが格納されているディレクトリに移動します。そのディレクトリがまだ作成されていない場合は、今すぐ作成してください。今回の例では、ISOファイルは C:ISO_1 Hyper-V ホスト上で、ネットワークパスは 10.10.10.31c$ISO_1
コマンドラインインターフェースを使用する必要がある場合は、次のコマンドでSMBファイル共有をネットワークドライブとしてマッピングできます:
Net use * 〈your hyper-v host〉d$
例えば、
net use S: 10.10.10.31d$
注: このコマンドは、Hyper-V へ転送したいデータが保存されているクライアントまたはサーバー上の CMD または PowerShell で実行できます。
- 必要なISOファイル(またはその他のファイル)をローカルマシンからコピーします(C:datashared01 (当社の場合)このネットワークパスを使用して、Hyper-V ホストに接続します。
- ISOイメージをサーバーにコピーした後、DVDドライブをそのイメージファイルに設定し、(C:)ドライブのルートに作成したフォルダを選択します。
- 必要なファイルをすべてHyper-Vホストにコピーし終えたら、セキュリティ上の理由から、Hyper-VホストのWindowsファイアウォールで受信接続を無効にすることができます。必要に応じて、前述で許可したファイルとプリンターの共有に関するファイアウォールルールを無効にすることも可能です。その場合は、単に設定を変更するだけで済みます。
Yes~へNoPowerShell コマンド内で。
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=No
方法 2: 単一のファイル共有を使用して Hyper-V サーバーにファイルをコピーする方法
環境内に複数のHyper-Vホストがある場合、各Hyper-Vホストでファイル共有を設定し、すべてのHyper-VホストにISOイメージをコピーするのは手間がかかります。さらに、同じISOイメージのために複数のホストのストレージ領域を使用するのは非効率的かもしれません。
別のサーバー(たとえば、 ファイルサーバーまたはNAS そして、必要なISOイメージをすべてそこに保存します。ファイル共有を一度設定し、Hyper-Vホストへのアクセス権限を設定すれば、すべてのホストで、一箇所に保存された必要なISOイメージを利用できるようになります。
この方法は、使用するすべてのマシンがActive Directoryドメインのメンバーである場合に便利です。
この方法を使用してHyper-Vホストと仮想マシンのゲストOS間でファイルを転送するには、次の操作が必要です。 仮想スイッチを設定する Hyper-Vの設定で、必要なネットワークモードを設定します。
LinuxゲストOSを搭載した仮想マシンにファイルをコピーする必要がある場合、SMBプロトコルを使用する以外にも別の方法があります。ネットワーク経由でHyper-Vのファイルを安全に転送するために、SSHを使用することができます。
方法 3: RDP を使用した Hyper-V ファイル転送
Hyper-V Server が GUI 搭載の Windows マシン上で実行されている場合、RDP(リモート デスクトップ プロトコル)を介してこのホストに接続し、ローカル マシンのローカル ディスクをマウントして、必要なファイルをコピーすることができます。これを行うには、対象サーバーでリモート デスクトップ接続を有効にする必要があります。
この方法を使用すると、Windows を実行している別の物理マシンまたは仮想マシンから Hyper-V Server にファイルをコピーすることができます。
- リモートデスクトップ接続を有効にするには、次の手順に従ってください。
Start>Settings>System>Remote Desktopおよび有効にするRemote Desktop. - Windows リモート デスクトップ クライアントを起動します。その場所は
%windir%system32mstsc.exe
種類 mstsc コマンドラインで、または Run ダイアログを表示して、[OK] をクリックします Enter.
- リモートコンピューターのIPアドレスまたはホスト名を入力してください(この例では、IPアドレスが 10.10.10.31) とユーザー名。ユーザー名は完全な形式で入力できます(ドメインユーザー または コンピュータユーザー).
- [ここ](https://example.com)へ移動
Local ResourcesタブをクリックしてMore.
- お使いのコンピュータからリモートホスト(この例では、リモートホストはHyper-Vホストです)にマッピングしたいローカルリソースを選択します。展開
Drives必要なディスクドライブを選択してください。必要なファイルはディスク上にありますE:私たちのコンピューター上で、そのため、ディスクを選択しますE:RDP接続用にマッピングする必要があります。 - クリック
OK設定を保存してから、[クリック]Connect.
リモートデスクトップセッションが確立されたら、[開く] をクリックします My Computer または This PC リモートマシンのWindowsエクスプローラーで。ローカルコンピュータからリモートマシンにマップされたドライブが表示されるはずです(E on SERVER01-DC (下のスクリーンショットを参照)。このマップされたドライブ上で必要なファイルを探し、Hyper-V ホストにコピーしてください。
この方法は、ネットワークに接続されているVMに対しても有効です。
方法 4: PowerShell CMDlet を使用した Hyper-V ファイル転送
PowerShell 4.0 以降には、ホストと仮想マシンの間にネットワーク接続がなく、ファイアウォールの設定も不要な状態で、Hyper-V ホストから仮想マシンへファイルをコピーできる便利なコマンドレットが用意されています。
それでは、ネットワークを使用せずに PowerShell で Hyper-V 仮想マシンへファイルをコピーする方法を見ていきましょう。
- 有効にする ゲストサービス 仮想マシン上で。Integration Servicesは、仮想マシンのゲストOSにインストールする必要があります。
ゲストサービスは、 Hyper-V 統合サービスですが、これらはデフォルトでは有効になっていません。ゲストサービスを有効にするには、 VM settings、選択 Integration Services VM設定ウィンドウの左ペインで、[ Guest services チェックボックス。

有効にする ゲストサービス PowerShell での VM については:
Enable-VMIntegrationService -VMName VM1 -Name 'Guest Service Interface'
- 以下の確認が可能です ゲストサービス PowerShell でこの機能が有効になっています:
Get-VMIntegrationService -name Guest* -VMName VM1,VM2
どこ VM1、VM2 VMの名前は
- ステータスが 連絡なし、VMを更新して、以下をインストールする必要があります 統合サービス ゲストOS内で。
- ステータスが 偽, 必要なゲストサービスインターフェースを有効にできます:
Enable-VMIntegrationService -name Guest* -VMName win10preview -Passthru
- Hyper-V ホストから VM ゲストへファイルを転送するには、以下のコマンドを使用します。この際、Hyper-V ホスト上のソースパスと VM 上の宛先パスを指定してください:
Copy-VMFile "VMName" -SourcePath "F:Test.txt" -DestinationPath "C:TempTest.txt" -CreateFullPath -FileSource Host
場所:
- VM名 は、ファイルをコピーするVMの名前です(VM名はHyper-Vマネージャーで確認できます。これは、ゲストOSに表示されるVMのホスト名ではありません)。
- ソースパス は、Hyper-V ホスト上のソースファイル(コピーする必要があるファイル)へのパスです。
- 対象パス は、VM上の宛先ファイルへのパスです(必要なファイルをコピーする場所)。
- その -CreateFullPath このコマンドは、必要なフォルダが存在しない場合に、それらを含む完全なパスを作成するために使用されます。
この例では、ホストからVMゲストへのHyper-Vファイル転送を行うための正確なPowerShellコマンドは次のとおりです:
Copy-VMFile "VM2" -SourcePath "C:tempfile01.txt" -DestinationPath "C:Temp1file01.txt" -CreateFullPath -FileSource Host
注: その Copy-VMFile このコマンドレットは、Hyper-V ホストから仮想マシンへの一方通行でのみ機能します。
方法 5: VHDX をホストおよびゲストにマウントする
この方法の目的は、Hyper-V ホストと仮想マシンの両方にマウントできる VHDX 仮想ディスクを作成することです。必要なファイルをこの仮想ディスクにコピーし、そのディスクを必要なマシンにマウントして、仮想ディスクとの間でファイルをやり取りすることができます。
この例では Windows Server 2019 を使用します。VHDX 仮想ディスクの作成は、 コンピュータの管理、ただ~においてだけでなく Hyper-V マネージャー 仮想マシンを設定する際。
- を開く
Computer Managementウィンドウ。次の操作を行うには、Win+Rを開くにはRunダイアログを開き、compmgmt.mscコマンド。 - 移動
Storage>Disk Management~の中で コンピュータの管理 ウィンドウ。 - 右クリック
Disk Managementそして、コンテキストメニューでクリックしてCreate VHD.
- 新しいウィンドウが開き、仮想ディスクの作成画面が表示されます。
- Hyper-V ホスト上の仮想ハードディスクの場所を指定します。たとえば、 C:Hyper-Vdata-temp
- 仮想ハードディスクのサイズを設定します。私たちは
8-GBデモ用の仮想ハードディスク。 - 仮想ハードディスクのフォーマットを選択してください。ここでは、
VHDX新しい形式として。詳細はこちら VHD 対 VHDX 違いについて詳しく知るには。 - 仮想ハードディスクの種類を選択してください。ここでは、
Dynamically expandingディスクがデータでいっぱいになるまで、ストレージ容量を節約するため。 - ヒット
OK設定を保存してウィンドウを閉じます。
あるいは、PowerShell で VHDX 仮想ディスクを作成するコマンドの例を以下に示します:
New-VHD -Path C:Hyper-Vdata-temp.vhdx -SizeBytes 8GB -Dynamic -BlockSizeBytes 1MB
PowerShell で VHD 仮想ディスクをマウントするコマンド:
mount-VHD -path C:Hyper-Vdata-temp.vhdx
Hyper-Vホスト上に仮想ハードディスクが作成されました。
- このVHDX仮想ハードディスクを
Disk Managementはめ込んでクリックInitialize Disk.
あるいは、PowerShell を使用したい場合は、初期化の前にマウントされているすべてのディスクを一覧表示して、必要な仮想ディスクの番号を特定してください:
Get-Disk
- ディスクは自動的に選択されます。パーティションスタイルを選択してください。ここでは
MBR(マスター・ブート・レコード)により、互換性が向上します。クリックOK.
あるいは、PowerShell を使用する場合のコマンドには、仮想ディスクの番号とパーティション形式を含めます:
Initialize-Disk 1 -PartitionStyle MBR
- Hyper-V ホスト上で初期化された仮想ディスク上に、新しいボリューム(パーティション)を作成します。このパーティションは、Windows VM(または NTFS ファイルシステムに対応している Linux)からも認識されます。
8 GBのボリュームを右クリックし、[クリック] を選択します New Simple Volume コンテキストメニューで。

- その 新しい"シンプルボリュームウィザード"が開きます. クリック
Next. - ボリュームのサイズを指定してください。このボリュームにはディスクの全容量を使用します。
- ドライブ文字を割り当てます(例:H:)
- パーティションをフォーマットします。ファイルシステムとして"NTFS"を選択し、割り当て単位サイズはデフォルトのままにし、ボリュームラベルを入力します(例: ファイルのコピー). を選択します
Perform a quick formatチェックボックス。
あるいは、以下のPowerShellコマンドを使用してボリュームを作成およびフォーマットすることもできます:
New-Partition -DiskNumber 1 -UseMaximumsize -AssignDriveLetter
Format-Volume -DriveLetter H -FileSystem NTFS -Full -Force
- ウィザードが完了すると、Hyper-V ホストマシンの Windows エクスプローラーにマウントされた仮想ディスクが表示されるはずです。
- 必要なファイルを仮想ディスク上のパーティションにコピーします。コピーするのは file01.txt、以下のスクリーンショットに示すように。
- 必要なファイルをすべて仮想ディスクにコピーした後、Hyper-V ホストからその仮想ディスクをアンマウントする必要があります。
VHDX仮想ディスクからマウントされた該当するパーティションを右クリックし、[ Eject コンテキストメニューで。
あるいは、PowerShell でホストマシンから仮想ディスクをアンマウントするコマンドは次のとおりです:
dismount-VHD -path C:Hyper-Vdata-temp.vhdx
- この仮想ディスクは、Hyper-Vホストからゲストへ、あるいはその逆の方向へのファイル転送用に作成されたもので、マウントすることができます。ファイルが書き込まれた仮想ディスクを仮想マシンにマウントしてみましょう。
- 必要なVMを選択して開く
VM SettingsHyper-V マネージャーで。 - VM設定ウィンドウの左ペインで、必要な仮想ディスクコントローラを選択します。
- 選択
Hard DriveをクリックしてAdd.
- 選択
Virtual hard diskをクリックしてBrowse既存の仮想ハードディスクをVMに追加します。 - VHDXのパスを指定してください。今回の例では、パスは C:Hyper-Vdata-temp.vhdx
- ヒット
OK設定を保存するには。
あるいは、既存の仮想ハードディスクをHyper-V仮想マシンの構成に追加するためのPowerShellコマンドは次のとおりです:
Add-VMHardDiskDrive -VMName VM2 -Path C:Hyper-Vdata-temp.vhdx
- Hyper-V ホスト上で、接続済みの仮想ディスクを使用して仮想マシンを起動します。
- ゲストOSにログインし、仮想ディスク上のボリュームが自動的にマウントされているか確認してください。そうでない場合は、次の手順に進んでください。
Computer Management>Disk Managementそして、Hyper-VホストからVMへ転送する必要があるファイルが格納されているボリュームにドライブ文字を割り当てます。 - 必要なファイルを添付の仮想ディスクから仮想マシンにコピーしてください。
方法 6: 拡張セッションモードを使用した VMConnect
VMConnect(Virtual Machine Connection)は、仮想マシンを管理するためのHyper-Vに組み込まれたツールです。VMConnectツールには、キーボードやマウスでの操作状況を確認できる、VMのモニターとして機能する画面が含まれています。拡張セッションモードでVMConnectを使用すると、より便利になり、より多くの機能を利用できます。
拡張セッションモードを使用すると、仮想マシンに接続する際の画面解像度をカスタマイズしたり、Hyper-V マネージャーを実行しているホストのローカルリソースを接続して仮想マシンを管理したりできます。ローカルリソースの接続方法は、リモートデスクトップ接続を使用してリモートホストや仮想マシンにアクセスする場合と同様です。
有効にするには Enhanced session mode:
- Hyper-V マネージャーで Hyper-V ホストの名前を右クリックし、コンテキスト メニューから [
Hyper-V Settings. - クリック
Enhanced session mode左側のパネルで - [選択]
Use enhanced session modeチェックボックス
あるいは、 拡張セッションモード PowerShellでは:
Set-VMHost -EnableEnhancedSessionMode $True
一度 拡張セッションモード が有効になっており、ゲストVMとHyper-Vサーバーの両方で必要な設定がすべて完了している場合は、VMを起動し、VMConnectを使用してこのVMに接続できます。
もし 拡張セッションモード が有効になっています。[クリック] Show Options このウィンドウで。
[選択] Local Resources タブをクリック More ~の中で ローカルデバイスとリソース セクション。
Hyper-V ホスト上で利用可能なディスクの中から、仮想マシンに接続したいディスクを選択してください。
方法 7: ISO イメージを使用した Hyper-V ファイル転送
Hyper-V 仮想マシンにファイルをコピーするもう 1 つの方法は、VHDX 仮想ディスクを使用する方法と似ています。ただし、この方法は一方向(Hyper-V から仮想マシンへのコピー)のみであり、仮想マシンからのファイルへのアクセスは読み取り専用となります。
CD/DVDイメージファイルであるISOファイルを編集・書き込みできるアプリケーションをお持ちの場合は、Hyper-Vホスト上の必要なファイルをISOイメージに書き込み、このISOイメージを仮想DVDメディアとして仮想マシンに挿入することができます。
起動可能なISOイメージを仮想マシンにコピーする必要がある場合(例えば、テスト時など) ネスト型仮想化)、新しい空の非起動用ISOイメージファイルを作成し、そこに起動用ISOイメージファイルを追加する必要があります。その後、VMの仮想DVDドライブに挿入された外側のISOファイルから、起動用ISOイメージをコピーすることができます。
結論
Hyper-V Server にファイルをコピーする方法はどれを選んでも、バックアップ目的での使用は推奨されません。これらの方法は、専門的な Hyper-V バックアップソリューションほど効率的でも信頼性が高くもありません。今日の Hyper-V VM バックアップソリューションには、例えば NAKIVO Backup & Replication、容量が小さく、高速で、データの復元も容易なホストレベルのバックアップを作成します。





















