![]() |
Запуск бат файла на сервере через эл. письмо
Добрый день, всем
На работе застряла задачка, нужна помощь по написанию скрипта для отправки команды через эл. письмо для запуска бат файлов для восстановления базы на сервере Задача: есть сервер1 там уже написан скрипт на BAT. компы все в AD. Есть Exchange. Нужно при отправке письма от любого пользователя на определенного получателя (пример bat@example.com) он получает его обрабатывает если в сообщение содержится команда (пример fas/start =) ) то начинает работать скрипт. И так каждую Можно автоматом очищать почту ну или как удобно чтобы он знал когда запускать. Еще нужно избежать того чтобы не устанавливать на сервер OUTLOOK! Можно выбрать любой другой язык написания скрипта VBS/BAT/PS/CMD/C#/++ Заранее всех благодарю кто поможет в решений данной задачи! P.S. если задача написано сумбурно простите комментируйте и постараюсь подробно описать. |
Скачиваем EWS 2.2 и устанавливаем - http://www.microsoft.com/en-us/downl....aspx?id=42951
Код:
# Почтовый ящик |
Kazun,
Добрый день, спасибо за помощь! у меня возникли вопросы. 1. Установил EWS 2.2 , какие настройки надо ему, в службах запускать надо? 2. Этот скрипт мне надо настроить в планировщик? 3. в PS скрипте (("Exchange2013_SP1")) что нужно прописать? |
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. Для импорта модуля использовать Код:
# Подключение модуля |
Kazun,
Я разобрался спасибо, вот только 2-е ошибки! :dont-know Код:
Exception calling "Bind" with "2" argument(s): "Value cannot be null. |
Value cannot be null. - Предположительно проблема с $ews. Приведите вывод $ews.
|
Kazun,
Огромное спасибо :clapping: :yahoo: Все получилось! сам ошибку допустил: Код:
$inboxFolderName = [Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox |
Kazun,
А если дополнить? 1. К примеру когда запустит батник он письмо отправлял мне что скрипт запущен! и дальше продолжал работать! 2. А как быть если 3-сервера? они не будут ругаться и драться за одно письмо? Спасибо заранее! |
1. К примеру когда запустит батник он письмо отправлял мне что скрипт запущен! и дальше продолжал работать! - Добавить в батник команду для отправки письма, чтобы наверняка знать, что bat запустился
2. А как быть если 3-сервера? они не будут ругаться и драться за одно письмо? - Кто первый получил, тот и выполнил и в последующим удалил письмо. Вариантов много, например:
|
Kazun,
Спасибо :) |
Kazun,
Как можно применить последовательность для этого кода? Код:
# Написать письмо о начале скрипта нужно так чтобы после проверки почты и после запуска скрипта он параллельно отправлял письмо (используя этот код или что лучше) Модули и почтовый ящик уже выше используется |
И в чем проблема?
Добавить код после строки - $i.Delete("MoveToDeletedItems"). |
Kazun,
Огромное спасибо =) |
Kazun,
При выполнение скрипта Код:
# Написать письмо о начале скрипта Код:
Name : с send-mailmessage не работает :help: :dont-know |
Почему вывод результата команды $message.SendAndSaveCopy без скобок, когда должны быть со скобками, как выше $message.SendAndSaveCopy()?
|
Время: 18:56. |
Время: 18:56.
© OSzone.net 2001-