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!
This commit is contained in:
1 parent
e91b0c0649
commit
ea866993df
1 file changed
+50
@@ -0,0 +1,50 @@
|
|||||||
|
<#
|
||||||
|
.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.
|
||||||
|
Information’s 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
|
||||||
Reference in new issue
Block a user