Windows

Powershell - 電子郵件可用空間資訊

  • August 19, 2010

我目前正在使用:

$emailFrom = "user@host.com"
$emailTo = "destination@host.com"
$subject = "subject"
$body = "message"
$smtpServer = "mail.host.com"
$smtp = new-object Net.Mail.SmtpClient($smtpServer)
$smtp.Send($emailFrom, $emailTo, $subject, $body)

而且我知道通過以下命令我可以找出我所有硬碟上的可用空間:

Get-WmiObject WIN32_logicaldisk | sort -desc freespace | select -first 3 | format-table -autosize deviceid,devicetype,providername,freespace,size,volumename;

當我嘗試這樣做時:

$body = Get-WmiObject WIN32_logicaldisk | sort -desc freespace | select -first 3 | format-table -autosize deviceid,devicetype,providername,freespace,size,volumename;

但我在電子郵件中得到的只是以下內容:

   Microsoft.PowerShell.Commands.Internal.Format.FormatStartData Microsoft.PowerShell.Commands.Internal.Format.GroupStartData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData 
Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData Microsoft.PowerShell.Commands.Internal.Format.GroupEndData Microsoft.PowerShell.Commands.Internal.Format.FormatEndData

如何使用 powershell 通過電子郵件獲取我的可用空間???

嘗試:

$body = 獲取 WmiObject WIN32_logicaldisk | 排序-desc 自由空間| 選擇-前 3 | format-table -autosize deviceid,devicetype,providername,freespace,size,volumename | 串外

我剛剛在我的電腦上嘗試過,它確實有效。

有關此工作原理的一些背景資訊,請參見:

http://blogs.msdn.com/powershell/archive/2006/04/25/how-does-select-string-work-with-pipelines-of-objects.aspx

JR

你可以試試這個:

$body_array = Get-WmiObject WIN32_logicaldisk | sort -desc freespace | select -first 3 | format-table -autosize deviceid,devicetype,providername,freespace,size,volumename;
$body = $body_array.ToString();

引用自:https://serverfault.com/questions/14369