|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Запуск бат файла на сервере через эл. письмо |
|
|
PowerShell - [решено] Запуск бат файла на сервере через эл. письмо
|
Пользователь Сообщения: 69 |
Добрый день, всем
На работе застряла задачка, нужна помощь по написанию скрипта для отправки команды через эл. письмо для запуска бат файлов для восстановления базы на сервере Задача: есть сервер1 там уже написан скрипт на BAT. компы все в AD. Есть Exchange. Нужно при отправке письма от любого пользователя на определенного получателя (пример bat@example.com) он получает его обрабатывает если в сообщение содержится команда (пример fas/start ![]() Можно автоматом очищать почту ну или как удобно чтобы он знал когда запускать. Еще нужно избежать того чтобы не устанавливать на сервер OUTLOOK! Можно выбрать любой другой язык написания скрипта VBS/BAT/PS/CMD/C#/++ Заранее всех благодарю кто поможет в решений данной задачи! P.S. если задача написано сумбурно простите комментируйте и постараюсь подробно описать. |
|
Отправлено: 13:23, 13-04-2015 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Скачиваем EWS 2.2 и устанавливаем - http://www.microsoft.com/en-us/downl....aspx?id=42951
# Почтовый ящик $ews = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService("Exchange2013_SP1") $ews.Credentials = New-Object System.Net.NetworkCredential('UserName', 'P@$$w0rd1', "DOMAIN") $ews.AutodiscoverUrl("bat@example.com") # Папка входящие $inboxFolderName = [Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox $inboxFolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($ews,$inboxFolderName) # Элементы $itemView = New-Object -TypeName Microsoft.Exchange.WebServices.Data.ItemView(1000) $dateTimeItem = [Microsoft.Exchange.WebServices.Data.ItemSchema]::DateTimeReceived # Фильтр сегодня $ToDay = (Get-Date).Date $searchFilter = New-Object -TypeName Microsoft.Exchange.WebServices.Data.SearchFilter+IsGreaterThanOrEqualTo($dateTimeItem,$ToDay) $foundItems = $ews.FindItems($inboxFolder.Id,$searchFilter,$itemView) # Выполняем скрипт $foundItems | Foreach { $i = $_ if($i.Subject -match "Run") { Invoke-Expression "C:\Script\script.bat" $i.Delete("MoveToDeletedItems") } } |
Отправлено: 14:37, 13-04-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Kazun,
Добрый день, спасибо за помощь! у меня возникли вопросы. 1. Установил EWS 2.2 , какие настройки надо ему, в службах запускать надо? 2. Этот скрипт мне надо настроить в планировщик? 3. в PS скрипте (("Exchange2013_SP1")) что нужно прописать? |
Отправлено: 07:16, 15-04-2015 | #3 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать 1. Никакие
2. Не знаю, можете вручную, можете нанять человека, чтобы запускал 3. Логично, что версию Exchange сервера https://msdn.microsoft.com/en-us/lib...exchg.80).aspx Exchange2007_SP1 Exchange Server 2007 Service Pack 1 (SP1). Exchange2010 Exchange Server 2010. Exchange2010_SP1 Exchange Server 2010 Service Pack 1 (SP1). Exchange2010_SP2 Exchange Server 2010 Service Pack 2 (SP2). Exchange2013 Exchange Server 2013. Exchange2013_SP1 Exchange Server 2013 Service Pack 1 (SP1). 4. Для импорта модуля использовать 5. $i.Subject -match "Run" - запуск скрипта, если заголовок содержит слово Run |
Отправлено: 09:23, 15-04-2015 | #4 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Kazun,
Я разобрался спасибо, вот только 2-е ошибки! ![]() Exception calling "Bind" with "2" argument(s): "Value cannot be null. Parameter name: folderId" At line:9 char:66 + $inboxFolder = [Microsoft.Exchange.WebServices.Data.Folder]::Bind <<<< ($ews,$inboxFolderName) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException Exception calling "FindItems" with "3" argument(s): "The element at position 0 is invalid Parameter name: parentFolderIds" At line:19 char:29 + $foundItems = $ews.FindItems <<<< ($inboxFolder.Id,$searchFilter,$itemView) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException |
|
Отправлено: 10:13, 15-04-2015 | #5 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Value cannot be null. - Предположительно проблема с $ews. Приведите вывод $ews.
|
Отправлено: 10:31, 15-04-2015 | #6 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать |
Отправлено: 10:40, 15-04-2015 | #7 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Kazun,
А если дополнить? 1. К примеру когда запустит батник он письмо отправлял мне что скрипт запущен! и дальше продолжал работать! 2. А как быть если 3-сервера? они не будут ругаться и драться за одно письмо? Спасибо заранее! |
Отправлено: 11:16, 15-04-2015 | #8 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать 1. К примеру когда запустит батник он письмо отправлял мне что скрипт запущен! и дальше продолжал работать! - Добавить в батник команду для отправки письма, чтобы наверняка знать, что bat запустился
2. А как быть если 3-сервера? они не будут ругаться и драться за одно письмо? - Кто первый получил, тот и выполнил и в последующим удалил письмо. Вариантов много, например:
|
Отправлено: 11:22, 15-04-2015 | #9 |
Пользователь Сообщения: 69
|
Профиль | Отправить PM | Цитировать Kazun,
Спасибо ![]() |
Отправлено: 12:27, 15-04-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - запуск бат файла с указанием месторасположения окна | Тимур_Макенов@vk | Скриптовые языки администрирования Windows | 25 | 17-05-2019 16:23 | |
CMD/BAT - Запуск cmd-файла на сервере с веб-сраницы | molecul | Скриптовые языки администрирования Windows | 2 | 08-05-2012 21:57 | |
VBS/WSH/JS - Письмо на почту через прокси | lohi1234567 | Скриптовые языки администрирования Windows | 3 | 26-10-2010 11:11 | |
CMD/BAT - Скачивание файла и проверка на отличия от файла на сервере. | maslovt | Скриптовые языки администрирования Windows | 2 | 08-05-2010 19:54 | |
CMD/BAT - Как из бат-файла проверить наличие файла по ссылке, не скачивая файл ? | mitiya | Скриптовые языки администрирования Windows | 2 | 27-06-2008 20:50 |
|