Eu criei um script para obter informações sobre o disco rígido de nossos servidores. O script usa o WMI para consultar a classe Win32_LogicalDisk e retorna "Tamanho (GB)", "Espaço livre (GB)" e "Espaço livre (%)" para cada ID de dispositivo (disco local) de cada servidor.
Quero classificar por "Espaço livre (%)" para cada ID de dispositivo em cada servidor. Quando classifico por "Espaço livre (%)", ele não mostra todos os IDs do dispositivo. Um servidor possui unidades C: e D:, mas apenas a unidade D: é mostrada na saída. Se eu remover o Sort-Object "Free Space (%)"
, ele mostrará todos os IDs de dispositivo para cada servidor.
Alguém pode me ajudar com esse roteiro?
$computers = C:\users\mtrajano\documents\powershell\scripts\list.txt
$logicalDisk = Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" -Computer $computers |
Select-Object SystemName, DeviceID,
@{ Name = "Size (GB)"; Expression = { "{0:N1}" -f ($_.size / 1GB) } },
@{ Name = "Free Space (GB)"; Expression = { "{0:N1}" -f ($_.freespace / 1GB) } },
@{ Name = "Free Space (%)"; Expression = { "{0:P2}" -f (($_.freespace / 1GB) / ($_.size / 1GB)) } } |
Sort-Object "Free Space (%)" |
ConvertTo-Html |
Out-String
$messageParameters = @{
To = ""
From = ""
Subject = ""
Body = $logicalDisk
SmtpServer = ""
}
Send-MailMessage @messageParameters -BodyasHtml
Tags windows powershell scripting