Desejo extrair o espaço em disco disponível de vários servidores e sinalizar os valores com pouco espaço em disco (<20 GB para fins de exemplo). Estou tendo problemas para sinalizar os valores baixos.
Para puxar o espaço em disco, eu corro
$Array = gwmi win32_logicaldisk -ComputerName ComputerName | Select DeviceId, @{n="Size";e={[math]::Round($_.Size/1GB,2)}},@{n="FreeSpace";e={[math]::Round($_.FreeSpace/1GB,2)}}
Que retorna os dados conforme o esperado;
DeviceId Size FreeSpace
-------- ---- ---------
A: 0 0
C: 79.9 14.3
D: 701 72.76
Z: 0 0
Posso então consultar $Array.Freespace para o seguinte;
0
14.3
72.76
0
Como desejo sinalizar qualquer valor menor que 20 nesta lista, tentei executar o código abaixo;
ForEach ($Value IN $Array.FreeSpace)
{IF ($Value -lt 20) {$Value = "WARNING"}
No entanto, não há alterações no meu array depois de executar isso. Acredito que o problema esteja dentro $Value = "Warning"
- essa é a maneira correta de alterar cada valor individual em um ForEach Loop?
Como resultado final, quero que os resultados mostrem o seguinte quando eu consultar $Array
:
DeviceId Size FreeSpace
-------- ---- ---------
A: 0 WARNING
C: 79.9 WARNING
D: 701 72.76
Z: 0 WARNING
Qualquer ajuda muito apreciada, obrigado.