让我头疼。
我有大量差异磁盘。为了移动机器 - 而且因为(谢天谢地)vm move 不会复制差异磁盘的来源(遗憾的是 export 会),我的想法是在每台 Hyper-V 计算机上都拥有所有主磁盘的中央副本。
示例:VM X 有一个名为“System.vhdx”的 vhdx,它与 ...\masters\x64-2012std.vhdx 不同”
为了标准化差异磁盘的路径,我希望它们位于 c:\Hyper-V\Masters....
现在,C 并不总是有足够的空间,所以我的想法是其中的 \Masters\ 是与真实路径的连接点。
作品,除了:
PowerShell 设置 vhd ......\system.vhdx -ParentPath c:\Hyper-V\Master.....goeson.vhdx
工作正常,虚拟机启动了,但是......
获取vhd
让我看到 vhdx 直接链接到文件 - 不知何故,Hyper-V 发现解决连接点并用文件的“真实”路径替换它很好。
当我将虚拟机移动到具有不同磁盘布局的另一台主机时,这种情况就完全发生了。(我们目前计划了 3 个)。
现在,有什么办法可以解决这个问题吗?我希望 ParentPath 是我设置的 ParentPath,而不是更改的内容,否则会出现错误。
答案1
PowerShell 在完全不同的用户上下文中运行,有时甚至在与 Hyper-V 本身完全不同的机器上运行。因此,其中使用的任何文件路径都必须完全扩展才有意义。对于相对路径,对于“相对于什么”这个问题没有好的答案,因为文件路径扩展可能特定于用户上下文。
不过,我确实知道您的策略可以回答这个问题,但大多数策略都没有。路径扩展代码只是使用底层的 .net 路径扩展,这显然扩展了重新解析点。
您可以尝试直接与 WMI 层对话,而不是使用 PowerShell cmdlet。您可以在 Ben Armstrong 的“Virtual PC Guy”博客上找到大量示例。