VMware Cloud Community
aenagy
Hot Shot
Hot Shot

How to get virtual machines in a virtual machine DRS group.



The following script is supposed to get the virtual machines in a virtual machine DRS group. It displays the DRS group name, but not the virtual machines.





# Follow-up to https://developercenter.vmware.com/forums?id=2530#471518


Write-Output

"Start of script $($MyInvocation.MyCommand.Name). $(get-date -Format O)"


function Get-VirtualmachineDrsGroups{


param(


$ClusterName


)


$VirtualmachineDrsGroups=((

get-cluster

<font color="#5f9ea0" face="SimHei" size="2"><font color="#5f9ea0" face="SimHei" size="2"><font color="#5f9ea0" face="SimHei" size="2">-Name</font></font></font>$ClusterName).ExtensionData.ConfigurationEx.group) |

ForEach

{


$_|

where-object

{ $_.gettype().name-eq"ClusterVmGroup"}


}


foreach($VirtualmachineDrsGroupin$VirtualmachineDrsGroups) {


$VirtualmachineDrsGroupProperties=@{


'Virtual machine Drs Group'=$VirtualmachineDrsGroup.Name;


'Virtual machine'=$VirtualmachineDrsGroup.vm |

foreach

{

get-vm

<font color="#5f9ea0" face="SimHei" size="2"><font color="#5f9ea0" face="SimHei" size="2"><font color="#5f9ea0" face="SimHei" size="2">-id</font></font></font>$_}


}


$VirtualmachineDrsGroupObject=

New-Object

<font color="#5f9ea0" face="SimHei" size="2"><font color="#5f9ea0" face="SimHei" size="2"><font color="#5f9ea0" face="SimHei" size="2">-TypeName</font></font></font>PSObject<font color="#5f9ea0" face="SimHei" size="2"><font color="#5f9ea0" face="SimHei" size="2"><font color="#5f9ea0" face="SimHei" size="2">-Property</font></font></font>$VirtualmachineDrsGroupProperties


#$VirtualmachineDrsGroupObject | Out-Default


$VirtualmachineDrsGroupObject


}


}


$ClusterName ="name of my cluster goes here"


$MyVirtualmachineDrsGroups =Get-VirtualmachineDrsGroups<font color="#5f9ea0" face="SimHei" size="2"><font color="#5f9ea0" face="SimHei" size="2"><font color="#5f9ea0" face="SimHei" size="2">-clustername</font></font></font>$ClusterName


ForEach ( $VirtualmachineDrsGroupin$MyVirtualmachineDrsGroups) {


$VirtualmachineDrsGroup."Virtual machine Drs Group"|

Out-Default




ForEach( $VirtualmachineDrsGroupMemberin$VirtualmachineDrsGroup."Virtual machine Drs Group") {


" $( $VirtualmachineDrsGroupMember."Virtual Machine" )"|

Out-Default




}


}


Write-Output

"End of script $($MyInvocation.MyCommand.Name). $(get-date -Format O)"

0 Kudos
1 Reply
LucD
Leadership
Leadership

Have a look at Matt's Backup/Export Full DRS Rule Info via PowerShell


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos