.

Eu vou ...

Posts Recentes

Redes Sociais

Tags

Apoio


   
Global IT Community Association

Visitas

Locations of visitors to this page

Os meus Links

Arquivo

Anexar discos Passthough via WMI (IDE ou SCSI)

Se deseja usar discos passthough com Hyper-V como vou anexar os discos? Que scripts utilizar? Bem, aqui está a resposta… Mas primeiro precisa decidir se vai para utilizar a controladora IDE virtual ou a controlador SCSI virtual. A controladora IDE é ideal se planear a inicialização a partir do disco de passthough ou se seu guest não suporta o adaptador SCSI virtual (Ex: Linux). O controlador SCSI é ideal se quiser adicionar/remover armazenamento da máquina virtual enquanto esta a ser executada (recurso do Hyper-V R2) ou se tiver mais de 4 discos que deseja adicionar. Anexar ao IDE ou SCSI é bastante semelhante – existe realmente apenas 1, diferença em negrito nos dois scripts abaixo, só tem que seleccionar a controladora correcta. Excepto se for usar o número do disco físico para Gestor de disco (não muito mau) ou se fornecer um ID de LUN quando criar o armazenamento (no caso de uma SAN), pode usar o que pode ser um pouco mais determinista.

 

Anexar discos Passthrough numa controladora IDE

$HyperVGuest = "Passthough Demo"

 

$VMManagementService = Get-WmiObject -class "Msvm_VirtualSystemManagementService" -namespace "root\virtualization"

$Vm = Get-WmiObject -Namespace "root\virtualization" -Query "Select * From Msvm_ComputerSystem Where ElementName='$HyperVGuest'"

 

$VMSettingData = Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$Vm} Where ResultClass=Msvm_VirtualSystemSettingData AssocClass=Msvm_SettingsDefineState"

 

$VmIdeController = (Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$VMSettingData} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_VirtualSystemSettingDataComponent" |`

                        where-object {$_.ResourceSubType -eq "Microsoft Emulated IDE Controller" -and $_.Address -eq 0}) 

 

$DiskAllocationSetting = Get-WmiObject -Namespace "root\virtualization" -Query "SELECT * FROM Msvm_AllocationCapabilities WHERE ResourceSubType = 'Microsoft Physical Disk Drive'"

$DefaultHardDisk = (Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$DiskAllocationSetting} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_SettingsDefineCapabilities" | `

                        where-object {$_.InstanceID -like "*Default"})

                       

$Disk = Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_DiskDrive Where DriveNumber=2"

#$Disk = Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_DiskDrive Where ElementName Like '%Lun 200%'"

 

$DefaultHardDisk.Parent = $VmIdeController.__Path

$DefaultHardDisk.Address = 0

$DefaultHardDisk.HostResource = $Disk.__PATH

 

$VMManagementService.AddVirtualSystemResources($VM, $DefaultHardDisk.PSBase.GetText(1)) | ProcessWMIJob $VMManagementService "AddVirtualSystemResources"

 

 

Anexar discos Passthrough numa controladora SCSI

$HyperVGuest = "Passthough Demo"

 

$VMManagementService = Get-WmiObject -class "Msvm_VirtualSystemManagementService" -namespace "root\virtualization"

$Vm = Get-WmiObject -Namespace "root\virtualization" -Query "Select * From Msvm_ComputerSystem Where ElementName='$HyperVGuest'"

 

$VMSettingData = Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$Vm} Where ResultClass=Msvm_VirtualSystemSettingData AssocClass=Msvm_SettingsDefineState"

 

 

$VmScsiController = (Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$VMSettingData} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_VirtualSystemSettingDataComponent" | `

                         where-object {$_.ElementName -eq "SCSI Controller"})

 

$DiskAllocationSetting = Get-WmiObject -Namespace "root\virtualization" -Query "SELECT * FROM Msvm_AllocationCapabilities WHERE ResourceSubType = 'Microsoft Physical Disk Drive'"

 

$DefaultHardDisk = (Get-WmiObject -Namespace "root\virtualization" -Query "Associators of {$DiskAllocationSetting} Where ResultClass=Msvm_ResourceAllocationSettingData AssocClass=Msvm_SettingsDefineCapabilities" | `

                        where-object {$_.InstanceID -like "*Default"})                    

$Disk = Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_DiskDrive Where DriveNumber=2"

#$Disk = Get-WmiObject -Namespace "root\virtualization" -Query "select * from Msvm_DiskDrive Where ElementName Like '%Lun 200%'"

$DefaultHardDisk.Parent = $VmScsiController.__Path

 

$DefaultHardDisk.Address = 0

$DefaultHardDisk.HostResource = $Disk.__PATH

$VMManagementService.AddVirtualSystemResources($VM, $DefaultHardDisk.PSBase.GetText(1)) | ProcessWMIJob $VMManagementService "AddVirtualSystemResources"