Créer une Table avec des Variables en PowerShell

Je suis encore à apprendre mon chemin autour de scripts PowerShell et je travaille sur un script pour calculer le pourcentage d'espace libre de mes serveurs de fichier et l'envoyer un e-mail de notification quand un disque atteint 10% d'espace libre restant ou moins (ce qui arrive environ une fois par mois, et j'ai besoin de savoir avant que je reçois par e-mail à partir du client qu'il n'y a pas de plus d'espace). À compter de maintenant, le script fonctionne très bien et est configuré pour exécuter chaque matin, via des Tâches de Windows. Mais la mise en forme actuelle que j'ai en place pour la sortie se fait manuellement. Je me demandais si il y avait moyen de passer les variables à partir des renseignements qui ont été recueillis et sont calculées avec la Get-WmiObject fonction. J'ai essayé le Format-Table et tenté de jouer avec les tables de hachage, mais en vain. Toutes les idées seraient utiles. Merci.

# Set Parameters
$file = "c:\location\Lowdisk.txt"
Clear-Content $file
$emailTO = "[email protected]"
$emailFrom = "[email protected]"
$smtpServer = "smtpServer"
$diskspace = "3"
$computers = ("FSCN01","FSCN02","FSCN03","FSCN04")
echo "Server Name       Drive       Drive Size       Free Space       % Free" >> $file
$i = 0
# Get Drive Data
foreach($computer in $computers)
{
$drives = Get-WmiObject -ComputerName $computer Win32_LogicalDisk | Where-Object {$_.DriveType -eq 3}
foreach($drive in $drives)
{
$ID = $drive.DeviceID
$size1 = $drive.size / 1GB
$size = "{0:N1}" -f $size1
$free1 = $drive.freespace / 1GB
$free = "{0:N1}" -f $free1
$a = $free1 / $size1 * 100
$b = "{0:N1}" -f $a
# Monitor for drive free space % under 10%
if ($b -lt 10)
{
echo "$computer         $ID          $size         $free         $b" >> $file
$i++
}
}
}
# Send notification if script finds more than 0 drives with less than 35% free space 
if ($i -gt 0) 
{ 
foreach ($user in $emailTo) 
{ 
echo "Sending Email Notification to $user" 
$smtp = New-Object Net.Mail.SmtpClient($smtpServer) 
$subject = "Server with Low Disk Space" 
foreach ($line in Get-Content $file) 
{ 
$body += "$line `n" 
} 
Send-MailMessage -to $user -From $emailFrom -Attachments $file -SmtpServer $smtpServer -Subject $Subject -Body $body 
$body = "" 
} 
} 

OriginalL'auteur user3140412 | 2014-02-17