如何將檔案複製到 Hyper-V 伺服器和虛擬機器:7 種方法
Hyper-V 是一種虛擬化平台,可在 Windows 上運行,並可直接在安裝該平台的機器上管理,亦可透過遠端進行管理。通常,您需要將檔案複製到 Hyper-V 伺服器,或是從伺服器複製到虛擬機器。您無法直接將檔案拖放至 Hyper-V 虛擬機器,而應使用其他方法來複製檔案。
例如,在 Hyper-V 中建立新的虛擬機器時,您需要在該虛擬機器上安裝作業系統。 一般而言,這需透過掛載作業系統媒體的 ISO 安裝映像檔來完成。 要將媒體傳送到 Hyper-V 主機,您必須將 ISO 檔案複製到主機,並在新虛擬機器上安裝客體作業系統。
這篇部落格文章提供了 6 種將檔案複製到 Hyper-V 虛擬機器和 Hyper-V Server 的方法。請注意,這些將檔案複製到 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 主機上的遠端檔案分享。在此範例中,我們使用隱藏的系統共用 C$,此共用在所有 Windows 電腦上預設皆已啟用,供管理用途。同樣地,您也可以連線至其他磁碟區,例如 D$、E$ 等。
10.10.10.31c$
註: 為示範之用,檔案儲存於 C: 磁碟機。建議您為虛擬機器檔案、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至No在 PowerShell 指令中。
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=No
方法 2:如何使用單一檔案分享將檔案複製到 Hyper-V 伺服器
當您的環境中有多台 Hyper-V 主機時,若要在每台 Hyper-V 主機上分別設定檔案分享,並將 ISO 映像檔複製到所有這些主機上,可能會相當不便。此外,在多台主機上為相同的 ISO 映像檔佔用儲存空間,可能並不合理。
您可以將檔案分享設定在另一台伺服器上,例如在 檔案伺服器或 NAS 並將所有需要的 ISO 映像檔儲存於此處。只需設定一次檔案分享,為 Hyper-V 主機設定存取權限,即可讓所有主機使用儲存於同一位置的所需 ISO 映像檔。
如果所有使用的機器都是 Active Directory 網域的成員,此方法便相當方便。
若要使用此方法在 Hyper-V 主機與虛擬機器的來賓作業系統之間傳輸檔案,您需要 設定虛擬交換器 在 Hyper-V 設定中,設定所需的網路模式。
若需將檔案複製到搭載 Linux 客體作業系統的虛擬機器,除了使用 SMB 協定外,您還有另一種選擇。您可以使用 SSH 透過網路進行安全的 Hyper-V 檔案傳輸。
方法 3:透過 RDP 進行 Hyper-V 檔案傳輸
如果您的 Hyper-V 伺服器是在具備圖形使用者介面 (GUI) 的 Windows 電腦上運行,您可以透過 RDP(遠端桌面協定)連線至此主機,並掛載本地電腦的本地磁碟,以複製所需的檔案。要執行此操作,您需要在目標伺服器上啟用遠端桌面連線。
您可以使用此方法,從另一台運行 Windows 的實體或虛擬機器將檔案複製到 Hyper-V 伺服器。
- 若要啟用遠端桌面連線,請前往
Start>Settings>System>Remote Desktop並啟用Remote Desktop. - 執行 Windows 遠端桌面客戶端,其位置為
%windir%system32mstsc.exe
類型 mstsc 在命令列中,或 Run 對話框並按下 Enter.
- 輸入遠端電腦的 IP 位址或主機名稱(在本範例中,是指 IP 位址為 10.10.10.31) 以及使用者名稱。您可以以完整格式輸入使用者名稱(domainuser 或 電腦使用者).
- 前往
Local Resources按一下"分頁"並點擊More.
- 選取您要從電腦映射至遠端主機的本地資源(在本範例中,遠端主機為 Hyper-V 主機)。展開
Drives並選取所需的磁碟機。所需檔案的位置位於該磁碟上E:在我們的電腦上,因此我們選擇磁碟E:需為我們的 RDP 連線進行對應。 - 點擊
OK儲存設定,然後點擊Connect.
建立遠端桌面連線後,請開啟 My Computer 或 This PC 在遠端電腦的 Windows 檔案總管中。您應該會看到從您的本地電腦映射至遠端電腦的磁碟機(E on SERVER01-DC (如下圖所示)。請在該映射磁碟機上瀏覽至所需的檔案,並將其複製到您的 Hyper-V 主機上。
如果虛擬機器已連接到網路,此方法同樣適用。
方法 4:使用 PowerShell CMDlet 進行 Hyper-V 檔案傳輸
PowerShell 4.0 及更高版本提供了一個實用的 cmdlet,讓您能在 Hyper-V 主機與虛擬機器之間未建立網路連線,且無需配置防火牆的情況下,將檔案複製到虛擬機器中。
因此,讓我們來看看如何在 PowerShell 中不透過網路將檔案複製到 Hyper-V 虛擬機器中。
- 啟用 賓客服務 在虛擬機器上。必須在虛擬機器的客體作業系統中安裝整合服務。
賓客服務是 Hyper-V 整合服務,但預設並未啟用。若要啟用來賓服務,請開啟 VM settings, 請選擇 Integration Services 在虛擬機器設定視窗的左側窗格中,選取 Guest services 核取方塊。

啟用 賓客服務 在 PowerShell 中針對虛擬機器:
Enable-VMIntegrationService -VMName VM1 -Name 'Guest Service Interface'
- 您可以檢查是否 賓客服務 此特點已在 PowerShell 中啟用:
Get-VMIntegrationService -name Guest* -VMName VM1,VM2
在哪裡 VM1、VM2 是虛擬機名稱
- 如果狀態是 無聯繫,您需要更新虛擬機器並安裝 整合服務 在客體作業系統中。
- 如果狀態是 不正確, 您可以啟用所需的來賓服務介面:
Enable-VMIntegrationService -name Guest* -VMName win10preview -Passthru
- 請使用以下指令,透過設定 Hyper-V 主機上的來源路徑及虛擬機器上的目標路徑,將檔案從 Hyper-V 主機傳輸至虛擬機器:
Copy-VMFile "VMName" -SourcePath "F:Test.txt" -DestinationPath "C:TempTest.txt" -CreateFullPath -FileSource Host
地點:
- VM名稱 是您要將檔案複製到的虛擬機器名稱(您可以在 Hyper-V 管理員中查看虛擬機器名稱;這並非客體作業系統中顯示的虛擬機器主機名稱)。
- SourcePath 是 Hyper-V 主機上原始檔案的路徑(即您需要複製的檔案)。
- 目標路徑 是虛擬機器上目標檔案的路徑(即需複製檔案的位置)。
- 該 -CreateFullPath 此指令用於建立完整路徑,並在所需資料夾不存在時自動建立。
在我們的範例中,用於從主機向虛擬機器 (VM) 客體傳輸檔案的 Hyper-V PowerShell 指令如下:
Copy-VMFile "VM2" -SourcePath "C:tempfile01.txt" -DestinationPath "C:Temp1file01.txt" -CreateFullPath -FileSource Host
註: 該 Copy-VMFile 此 cmdlet 僅支援從 Hyper-V 主機到虛擬機的方向。
方法 5:將 VHDX 掛載至主機和來賓系統
此方法的構想是建立一個 VHDX 虛擬磁碟,該磁碟可同時掛載至 Hyper-V 主機與虛擬機器。您可以將所需檔案複製到此虛擬磁碟中,將磁碟掛載至目標機器,並在虛擬磁碟與機器之間複製檔案。
本範例中我們使用 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 主機上建立了一個虛擬硬碟。
- 在
Disk Management卡入並點擊Initialize Disk.
或者,如果您偏好使用 PowerShell,則可在初始化前列出所有已掛載的磁碟,以確認所需虛擬磁碟的編號:
Get-Disk
- 您的磁碟已自動選取。請選擇分割區樣式。我們使用
MBR(主開機記錄) 以提升相容性。點擊OK.
此外,對於使用 PowerShell 的使用者,該指令需包含虛擬磁碟編號及分割區樣式:
Initialize-Disk 1 -PartitionStyle MBR
- 在 Hyper-V 主機上已初始化的虛擬磁碟中建立一個新的磁碟區(分割區)。此分割區在 Windows 虛擬機器(或可支援 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 檔案傳輸所建立的虛擬磁碟,從 Hyper-V 主機掛載至來賓系統,反之亦然。現在讓我們將包含已寫入檔案的虛擬磁碟掛載至虛擬機器。
- 選取所需的虛擬機器並開啟
VM Settings在 Hyper-V 管理員中。 - 請在虛擬機器設定視窗的左側窗格中,選取所需的虛擬磁碟控制器。
- 選擇
Hard Drive然後點擊Add.
- 選擇
Virtual hard disk然後點擊Browse將現有的虛擬硬碟新增至虛擬機器。 - 請指定 VHDX 檔案的路徑。在此範例中,路徑為 C:Hyper-Vdata-temp.vhdx
- 點擊
OK以儲存設定。
此外,以下是將現有的虛擬硬碟新增至 Hyper-V 虛擬機器配置的 PowerShell 指令:
Add-VMHardDiskDrive -VMName VM2 -Path C:Hyper-Vdata-temp.vhdx
- 在您的 Hyper-V 主機上,使用已掛載的虛擬磁碟啟動虛擬機器。
- 請登入客體作業系統,並確認虛擬磁碟上的磁碟區在系統位置是否已自動掛載。若未掛載,請前往
Computer Management>Disk Management並為該磁碟區指派一個磁碟機代號,該磁碟區內存放著您需要從 Hyper-V 主機傳輸至虛擬機的檔案。 - 將所需檔案從附帶的虛擬磁碟複製到虛擬機器中。
方法 6:使用增強型連線模式的 VMConnect
VMConnect(即虛擬機器連線)是 Hyper-V 內建的虛擬機器管理工具。該工具包含一個用作虛擬機器監視器的畫面,您可以在其中查看透過鍵盤和滑鼠進行操作的情況。若搭配"進階工作階段模式"使用 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
一旦 進階會話模式 若已啟用此功能,且在虛擬機器與 Hyper-V 伺服器中已完成所有相關設定,您即可啟動虛擬機器,並透過 VMConnect 連線至該虛擬機器。
若 進階會話模式 已啟用。請按一下 Show Options 在此視窗中。
請選擇 Local Resources 分頁。點擊 More 在 本地裝置與資源 章節。
請選取 Hyper-V 主機上可用且您希望連接到虛擬機器的磁碟。
方法 7:使用 ISO 映像檔進行 Hyper-V 檔案傳輸
另一種將檔案複製到 Hyper-V 虛擬機的方法,與使用 VHDX 虛擬磁碟類似。不過,此方法僅支援單向操作(將 Hyper-V 檔案複製到虛擬機),且從虛擬機存取這些檔案時僅限讀取。
若您擁有可編輯及寫入 ISO 檔案(即 CD/DVD 映像檔)的應用程式,即可將 Hyper-V 主機上的所需檔案寫入 ISO 映像檔,並將此 ISO 映像檔作為虛擬 DVD 媒體插入虛擬機器中。
若您需要將可開機的 ISO 映像檔複製到虛擬機器中(例如在測試時) 嵌套虛擬化),您應建立一個新的、空的、不可開機的 ISO 映像檔,並將可開機的 ISO 映像檔加入此映像檔中。接著,您可以將插入虛擬機器(VM)虛擬 DVD 光碟機中的外部 ISO 檔案中的可開機 ISO 映像檔複製出來。
結論
無論您使用何種方法將檔案複製到 Hyper-V Server,都不建議將其用於備份目的。這些方法的效率和可靠性均不及專業的 Hyper-V 備份解決方案。當今的 Hyper-V 虛擬機器備份解決方案,例如 NAKIVO Backup & Replication, 建立體積小、速度快且便於還原資料的主機層級備份。





















