使用powershell AzureVM将列添加到CSV文件

时间:2018-03-06 15:19:04

标签: powershell azure calculated-columns

不确定如何解释这一点,我们正在对Azure上的磁盘使用情况进行评估,以降低成本。我们正在尝试评估每个虚拟机上的空间并减少磁盘

我想根据可用空间在其中添加推荐列,如果可用空间大于90%,则添加注释“考虑调整大小”,如果小于15%,则“考虑磁盘清理”。 / p>

我的脚本工作正常,但它没有添加注释,首先我尝试了这个...

$computers = (Get-AdComputer -Filter "name -like 'VM-*'").Name | Sort-Object
foreach ($computer in $Computers) 
{
$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='FreeSpace (%)';e={[int](($_.FreeSpace) / ($_.capacity) * 100.0)}}
           if ('FreeSpace (%)' -gt 85)
           {
           Write-Output "Disk Usage Low, Consider Resizing Options"
           }
           else 
           {
           Write-Output "Disk Usage High"
           }
$info  | Export-Csv "c:\temp\tempfiles\question.csv" -Append
}

那不起作用,然后我尝试添加另一个部分,我得到真或假,这似乎有用..一个在下面,但我需要dd推荐..

$computers = (Get-AdComputer -Filter "name -like 'VM-*'").Name | Sort-Object
foreach ($computer in $Computers) 
{
$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='FreeSpace (%)';e={[int](($_.FreeSpace) / ($_.capacity) * 100.0)}},
           @{n='Recommendation';e={[String] ($_.FreeSpace -gt 90)}}

$info  | Export-Csv "c:\temp\tempfiles\question.csv" -Append
}

希望这是有道理的。

提前致谢:)

1 个答案:

答案 0 :(得分:2)

e代表Expression。所以你应该能够在那里使用一个表达式,使用原始对象属性(即不是你的自定义属性名称,如FreeSpace (%)

$computers = (Get-AdComputer -Filter "name -like 'VM-*'").Name | Sort-Object
foreach ($computer in $Computers) 
{
$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='FreeSpace (%)';e={[int](($_.FreeSpace) / ($_.capacity) * 100.0)}},
           @{n='Recommendation';e={
                if((($_.FreeSpace) / ($_.capacity) * 100.0) -gt 90){
                    "Disk Usage Low, Consider Resizing Options"
                }elseif((($_.FreeSpace) / ($_.capacity) * 100.0) -gt 75){
                    "Something else"
                }else{
                    "Disk Usage High"
                }
            }

$info  | Export-Csv "c:\temp\tempfiles\question.csv" -Append
}