VMware PowerCLIを使ってデータストア・デバイス・アダプタのステータスを表示させる。
データストアの情報取得
下記の画面に表示されるデータストアに関する情報を取得する。
表示コマンド
PS C:\tmp\a> Get-Datastore | select *
実行結果
情報取得用スクリプト
$Datastore = Get-Datastore
Write-Host ""
Write-Host "【データストア】"
Write-Host "`t Name".PadRight(22) "CapacityGB".PadRight(15) "FreeSpaceGB".PadRight(15) "FreeSpace%".PadRight(15) "Type".PadRight(10) "FileSystem".PadRight(15) "Id".PadRight(50) "State".PadRight(10)
Write-Host "`t ================================================================================================================================================================"
for ($i=0; $i -lt $Datastore.Count; $i++) {
#数値の整形
$ds_CapacityGB = "{0:.00}" -f $Datastore[$i].CapacityGB
$ds_FreeSpaceGB = "{0:.00}" -f $Datastore[$i].FreeSpaceGB
$ds_free = $ds_FreeSpaceGB / $ds_CapacityGB * 100
$ds_free = "{0:.00}" -f $ds_free
#出力
Write-Host "`t" $Datastore[$i].Name.PadRight(20),
$ds_CapacityGB.PadRight(15),
$ds_FreeSpaceGB.PadRight(15),
$ds_Free.PadRight(15),
$Datastore[$i].Type.PadRight(10),
$Datastore[$i].FileSystemVersion.PadRight(15),
$Datastore[$i].Id.PadRight(50),
$Datastore[$i].State
}
実行結果
デバイスの情報取得
下記の画面に表示されるデバイスに関する情報を取得する。
表示コマンド
PS C:\tmp\a> Get-ScsiLun | ft -AutoSize
PS C:\tmp\a> Get-ScsiLun | select *
実行結果
情報取得用スクリプト
$ScsiLun = Get-ScsiLun | Sort-Object CanonicalName
$storage_device = $esxcli.storage.nmp.device.list.Invoke() | Sort-Object Device
Write-Host ""
Write-Host "【デバイス】"
Write-Host "`t LunType".PadRight(12) "ConsoleDeviceName".PadRight(45) "Model".PadRight(25) "SerialNumber".PadRight(15) "Vendor".PadRight(15) "CapacityGB".PadRight(15) "MultipathPolicy".PadRight(20)"IsLocal".PadRight(10) "PathSelectionPolicy".PadRight(25) "StorageArrayType".PadRight(15)
Write-Host "`t ================================================================================================================================================================================================================="
for ($i=0; $i -lt $ScsiLun.Count; $i++) {
#整形
if ([string]::IsNullOrEmpty($ScsiLun[$i].CapacityGB)) { $ScsiLun_CapacityGB = "-" } else { $ScsiLun_CapacityGB = "{0:0.0}" -f $ScsiLun[$i].CapacityGB }
#文字変換
if ($ScsiLun[$i].IsLocal) { $ScsiLun_IsLocal = "True" } else { $ScsiLun_IsLocal = "False" }
if ($ScsiLun[$i].MultipathPolicy) { $ScsiLun_MultipathPolicy = "True" } else { $ScsiLun_MultipathPolicy = "False" }
#出力
Write-Host "`t" $ScsiLun[$i].LunType.PadRight(10),
$ScsiLun[$i].ConsoleDeviceName.PadRight(45),
$ScsiLun[$i].Model.PadRight(25),
$ScsiLun[$i].SerialNumber.PadRight(15),
$ScsiLun[$i].Vendor.PadRight(15),
$ScsiLun_CapacityGB.PadRight(15),
$ScsiLun_MultipathPolicy.PadRight(20),
$ScsiLun_IsLocal.PadRight(10),
$storage_device[$i].PathSelectionPolicy.PadRight(25),
$storage_device[$i].StorageArrayType.PadRight(15)
}
実行結果
アダプタの情報取得
下記の画面に表示されるアダプタに関する情報を取得する。
表示コマンド
PS C:\tmp\a> Get-VMHostHba | select *
実行結果
情報取得用スクリプト
$VMHost_Hba = Get-VMHostHba | Sort-Object Device
Write-Host ""
Write-Host "【アダプタ】"
Write-Host "`t Device".PadRight(17) "Name".PadRight(15) "Model".PadRight(55) "Driver".PadRight(15) "Type".PadRight(15)
Write-Host "`t =========================================================================================================================="
for ($i=0; $i -lt $VMHost_Hba.Count; $i++) {
#出力
Write-Host "`t" $VMHost_Hba[$i].Device.PadRight(15),
$VMHost_Hba[$i].Name.PadRight(15),
$VMHost_Hba[$i].Model.PadRight(55),
$VMHost_Hba[$i].Driver.PadRight(15),
$VMHost_Hba[$i].Type
}
実行結果