Назад | Перейти на главную страницу

powercli math с vmware - арифметика разделения свойств хранилища данных

в основном, я получаю все 0 в столбце "процент1". Мне нужна помощь с синтаксисом или неправильным использованием Round.

Get-Cluster "my_cluster" | Get-VMHost | Get-Datastore | Select Name,@{N="Percentagetest";E={[math]::Round(($_.ExtensionData.Summary.Capacity / $_.ExtensionData.Summary.Freespace)/1GB,3)}}

Во-первых, вам не хватает подчеркивания между символом $ и точкой. Чтобы получить доступ к свойствам объекта, переданного по конвейеру, вы должны использовать: $_.ExtensionData.Summary.Capacity

Во-вторых, я считаю, что ваш расчет неверен:

  • Если вам нужен процент используемого пространства, почему вы делите его на 1 ГБ? Это необходимо только в том случае, если вы хотите преобразовать байты в ГБ, но процент всегда находится в пределах от 0 до 100, поэтому преобразование ГБ не требуется.
  • Чтобы рассчитать процент, вам понадобится такая формула:

FreeSpace_in_percentage = ( freepace / AvailableSpace ) * 100

Итак, ваша команда должна выглядеть так, которая работала в моей среде:

Get-Cluster "my_cluster" | Get-VMHost | Get-Datastore | Select Name,@{N="Percentagetest";E={[math]::Round(($_.ExtensionData.Summary.Freespace/$_.ExtensionData.Summary.Capacity)*100,3)}}