Files
PowerCLI-Example-Scripts/Scripts/Report-LUNPath-ESXCLI.ps1
mycloudrevolution ea866993df Report-LUNPath-ESXCLI
This script will create a Report of LUNs with Paths that have more than
one unique LUN ID or have more than the defined Paths.  Information’s
will be gathered via ESXCLI. This is necessary to report also hidden
Paths!
2016-08-01 23:04:48 +02:00

50 lines
1.5 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<#
.NOTES
===========================================================================
Created by: Markus Kraus
Organization: Private
Personal Blog: mycloudrevolution.com
Twitter: @vMarkus_K
===========================================================================
.DESCRIPTION
This script will create a Report of LUNs with Paths that have more than one unique LUN ID or have more than the defined Paths.
Informations will be gathered via ESXCLI. This is necessary to report also hidden Paths!
.Example
./Report-LUNPath-ESXCLI.ps1
#>
#region 1: Global Definitions
$MaxLUNPaths = 2
#endregion
#region 2: Get all Connected Hosts
$myHosts = Get-VMHost | where {$_.ConnectionState -eq "Connected" -and $_.PowerState -eq "PoweredOn"}
#endregion
#region 3: Create Report
$Report = @()
foreach ($myHost in $myHosts) {
$esxcli2 = Get-ESXCLI -VMHost $myHost -V2
$devices = $esxcli2.storage.core.path.list.invoke() | select Device -Unique
foreach ($device in $devices) {
$arguments = $esxcli2.storage.core.path.list.CreateArgs()
$arguments.device = $device.Device
$LUNs = $esxcli2.storage.core.path.list.Invoke($arguments)
$LUNReport = [PSCustomObject] @{
HostName = $myHost.Name
Device = $device.Device
LUNPaths = $LUNs.Length
LUNIDs = $LUNs.LUN | Select-Object -Unique
}
$Report += $LUNReport
}
}
#endregion
#region 4: Output Report
$Report | where {$_.LUNPaths -gt $MaxLUNPaths -or ($_.LUNIDs | measure).count -gt 1 } | ft -AutoSize
#endregion