powercli math 与 vmware - 数据存储属性除法算法

powercli math 与 vmware - 数据存储属性除法算法

基本上,我得到的 percentage1 列中返回的都是 0。我需要帮助来了解我认为的语法或 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

首先,您缺少 $ 和点之间的下划线。要访问管道对象的属性,您必须使用:$_.ExtensionData.Summary.Capacity

其次,我认为你的计算是错误的:

  • 如果您想要已用空间的百分比,为什么要除以 1GB?仅当您想将字节转换为 GB 时才需要这样做,但百分比始终在 0 到 100 之间,因此不需要 GB 转换。
  • 要计算百分比,您需要一个如下公式:

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)}}

相关内容