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)}}
1
задан 22 March 2016 в 12:57
1 ответ

Во-первых, отсутствует подчеркивание между символом $ и точкой. Чтобы получить доступ к свойствам объекта, переданного по конвейеру, вы должны использовать: $ _. 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)}}
1
ответ дан 3 December 2019 в 23:49

Теги

Похожие вопросы