PowerCLI to find vCPU to pCPU ratio and vRAM to pRAM ratio

I was in search for a script to generate report on vCPU to pCPU ratio and vRAM to pRAM at cluster level in a vCenter. Found couple of interesting community threads which address part of the requirements. Thought to consolidate (or extract:) ) the code and created the following. The report will be generated as CSV file.

[crayon lang=”powershell”]


$outputFile = “C:\CPU-Memory-Ratio.csv”
$VC = “vCenter Name”

##Connect to the vCenter
Connect-VIServer $VC -User “test” -Password “test”

$Output [email protected]()

Get-Cluster | %{
$hypCluster = $_

## get the GenericMeasureInfo for the desired properties for this cluster’s hosts
$infoCPUMEM = Get-View -ViewType HostSystem -Property Hardware.CpuInfo,Hardware.memorysize -SearchRoot $hypCluster.Id |
Select @{n=”NumCpuSockets”; e={$_.Hardware.CpuInfo.NumCpuPackages}}, @{n=”NumCpuCores”; e={$_.Hardware.CpuInfo.NumCpuCores}}, @{n=”NumCpuThreads”; e={$_.Hardware.CpuInfo.NumCpuThreads}},@{n=”PhysicalMem”; E={“”+[math]::round($_.Hardware.MemorySize / 1GB, 0)}} |
Measure-Object -Sum NumCpuSockets,NumCpuCores,NumCpuThreads,PhysicalMem

## return an object with info about VMHosts’ CPU characteristics

$temp= New-Object psobject
$datacenter = Get-Datacenter -Cluster $hypCluster.Name
$NumVMHosts = if ($infoCPUMEM) {$infoCPUMEM[0].Count} else {0}
$NumCpuSockets = ($infoCPUMEM | ?{$_.Property -eq “NumCpuSockets”}).Sum
$NumCpuCores = ($infoCPUMEM | ?{$_.Property -eq “NumCpuCores”}).Sum
$vmdetails = Get-VM -Location $hypCluster
$NumvCPU = ( $vmdetails | Measure-Object NumCpu -Sum).Sum
$VirtualMem= [Math]::Round(($vmdetails | Measure-Object MemoryGB -Sum).Sum, 2)
$PhysicalMem = ($infoCPUMEM | ?{$_.Property -eq “PhysicalMem”}).Sum

##Calculating the vCPU to pCPU ratio AND vRAM to pRAM ratio.

if ($NumvCPU -ne “0”) {$cpuRatio= “$(“{0:N2}” -f ($NumvCPU/$NumCpuCores))” + “:1”}
if ($VirtualMem -ne “0”) {$memRatio= “$(“{0:N2}” -f ($VirtualMem/$PhysicalMem))” + “:1”}

$temp | Add-Member -MemberType Noteproperty “Datacenter” -Value $datacenter
$temp | Add-Member -MemberType Noteproperty “ClusterName” -Value $hypCluster.Name
$temp | Add-Member -MemberType Noteproperty “NumVMHosts” -Value $NumVMHosts
$temp | Add-Member -MemberType Noteproperty “NumPCPUSockets” -Value $NumCpuSockets
$temp | Add-Member -MemberType Noteproperty “NumPCPUCores” -Value $NumCpuCores
$temp | Add-Member -MemberType Noteproperty “NumvCPU” -Value $NumvCPU
$temp | Add-Member -MemberType Noteproperty “vCPU-pCPUCoreRatio” -Value $cpuRatio
$temp | Add-Member -MemberType Noteproperty “PhysicalMem(GB)” -Value $PhysicalMem
$temp | Add-Member -MemberType Noteproperty “VirtualMem(GB)” -Value $VirtualMem
$temp | Add-Member -MemberType Noteproperty “vRAM-pRAMRatio” -Value $memRatio


$Output | Sort-Object Account | Export-Csv -NoTypeInformation $outputFile


Output in table format :

[table id=4 /]

Ref : https://communities.vmware.com/thread/456555?start=0&tstart=0


Steps to find NAA ID of a RDM LUN mapped to a Windows Volume


Customer requested to increase the windows volume T:. The mentioned volume is a RAW LUN located in EMC VMAX storage. To expand the LUN storage team needs NAA ID (or WWN) of the LUN.

Its easy to find the naa id of a LUN from windows Guest OS with the help of EMC’s Inquiry (inq) tool. Please find the steps below to fetch the naa id with inq tool.



  1. Download the inq tool to the VM from following hyperlink.
    1. inq
  2. Open a CMD window.
    1. Go to RUN -> cmd
  3. CD to the directory where inq is downloaded.
  4. Find the device associated to the windows volume T:.
    1. Run the command inq -winvolwinvol
    2. Here the Device name is PHYSICALDRIVE4.
  5. Find the NAA id of the LUN associated to the Device PHYSICALDRIVE4.
    1. Run the command inq -wwn naa number
    2. You can see that naa id is displayed in WWN column!!!.

To Confirm you can use the following method.

  1. Find virtual device node of the Device.
    1. Run the command inq -btlVirtual
    2. note down the Bus (0) and Tid number (4).
  2. Open VM settings check the NAAID of the disk with Virtual Device Node “0:4”.vm settings - Virtual Devicevm settings - NAA ID

Disclaimer :

I have’nt tested it on all windows platforms and tested only with EMC storages. So use at your own risk.

Configure Virtual Machine-FEX with Cisco VIC and Nexus 5K – Part 2

Cisco-VMFEXOnce the configuration on Cisco VIC adapter is done, we need to do certain configuration settings on Nexus switch to enable VM-FEX. In this section we discuss more on the configuration settings that needs to be done specifically on on Nexus 5000 Series switch to enable VM-FEX. We also discuss on settings that needs to be done on ESXi to enable VMFEX.

A VM-FEX license is required for Cisco Nexus device. The license package name is VMFEX_ FEATURE_PKG. Incase if you are just interested in experimenting with this cool feature, a grace period of 120 days starts when you first configure this feature.

We have to do the following configuration on Nexus 5000 switch:

  1. Enable VM-FEX and other related services
  2. Define port profiles for dynamic Virtual Machine ports
  3. Enable vntag on applicable ports
  4. Install Cisco_nexus_vmfex plugin in vCenter
  5. Configure SVS connection to vCenter
  6. Activate and verify the SVS connection

Continue reading

VMware vEXPERT 2014!!

On Monday VMware announced the complete list of vExpert 2014. This year 754 people were named as vExpert. I am one among them!! humbled!!.

vExpert 2014

For those unknown with the term: “vExpert” is not a technical certification or a general measure of VMware expertise. The annual VMware vExpert title is given to individuals who have significantly contributed to the community of VMware users over the past year. The title is awarded to individuals (not employers) for their commitment to sharing their knowledge and passion for VMware technology above and beyond their job requirements. Here is the complete list of vExperts 2014.

If you feel you have contributed to the VMware community and did not apply for vExpert, good news.. the Q2 applications are already open at http://www.jotformpro.com/form/40285638168967. Good luck!

PowerCLI script to list VMFS,RDM and Free LUNs in a cluster

Its always a time consuming job to find out the LUN is FREE, RDM or VMFS. The following script will help to get the details of LUNs from hosts in a cluster and will tell us the LUN is VMFS, RDM or FREE.

If the LUN is an RDM, we can see on which VM RDM is mapped. And if the LUN has VMFS volume, the datastore name will be displayed. Also the script provides the details like LUN number, Capacity and naa id (Canonical Name).

The CSV file that is produced by the script looks like this. In this example cluster has four hosts (esx1,esx2,esx3 and esx4), four LUNs (0,1,2 and 13) are shared among them.


You can see there are four values for TYPE.

1. VMFS :- VMFS volume (datastore)
Continue reading

VM Inventory as e-mail with hyperlinks to vCenter Web UI and VM console

This post is to publish the enhanced version of the script PowerCLI sccript for exporting VM details to HTML. This version has the following features added.

1. Report will be sent as e-mail in HTML format.
2. Added Hyperlink to the vCenter Web Client to login.
3. Each VM will have the Hyperlink to the corresponding VM Console.

The output that is produced by the script looks like this


1. Hyperlinks will work only on vCenters with vSphere version 5.1 or above.
Continue reading

Trigger e-mail when user RDP to vCenter server.

We have strict logon policy on VMware Management servers like vCenter, View connection brokers etc. We have been looking for a solution to get alerts when someone RDP to the Management Servers (all are Windows 2008/2012).

Combination of Windows Task Scheduler and PowerShell script did the tick.

1. The following Powershell script “Get-RDPUser.ps1” will get the last terminal server (RDP) session details and send e-mail to the team in HTML table format.

Continue reading

VMware Cloud Cred. Its real fun!!

Cloud Cred is a professional peer-based ranking system that makes it easy to identify the most credible, up-to-date and follow-worthy experts on cloud computing. Participants earn points for activities that demonstrate cloud knowledge, which is expressed as a numerical Cloud Cred score and a level of mastery. Achieving a certain Cloud Cred score also unlocks various rewards and incentives.
Continue reading