通过编程或命令行向 Hyper-V VM 添加第二个 VHD

通过编程或命令行向 Hyper-V VM 添加第二个 VHD

一段时间以来,我一直在使用 vbscript 编写脚本来成功创建 Hyper-V VM。技术人员所要做的就是运行我的脚本,选择他们要构建的服务器类型(例如 Web 服务器、SQL 服务器等),然后分配所有适当的虚拟资源(因此 RAM 大小、磁盘大小等将根据服务器的功能而有所不同)。

我现在遇到的问题是,我需要修改脚本以添加第二个 VHD。它可以作为辅助驱动器添加到 IDE 控制器 0 上,也可以添加到 IDE 控制器 1(将主驱动器留在 IDE 控制器 0 上)。

我于 2012 年 2 月 22 日在 StackOverflow 上发布了这个问题:https://stackoverflow.com/questions/9395823/scripting-the-addition-of-a-second-vhd-to-a-hyper-v-vm。到目前为止,我的点击量非常少,而且没有回复。

我不知道如何修改现有代码来添加第二个 VHD!

我认为有两种选择:

  1. 修改我的脚本,用不同的编程方法替换现有函数。有什么想法吗?
  2. 如果有人知道如何使用命令行执行此操作,我可以很容易地使用 shell 对象将该方法合并到我的脚本中。

我愿意接受任何建议。

谢谢。

答案1

在 Hyper-V 中创建/修改虚拟硬盘时,需要注意 3 个 WMI 对象:控制器、驱动器和 VHD。只有控制器会在创建 VM 时自动创建。
要创建驱动器对象,您需要克隆硬盘定义(即 Msvm_ResourceAllocationSettingData 对象),将其父级设置为控制器对象的路径,并将其地址设置为“0”或“1”。要创建 VHD 对象,请克隆属于同一 WMI 类的 VHD 定义,并将连接设置为 VHD 文件路径。

还有适用于 Hyper-V 的 Powershell 库http://pshyperv.codeplex.com/

相关内容