我目前正在使用:
$emailFrom = "[email protected]"
$emailTo = "[email protected]"
$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
你可以试试这个:
你可能会适应我在这个线程中的帖子。
PowerShell 从 Get-WMIObject 获取对象流,对子集进行排序和选择,然后生成剩余对象的文本再现——而不仅仅是处理纯文本。如果您想获得纯文本再现,您可以更改对 format-table 的调用以改用 select-object。