VMware Cloud Community
kahashi
Contributor
Contributor
Jump to solution

Need script to list Lun ID

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

function Get-FreeScsiLun {

param (

  [parameter(ValueFromPipeline = $true,Position=1)]

  [ValidateNotNullOrEmpty()]

  [VMware.VimAutomation.Client20.VMHostImpl]

  $VMHost

  )

  process{

    $storMgr = Get-View $VMHost.ExtensionData.ConfigManager.DatastoreSystem

    $storMgr.QueryAvailableDisksForVmfs($null) | %{

      New-Object PSObject -Property @{

        VMHost = $VMHost.Name

        CanonicalName = $_.CanonicalName

        Uuid = $_.Uuid

        CapacityGB = [Math]::Round($_.Capacity.Block * $_.Capacity.BlockSize / 1GB,2)

      }

    }

  }

}

$esx = Get-VMHost -Name MyEsx

Get-FreeScsiLun -VMHost $esx | Format-List

0 Kudos
1 Solution

Accepted Solutions
LucD
Leadership
Leadership
Jump to solution

Try like this

function Get-FreeScsiLun {

param (

  [parameter(ValueFromPipeline = $true,Position=1)]

  [ValidateNotNullOrEmpty()]

  [VMware.VimAutomation.Client20.VMHostImpl]

  $VMHost

  )

  process{

    $storMgr = Get-View $VMHost.ExtensionData.ConfigManager.DatastoreSystem

    $storMgr.QueryAvailableDisksForVmfs($null) | %{

      $result = $_

      $lun = $VMHost.ExtensionData.Config.StorageDevice.ScsiLun | Where{$_.CanonicalName -eq $result.CanonicalName}

      $lunId = $VMHost.ExtensionData.Config.StorageDevice.ScsiTopology.Adapter | %{

        $_.Target | %{$_.Lun | where {$_.ScsiLun -match $lun.key}}

      }

      New-Object PSObject -Property @{

        VMHost = $VMHost.Name

        CanonicalName = $_.CanonicalName

        LunID = if($lunId){$lunId[0].Lun}else{'na'}

        Uuid = $_.Uuid

        CapacityGB = [Math]::Round($_.Capacity.Block * $_.Capacity.BlockSize / 1GB,2)

      }

    }

  }

}

$esx = Get-VMHost -Name MyEsx

Get-FreeScsiLun -VMHost $esx | Format-List


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

View solution in original post

0 Kudos
3 Replies
kunaludapi
Expert
Expert
Jump to solution

vGeek: VMware Datastores inventory powercli

--------------------------------------------------------------- Kunal Udapi Sr. System Architect (Virtualization, Networking And Storage) http://vcloud-lab.com http://kunaludapi.blogspot.com VMWare vExpert 2014, 2015, 2016 If you found this or other information useful, please consider awarding points for "Correct" or "Helpful".
LucD
Leadership
Leadership
Jump to solution

Try like this

function Get-FreeScsiLun {

param (

  [parameter(ValueFromPipeline = $true,Position=1)]

  [ValidateNotNullOrEmpty()]

  [VMware.VimAutomation.Client20.VMHostImpl]

  $VMHost

  )

  process{

    $storMgr = Get-View $VMHost.ExtensionData.ConfigManager.DatastoreSystem

    $storMgr.QueryAvailableDisksForVmfs($null) | %{

      $result = $_

      $lun = $VMHost.ExtensionData.Config.StorageDevice.ScsiLun | Where{$_.CanonicalName -eq $result.CanonicalName}

      $lunId = $VMHost.ExtensionData.Config.StorageDevice.ScsiTopology.Adapter | %{

        $_.Target | %{$_.Lun | where {$_.ScsiLun -match $lun.key}}

      }

      New-Object PSObject -Property @{

        VMHost = $VMHost.Name

        CanonicalName = $_.CanonicalName

        LunID = if($lunId){$lunId[0].Lun}else{'na'}

        Uuid = $_.Uuid

        CapacityGB = [Math]::Round($_.Capacity.Block * $_.Capacity.BlockSize / 1GB,2)

      }

    }

  }

}

$esx = Get-VMHost -Name MyEsx

Get-FreeScsiLun -VMHost $esx | Format-List


Blog: lucd.info  Twitter: @LucD22  Co-author PowerCLI Reference

0 Kudos
kahashi
Contributor
Contributor
Jump to solution

Thank you!

0 Kudos