1

我正在循环浏览计算机列表并检查磁盘空间。我想将此信息格式化为一个可以添加为电子邮件正文的数组。我希望将整个输出放入一封电子邮件,我知道如何发送每封电子邮件。

这是代码:

$ComputerList = IMPORT-CSV listofcomputers.txt
$tableFragment = ForEach ($Computer in $ComputerList){
$Name = $Computer.Name
$disk = Get-WmiObject Win32_LogicalDisk -ComputerName $Name -Filter "DeviceID='C:'" | Select-Object Size,FreeSpace
$b = ($disk.Size / 1073741824)
$a = ($disk.FreeSpace / 1073741824)
$a = "{0:N1}" -f $a
$b = "{0:N1}" -f $b
if($disk.FreeSpace -lt 10737418240){Write-Host Disk space on $Name is LOW.  Only $a GB remaining. -foregroundcolor "magenta"}
else{Write-Host Free disc space on $Name is $a GB, out of $b GB.}
}
4

1 回答 1

2

改变这一点:

if($disk.FreeSpace -lt 10737418240){Write-Host Disk space on $Name is LOW.  Only $a GB remaining. -foregroundcolor "magenta"}
else{Write-Host Free disc space on $Name is $a GB, out of $b GB.}

对此:

if($disk.FreeSpace -lt 10737418240){ $body += "Disk space on $Name is LOW.  Only $a GB remaining.`r`n"}
else{ $body += "Free disc space on $Name is $a GB, out of $b GB.`r`n"}

您不需要字符串数组,因为 Send-MailMessage 命令的 Body 参数需要一个字符串。

如果你想要一些头信息,那么在你的脚本顶部声明 $body:

$body = "Some header info.`r`n"
于 2013-10-03T17:51:04.593 回答