Difference between revisions of "Script Extracts and Examples (PowerCLI)"

Jump to navigation Jump to search
→‎VM's Effective CPU Shares: Updated script (handles VM's in root 'Resources' pool)
(→‎Script Extracts: Added "VM's Effective CPU Shares")
(→‎VM's Effective CPU Shares: Updated script (handles VM's in root 'Resources' pool))
Line 453: Line 453:


Log "Getting resource pools..."
Log "Getting resource pools..."
$ResPools = Get-ResourcePool | Where {$_.Name -ne "Resources"}
$ResPools = Get-ResourcePool


ForEach ($ResPool in $ResPools) {
ForEach ($ResPool in $ResPools) {
    $VMs = Get-VM -Location $ResPool -NoRecursion | Where {$_.PowerState -eq "PoweredOn"}
    If (!$VMs) {        #Skip any resource pools with no VM's
        Log ("Skipping " + $ResPool.Name + " (no VMs)")
        Continue
    }
     $rSummary = $tSummary.NewRow()
     $rSummary = $tSummary.NewRow()
      
      
Line 462: Line 467:
     $rSummary.CPU_Shares = $ResPool.NumCpuShares
     $rSummary.CPU_Shares = $ResPool.NumCpuShares
      
      
     $VMs = Get-VM -location $ResPool | Where {$_.PowerState -eq "PoweredOn"}
     If (!$VMs.Count) {  # If only 1 VM in ResPool we don't get a normal array returned (so !VMs.Count is NULL)
    $rSummary.VMs = $VMs.Count
        $rSummary.VMs = 1
    } else {
        $rSummary.VMs = $VMs.Count
    }
     $rSummary.Weighted = $rSummary.CPU_Shares / $rSummary.VMs
     $rSummary.Weighted = $rSummary.CPU_Shares / $rSummary.VMs
     $tSummary.Rows.Add($rSummary)
     $tSummary.Rows.Add($rSummary)
Line 483: Line 491:
         $rDetail.Res_CPU_Shares = $ResPool.NumCpuShares
         $rDetail.Res_CPU_Shares = $ResPool.NumCpuShares
         $rDetail.VM_CPU_Shares = $VMShares[$vm.Name]
         $rDetail.VM_CPU_Shares = $VMShares[$vm.Name]
         $rDetail.Eff_VM_Shares = $ResPool.NumCpuShares * ($rDetail.VM_CPU_Shares / $totShares)
         If ($ResPool.Name -eq "Resources") {
            $rDetail.Eff_VM_Shares = $rDetail.VM_CPU_Shares
        } else {
            $rDetail.Eff_VM_Shares = $ResPool.NumCpuShares * ($rDetail.VM_CPU_Shares / $totShares)
        }
         $tDetail.Rows.Add($rDetail)
         $tDetail.Rows.Add($rDetail)
     }  
     }  

Navigation menu