я сейчас использую:
$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 = Get-WmiObject WIN32_logicaldisk | sort -desc freespace | select -first 3 | формат-таблица -autosize идентификатор устройства, тип устройства, имя провайдера, свободное пространство, размер, имя тома | вне строки
Я только что попробовал это на своем ПК, и это сработало.
Чтобы узнать, почему это работает, см .:
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();
Вы могли бы адаптироваться из моего сообщения в эта тема.
PowerShell берет поток объектов из Get-WMIObject, сортирует и выбирает подмножество, а затем создает текстовое представление остальных объектов, а не просто работает с чистым текстом. Если вы хотите получить чистое текстовое воспроизведение, вы можете просто изменить свой вызов на format-table, чтобы вместо этого использовать select-object.