如何將檔案複製到 Hyper-V 伺服器和虛擬機器:7 種方法
Hyper-V 是一款虛擬化平台,可在 Windows 上運行,並可直接在安裝該平台的機器上進行管理,亦可透過遠端方式管理。通常,您需要將檔案複製到 Hyper-V 伺服器,或是從伺服器複製到虛擬機器。您無法直接將檔案拖放至 Hyper-V 虛擬機器中,因此應使用其他方法來複製檔案。
例如,在 Hyper-V 中建立新的虛擬機器時,您需要在該虛擬機器上安裝作業系統。 通常,這需透過掛載作業系統媒體的 ISO 安裝映像來完成。 要將安裝媒體傳輸至 Hyper-V 主機,您必須先將 ISO 檔案複製到主機上,然後在新虛擬機器上安裝客體作業系統。
這篇部落格文章提供了 6 種將檔案複製到 Hyper-V 虛擬機器及 Hyper-V 伺服器的方法。請注意,這些將檔案複製到 Hyper-V 伺服器的方法,亦可應用於其他情境,例如將檔案從 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 防火牆中停用傳入連線。若要停用上述已允許的檔案分享和印表機共用防火牆規則,只需在 PowerShell 指令中將
Yes改為No即可。
netsh advfirewall firewall set rule group="File and Printer Sharing" new enable=No
方法 2:如何使用單一檔案分享將檔案複製到 Hyper-V 伺服器
當您的環境中有多個 Hyper-V 主機時,若要在每個 Hyper-V 主機上設定檔案分享並將 ISO 映像檔複製到所有這些 Hyper-V 主機,可能會相當不便。此外,在多個主機上佔用儲存空間來存放相同的 ISO 映像檔,可能並不合理。
您可以於另一台伺服器(例如 檔案伺服器或 NAS )上設定檔案分享,並將所有所需的 ISO 映像檔儲存於此。只需設定一次檔案分享、為 Hyper-V 主機設定存取權限,即可讓所有主機共用儲存於同一位置的所需 ISO 映像檔。
若所有使用的機器均屬於 Active Directory 網域,此方法將十分便利。
若要使用此方法在 Hyper-V 主機與虛擬機器的來賓作業系統之間傳輸檔案,您需要在 Hyper-V 設定中 設定虛擬交換器 並設定所需的網路模式。
若需將檔案複製到搭載 Linux 來賓作業系統的虛擬機器,除了使用 SMB 協定外,您還有另一種選擇。您可以使用 SSH 透過網路進行安全的 Hyper-V 檔案傳輸。
方法 3:透過 RDP 進行 Hyper-V 檔案傳輸
若您的 Hyper-V 伺服器運行於具備圖形介面的 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 的 Hyper-V 主機)及用戶名稱。您可以以完整格式輸入用戶名稱( domainuser 或 computeruser )。
- 轉到
Local Resources標籤,然後點擊More。
- 選擇您希望從電腦映射到遠端主機的本地資源(在我們的例子中,遠端主機是一個 Hyper-V 主機)。擴展
Drives並選擇所需的磁碟機。我們的電腦上所需檔案位於E:磁碟上,由此選擇磁碟E:進行 RDP 連線映射。 - 點擊
OK儲存設定,然後點擊Connect。
建立遠端桌面會話後,在遠端機器的 Windows 資源管理器中開啟 My Computer 或 This PC。您應該能看到您本地電腦映射到遠端機器的磁碟機(如下圖所示的 E on SERVER01-DC)。瀏覽到這個映射磁碟上的所需檔案,並將它們複製到您的 Hyper-V 主機。
如果虛擬機器已連接到網路,這種方法同樣適用。
方法 4:使用 PowerShell CMDlet 進行 Hyper-V 檔案傳輸
PowerShell 4.0 及更高版本具有一個有用的 cmdlet,允許您在不需要在主機和 VM 客戶之間建立網路連接且不需要配置防火牆的情況下,將檔案從 Hyper-V 主機複製到虛擬機器。
那麼,讓我們看看如何在不使用網路的情況下,將檔案複製到 PowerShell 中的 Hyper-V 虛擬機器。
- 在虛擬機器上啟用 客戶服務 。必須在虛擬機器的客戶作業系統中安裝整合服務。
客戶服務是 Hyper-V 整合服務 的一部分,但預設未啟用。要啟用客戶服務,請打開 VM settings,在 VM 設定窗口的左側面板中選擇 Integration Services,然後選取 Guest services 核取方塊。

