获取百分比值并添加到表中

时间:2018-02-20 23:40:03

标签: powershell

我一直在尝试从可用磁盘空间创建百分比并将其添加到每个磁盘,因此我们可以真实地了解可以减少哪些磁盘和磁盘使用情况。

我的脚本是:

$Computers = (Get-AdComputer -Filter "name -like 'My-VM-*'").Name | Sort-Object
foreach ($computer in $Computers) 
{
 gwmi Win32_volume -Computer $Computer -Filter 'DriveType = 3' `
  | select PsComputerName, DriveLetter, Label,
           @{n='Capacity';e={[int]($_.capacity/1GB)}}, 
           @{n='FreeSpace';e={[int]($_.FreeSpace/1GB)}} | Format-Table -Groupby PsComputerName |`
            Out-File c:\temp\disk_label.txt -Append
          }  

我可以使用以下方法获得百分比,但是我不知道如何获取freedisk值和容量值,然后我可以将其除以100乘以获得无磁盘百分比

$free = 20
$capacity = 50

$Freedisk = (($free / $capacity) * 100)

Value = $freedisk

请你让我知道我哪里出错......

提前致谢

1 个答案:

答案 0 :(得分:1)

我不明白这个问题,因为你似乎已经掌握了所有信息。您是否编写了上面的代码或从某处复制了它(换句话说,您是否完全了解它)。

您可以通过调整以下代码轻松地将PercentFree添加到您的输出中。在存在复杂管道的所有情况下,我将其展开为变量并调试ISE / VSCode中的每个部分。

$computer = '127.0.0.1'
$vol = gwmi Win32_volume -Computer $Computer -Filter 'DriveType = 3'
$vol

$info = $vol | select PsComputerName, DriveLetter, Label,
           @{n='Capacity';e={[int]($_.capacity/1GB)}}, 
           @{n='FreeSpace';e={[int]($_.FreeSpace/1GB)}},
           @{n='PercentFree';e={[int](($_.FreeSpace) / ($_.capacity) * 100.0)}}

$info