简单来说步骤如下:
1.获取IDE控制器对象
使用 "select * from Msvm_ResourceAllocationSettingData where ResourceSubType='Microsoft Emulated IDE Controller' and InstanceID like 'Microsoft:{Name Attribute of virtual machine}%' and Address = {0/1} /* Address is IDE Controller port */"
语句获取指定虚拟机的指定IDE控制器端口
2.向IDE控制器添加驱动器
获取默认的硬盘驱动器对象,ResourceSubType 类型为Microsoft Synthetic Disk Drive
设置它的父级为IDE控制器端口的Path
使用Msvm_VirtualSystemManagementService.AddVirtualSystemResources 添加硬盘驱动器
3.向硬盘驱动添加虚拟硬盘
获取默认的虚拟硬盘对象,ResuorceSubType类型为Microsoft Virtual Hard Disk
设置它的父级路径为 刚才创建的硬盘驱动器的路径
设置它的Connection属性为已经存在的虚拟硬盘文件的绝对路径 Connection是字符串数组类型
使用 Msvm_VirtualSystemManagementService.AddVirtualSystemResources 添加硬盘到驱动器
下面是原文:
Disk Management in Hyper-V
Hyper-V supports three types of virtual hard disk.
· Dynamically expanding: This type of VHD will be growing automatically when storing data.
· Fixed Size: this type of VHD will be same size with you specified. (high performance, but cost more storage)
· Differencing: this type of VHD inherits from its parent, but all the VHD operation will be recorded in this VHD just like write-protect. ( low performance, and when you do more operations, it will cost much storage. this is why snapshot can run out of all your disk, but in many situation. this type of VHD is very useful)
It’s easy to create virtual hard disk through wizard in Hyper-V manager. Also you can create virtual hard disk using WMI.
Msvm_ImageManagementService defines many methods to manage virtual hard disk.
Even if you have created virtual hard disk, it still need to be attached into a virtual machine, thus virtual machine can use it.
Steps of attaching a virtual hard disk
1. Create Disk Driver
a. Get the IDE port you want to attach Disk Driver
Using select * from Msvm_ResourceAllocationSettingData where ResourceSubType='Microsoft Emulated IDE Controller' and InstanceID like 'Microsoft:{Name Attribute of virtual machine}%' and Address = {0/1} /* Address is IDE Controller port */
b. Create Disk Driver
Gets default setting data of Microsoft Synthetic Disk Drive
Set its Parent Attribute to path of IDE you found in above step
Set its Address Attribute,(IDE port)
Call Msvm_VirtualSystemManagementService.AddVirtualSystemResources to Add Disk Driver
2. Attach Virtual hard disk into Disk Driver
Gets default setting data of Microsoft Virtual Hard Disk
Set its Parent Attribute to path of Disk Driver you created(outParams["NewResources"][0])
Set its Connection Attribute to the Path of your Disk(C:\vhds\myvm.vhd)
Call Msvm_VirtualSystemManagementService.AddVirtualSystemResources to Add Disk Driver