在 PowerShell 中為 VM 啟用 客戶服務 。 Enable-VMIntegrationService -VMName VM1 -Name 'Guest Service Interface'
- 您可以在 PowerShell 中檢查 “來賓服務” 功能是否已啟用:
Get-VMIntegrationService -name Guest* -VMName VM1,VM2
其中 VM1,VM2 為虛擬機器名稱
- 若狀態顯示為 “無法連線” ,您需要更新虛擬機器,並在來賓作業系統中安裝 “整合服務” 。
- 若狀態顯示為 “false” ,您可以啟用所需的來賓服務介面:
Enable-VMIntegrationService -name Guest* -VMName win10preview -Passthru
- 請使用以下指令進行 Hyper-V 檔案傳輸,將檔案從 Hyper-V 主機傳至虛擬機器(VM):在指令中設定 Hyper-V 主機上的來源路徑以及虛擬機器上的目標路徑:
Copy-VMFile "VMName" -SourcePath "F:Test.txt" -DestinationPath "C:TempTest.txt" -CreateFullPath -FileSource Host
其中:
- VMname 是您要將檔案複製到的虛擬機器名稱(您可在 Hyper-V 管理員中查看虛擬機器名稱;此名稱並非虛擬機器在客體作業系統中顯示的主機名稱)。
- SourcePath 是 Hyper-V 主機上來源檔案的路徑(您需要複製的檔案)。
- DestinationPath 是虛擬機器上目標檔案的路徑(要複製所需檔案的位置)。
- -CreateFullPath 此指令用於建立完整路徑,並在必要時自動建立所有所需的資料夾。
在本範例中,從主機傳輸檔案至虛擬機器客體的 Hyper-V PowerShell 精確指令如下:
Copy-VMFile "VM2" -SourcePath "C:tempfile01.txt" -DestinationPath "C:Temp1file01.txt" -CreateFullPath -FileSource Host
注意: Copy-VMFile 此 cmdlet 僅適用於從 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主機上已創建一個虛擬硬盤。
- 在
Disk Management附加插件中右鍵點擊這個VHDX虛擬硬盤,然後單擊Initialize Disk。
或者,如果您喜歡使用PowerShell,請列出所有已裝載磁碟以確定需要的虛擬磁碟的號碼,然後初始化:
Get-Disk
- 您的磁碟會自動選中。選擇分區樣式。我們使用
MBR(主啟動記錄)以獲得更好的兼容性。點擊OK。
或者,對於使用PowerShell的人來說,命令中包含虛擬磁碟的號碼和分區樣式:
Initialize-Disk 1 -PartitionStyle MBR
- 在已在Hyper-V主機上初始化的虛擬磁碟上創建一個新的容量卷(分區)。此分區在Windows虛擬機器(或能夠與NTFS文件系統一起使用的Linux)中也可見。
在8GB卷上右鍵單擊然後在上下文菜單中點擊New Simple Volume。

- 新建簡單卷嚮導打開。點擊
Next。 - 指定容量卷大小。為該容量卷使用整個磁碟大小。
- 分配一個驅動器號,例如,H:
- 格式化分區。選擇NTFS文件系統,保留默認分配單元大小,並輸入容量卷標籤(例如, Copy-Files )。選擇
Perform a quick format複選框。
或者,您可以使用這些PowerShell命令創建和格式化容量卷:
New-Partition -DiskNumber 1 -UseMaximumsize -AssignDriveLetter
Format-Volume -DriveLetter H -FileSystem NTFS -Full -Force
- 完成嚮導後,您應該在Hyper-V主機計算機的資源管理器中看到已裝載的虛擬磁碟。
- 將所需檔案複製到位於虛擬磁碟上的分區中。 我們將 file01.txt 複製至目標位置,如下圖所示。
- 將所有所需檔案複製到虛擬磁碟後,必須從 Hyper-V 主機上卸載該虛擬磁碟。
右鍵點擊從 VHDX 虛擬磁碟掛載的相應分割區,並在快顯選單中點選 Eject 。
此外,在 PowerShell 中執行以下命令可將虛擬磁碟從主機卸載:
dismount-VHD -path C:Hyper-Vdata-temp.vhdx
- 您可以將此專為 Hyper-V 檔案傳輸而建立的虛擬磁碟,從 Hyper-V 主機掛載至虛擬機器,反之亦然。現在讓我們將包含已寫入檔案的虛擬磁碟掛載至虛擬機器。
- 在 Hyper-V 管理員中選取所需的虛擬機器,並開啟
VM Settings。 - 在虛擬機器設定視窗的左側窗格中,選取所需的虛擬磁碟控制器。
- 選取
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 工具包含一個作為虛擬機器螢幕的介面,您可以在其中透過鍵盤和滑鼠進行操作。使用增強型會話模式的 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 本地設備和資源 部分中,點擊 。
選擇您希望連接到 VM 的 Hyper-V 主機上的可用磁碟。
方法 7: 使用 ISO 映像進行 Hyper-V 文件傳輸
另一種將檔案複製到 Hyper-V 虛擬機器的方法與使用 VHDX 虛擬磁碟類似。然而,此方法僅為單向(將 Hyper-V 檔案複製到 VM),並且無法從 VM 寫入到文件,只能讀取。
如果您有可以編輯和寫入 ISO 文件(CD/DVD 映像文件)的應用程序,您可以將所需的檔案寫入到 Hyper-V 主機的 ISO 映像中,然後將這個 ISO 映像作為虛擬 DVD 媒介插入 VM。
如果您需要將可啟動的 ISO 映像複製到虛擬機器(例如,在測試 嵌套虛擬化 時),您應該創建一個新的空的不可啟動的 ISO 映像文件,並將可啟動的 ISO 映像文件添加到此映像中。然後,您可以將可啟動的 ISO 映像從外部 ISO 文件中複製到插入到 VM 虛擬 DVD 驅動器的文件中。
結論
無論您使用何種方法將檔案複製到 Hyper-V 服務器,不建議將其用於備份用途。這些方法並不像專業 Hyper-V 备份解决方案那樣高效和可靠。當前的 Hyper-V VM 備份解決方案,如 NAKIVO Backup & Replication,創建出小巧、快速,且易於恢复数据的主机级备份。





















