Getting a list of All ESXi Hosts and their WWNs
One of my customers was doing some work on their storage network and so wanted a list of all ESXi hosts and their WWNs. This struck me as another excellent scripting opportunity, so I pulled out my old Brocade 1:1 Zoning script and went to work. I really only needed a one-liner for this situation, so I extracted my needed syntax from that script and quickly put it together. Here's the (admittedly, ugly) command that I came up with:
get-vmhost | select name,@{N="WWNs";E={($_.ExtensionData.config.storagedevice.hostbusadapter.PortWorldWideName | % {("{0:X}"-f$_ -split '(..)' | ? {$_}) -join ':'}) -join ", "}}
That'll spit out a list with two columns, ESXi host names in one, and a comma separated list of WWNs in the other. So, what's that ugly expression in that select statement doing? Well, it's collecting all of the port WWNs on that ESXi host, then converting each one from decimal into hexadecimal (the "{0:X}" -f... bit) and inserting a colon between every two characters (the -split '(..)' and -join ";" bits), then combining all of the WWNs into a single, comma separated string that can be easily exported into a spreadsheet.
get-vmhost | select name,@{N="WWNs";E={($_.ExtensionData.config.storagedevice.hostbusadapter.PortWorldWideName | % {("{0:X}"-f$_ -split '(..)' | ? {$_}) -join ':'}) -join ", "}}
That'll spit out a list with two columns, ESXi host names in one, and a comma separated list of WWNs in the other. So, what's that ugly expression in that select statement doing? Well, it's collecting all of the port WWNs on that ESXi host, then converting each one from decimal into hexadecimal (the "{0:X}" -f... bit) and inserting a colon between every two characters (the -split '(..)' and -join ";" bits), then combining all of the WWNs into a single, comma separated string that can be easily exported into a spreadsheet.
Comments
Post a Comment
Sorry guys, I've been getting a lot of spam recently, so I've had to turn on comment moderation. I'll do my best to moderate them swiftly after they're submitted,