Hyper-V:使用内部网络在主机和客户机之间创建共享文件夹

121

设置:

  • 宿主机: Windows 10企业版
  • 客户机: Windows 10专业版
  • 虚拟化软件: Hyper-V

目标:

  • 通过内部网络在宿主机和客户机之间创建共享文件夹,以便交换文件。

如何实现?


1
投票关闭:关于专业的服务器或网络基础设施管理 这个问题更有可能在Server Fault上得到答案。 - TomTom
它已经有答案了(实际上可能是多个)? - quervernetzt
投票不关闭:这个问题太有帮助了,不应该移到Server Fault。 - Константин Ван
4个回答

182

在主机和Hyper-V虚拟机之间共享文件、文件夹或驱动器

先决条件

  1. 确保您使用的是Windows专业版或企业版操作系统。家庭版无法为您提供此功能!来自官方文档:

虚拟机必须启用远程桌面服务,并作为客户操作系统运行Windows 10、Windows 8.1、Windows Server 2016或Windows Server 2012 R2。

  1. 确保在Hyper-V主机上启用了增强会话模式设置。

    启动Hyper-V管理器,在“操作”部分选择“Hyper-V设置”。

    “hyper-v-settings”/

    确保在服务器部分中允许 增强会话模式,然后确保在用户部分中可用增强会话模式。

    use-enhanced-session-mode

  2. 为虚拟机启用Hyper-V Guest服务

    右键单击虚拟机 > 设置。选择菜单左下角的集成服务,选中Guest服务并点击确定。

    enable-guest-services

共享设备与Hyper-v虚拟机的步骤:

  1. 启动虚拟机并在弹出的窗口中点击显示选项

    connect-to-vm

    或者在右侧操作面板中点击“编辑会话设置...

    edit-session-sessions

    当您连接到虚拟机时,它可能只会出现一次。如果没有出现,请尝试启动虚拟机并连接到其管理器面板时仔细观察。

  2. 查看本地资源,然后选择"更多..."菜单。

    click-more

  3. 从这里,您可以选择共享哪些设备。可移动驱动器对于文件共享特别有用。

    choose-the-devices-that-you-want-to-use

  4. 选择“保存我的设置以便将来连接到此虚拟机”。

    save-my-settings-for-future-connections-to-this-vm

  5. 单击连接。现在,驱动器共享已经完成,在使用增强的会话模式登录虚拟机后,您将在Windows资源管理器的计算机 > 网络位置部分中看到共享驱动器。您现在应该能够将文件从物理机器复制并粘贴到虚拟机中,反之亦然。

    shared-drives-from-local-pc

来源(更多信息):在主机和Hyper-V虚拟机之间共享文件夹或驱动器

缺点

  • 虽然这种解决方案很简单,而且使用起来可能比内部网络更快,但它也有自己的缺点:只有在通过VMConnect客户端连接时,驱动器才会被映射。如果你运行的虚拟机带有一些后台服务或者你通过RDP连接到它,那么这种方法就不适用。(感谢@sich指出这一点)

2
没有“显示选项”的对话框,只有一个开始按钮。点击它后,系统开始运行。 - lovetl2002
5
我终于找到了原因。我创建的虚拟机是第一代的。我重新创建了一个第二代的虚拟机,然后连接时对话框就弹出来了。 - lovetl2002
1
嘿,伙计...这个应该标记为答案...那个关于IP地址的太抽象和复杂了...感谢你的辛勤工作...值得写一篇博客文章! - Naeem A. Malik
2
@user2923419有一台第二代设备,只有“设置”选项,没有“编辑会话设置”。 - Marco
3
虽然这个解决方案很简单,而且可能比使用内部网络更快,但它也有自己的缺点:只有在通过VMConnect客户端连接时才会映射驱动器。如果您运行了一个带有一些后台服务的虚拟机或者通过远程桌面连接到它,这种方法将不起作用。 - sich
显示剩余20条评论

68
  • 打开Hyper-V管理器
  • 创建一个新的内部虚拟交换机(例如“内部网络连接”)
  • 进入您的虚拟机并创建一个新的网络适配器 -> 选择“内部网络连接”作为虚拟交换机
  • 启动虚拟机
  • 为主机和客户机分配IP地址及子网掩码(IP4,例如192.168.1.1(主机)/ 192.168.1.2(客户机)和255.255.255.0)
  • 在主机和客户机上都打开cmd,并通过“ping”检查它们是否可以相互访问(如果不起作用,请通过控制面板中的网络设置禁用/启用网络适配器、重新启动...)
  • 如果成功,创建一个文件夹并在VM中命名(例如“VMShare”),右键单击它->属性->共享->高级共享->选中“共享此文件夹”->权限->允许“完全控制”->应用
  • 现在,您应该能够通过主机访问该文件夹-> 打开Windows资源管理器-> 在地址栏中输入客户机的路径(\ 192.168.1.xx ...)-> 输入客户机的凭据(选择“其他用户”-可能需要更改域,因此输入“. \”[用户名]和[密码])

还有一种通过剪贴板进行复制的简单方法:

  • 如果您启动虚拟机并进入“视图”,则可以启用“增强会话”。这样做不能拖放,但可以复制和粘贴。

增强会话


2
无法启用增强会话是唯一的痛点!什么都不起作用,什么都没有。 - Ajay
7
与其搞IP地址,直接使用虚拟机和主机计算机名称更容易。这就是我使用的方法。除非实际存在问题,否则可以跳过ping测试,当需要诊断时才使用它。 ;) - Chiramisu
1
在虚拟机上,我应该去哪里“创建新的网络适配器”? - Stephen R
1
静态IP分配部分并不是必需的(您可以只使用计算机名称)。更重要的是不要忘记在主机上的公共配置文件中禁用Hyper-V网络适配器的防火墙,否则客户机将无法访问它(请参见此答案)。 - Géry Ogam
对我来说有效,但值得指出的是可能需要禁用防火墙或添加新规则。 - pompalini
显示剩余4条评论

7

如果你无法获取"编辑会话设置..."对话框,我发现只需使客户机运行在窗口模式下,使得顶部菜单("文件 操作 媒体 剪贴板 查看 帮助")可见,然后选择"文件 > 退出"(或点击客户机窗口右上角的 "X"),即可打开对话框。

之后,在Hyper-V管理器操作中选择 "编辑会话设置..." 链接,对话框就会启动。


1
谢谢!在我读到这个提示之前,我一直无法让它显示出来。 - Simon East

-2

我的版本是Hyper-V版本:10.0.22509.1000,我认为在Windows中最好、最方便的方法就是将主机和虚拟机配置在同一子网中,这样你就可以轻松地在主机和虚拟机之间使用ctrl+c和ctrl+v无缝切换了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接