Форум программистов, компьютерный форум, киберфорум
PowerShell
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/26: Рейтинг темы: голосов - 26, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 4

Посоветуйте, как правильно вывести результат команды в тело письма!

24.02.2017, 08:30. Показов 5284. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется задача собирать ежедневно данные с логических дисков всех своих сервероd, и разослать системным администраторам.
Вроде код собрал, но как заставить выводить данные в тело электронной почты не могу сообразить.

PowerShell
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#Определяем все переменные для отправки
$WhatIfPreference = $true
 $Theme = “Free Space all servers” # Первая строчка в теле письма, чтобы понимать о чем речь.
 $Subject = “Free Space all servers” # Тема сообщения
 
$Server = “mail.mail.ru” # SMTP Сервер
 $From = “user@mail.ru” # Адрес отправителя
 $To = “user@mail.ru;" # Получатель
 $pass = ConvertTo-SecureString “пароль” -AsPlainText -Force #Пароль от учетной записи
 $cred = New-Object System.Management.Automation.PSCredential(“AUDIT” , $pass) #Имя пользователя и пароль
 $encoding = [System.Text.Encoding]::UTF8 #Устанавливаем кодировку UTF8 для корректного отображения информации в теле письма
 
# скрипт получит свободное место на компьютерах из списка, который предварительно сохранен в файл "hostlist.txt"
Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" -Computer (Get-Content c:\scripts\hostlist.txt) | Select SystemName,DeviceID,@{Name="size(GB)";Expression={"{0:N1}" -f($_.size/1gb)}},`
                                                                                                                        @{Name="freespace(GB)";Expression={"{0:N1}" -f($_.freespace/1gb)}},`
                                                                                                                        @{Name="usage%";Expression={"{0:N1}" -f(($_.size-$_.freespace)/1gb)}}`
| Format-Table -AutoSize
#Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" -Computer (Get-Content hostlist.txt) | Select SystemName,DeviceID,@{Name="size(GB)";Expression={"{0:N1}" -f($_.size/1gb)}},@{Name="freespace(GB)";Expression={"{0:N1}" -f($_.freespace/1gb)}, @{Name="usages";Expression={"{0:N1}" -f($_.freespace/$_.size)}} | Format-Table -AutoSize
 
 
 
#Отправка письма.
$smtp = new-object Net.Mail.SmtpClient($Server)
$msg = new-object Net.Mail.MailMessage
$msg.From = "user1@mail.ru"
$msg.To.Add("user@mail.ru")
#$msg.To.Add("user@mail.ru")
#$msg.To.Add("user@mail.ru")
$msg.Subject = "Free Space all servers";
$msg.body=$msg
# отправляем сообщение
$smtp.Send($msg)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.02.2017, 08:30
Ответы с готовыми решениями:

Как вывести результат консольной команды
Здравствуйте. Localhost.Ubuntu12.04.Нужно резать видео на превью. Поставил ffmpeg.Выполняю avconv -i /02.flv -an -ss 30 -vframes 1 -y -f...

Вывести результат выполнения команды HELP в текстовый файл так, чтобы у каждой команды был порядковый номер
Всем привет, нужна помощь! Необходимо команду help вывести в текстовый документ, чтобы у каждой команды был свой порядковый номер. ...

При отправке письма тело письма $message не отображается
вот функция атачя $sfile - содержание файла function send($sfile,$filename) { $message = 'attach файил' $boundary...

6
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
24.02.2017, 10:36
asu967, аттач или само тело письма?
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 4
24.02.2017, 10:42  [ТС]
Мне надо не аттач, а результат выполнение команды вывести в тело письма и отправить. Знаю, что нужна переменная $Body но как? Уже голову сломал.
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
24.02.2017, 10:50
asu967, ну дык задается запрос:
PowerShell
1
Get-WmiObject ... | Select-Object ... | Format-Table -AutoSize
так? Добавьте в окончание запроса Out-String, т.е.:
PowerShell
1
Get-WmiObject ... | Select-Object ... | Format-Table -AutoSize | Out-String -OutVariable Body
Или (чтобы не мелькал вывод в хосте):
PowerShell
1
$Body = Get-WmiObject ... | Select-Object ... | Format-Table -AutoSize | Out-String

Не по теме:

Странно, что Вы шлете сообщение без SSL.

0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 4
24.02.2017, 11:02  [ТС]
$Body = Get-WmiObject Win32_LogicalDisk -Filter "DriveType=3" -Computer (Get-Content c:\scripts\hostlist.txt) | Select SystemName,DeviceID,@{Name="size(GB)";Ex pression={"{0:N1}" -f($_.size/1gb)}},`
@{Name="freespace(GB)";Expression={"{0:N 1}" -f($_.freespace/1gb)}},`
@{Name="usage%";Expression={"{0:N1}" -f(($_.size-$_.freespace)/1gb)}}` Format-Table -AutoSize | Out-String
0
Покинул форум
3700 / 1483 / 355
Регистрация: 07.05.2015
Сообщений: 2,903
24.02.2017, 11:12
asu967, предваряйте код парой тэгов [powershell], чтобы проще воспринималось написанное. Ну, что еще подсказать? $Body будет иметь тип String. Собственно, отправляйте сообщение и смотрите на результат.
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 4
24.02.2017, 12:13  [ТС]
После правки строки сообщение отправляться не хочет. Пишет что команда $smtp.Send($msg) не полная.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.02.2017, 12:13
Помогаю со студенческими работами здесь

Как извлечь тело письма?
Как получить тело, писем с определенной темой. Например в ящике куча писем, интересуют письма (Тема + сам текст, без вложений) с темой -...

Как вставить подпись в тело письма
ребята нужна помощь .. вообще не шарю в VBA .. есть просьба .. наковырял в инете код через который можно отправлять письмо нажатием кнопки...

Как правильно вывести результат запроса?
Пытаюсь вытащить значения следующим образом: $arr = mysql_query("SELECT c1, c2, c3 FROM table WHERE c4 = '$c4'"); $arr =...

Как можно изображение вставить в тело письма?
Уважаемые профессионалы ASP! Вот подскажите как можно изображение вставить в тело письма? Причем не ссылку на изображение из инета...

Как прикрепить текст из файла в тело письма
Добрый день. Помогите. Как прикрепить текст из файла в тело письма?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru