Назад | Перейти на главную страницу

Как отправить по электронной почте вывод запланированных задач?

В системах Unix служба запланированных задач отправляет по электронной почте любые выходные данные, создаваемые запланированной задачей. Если вывод не производится, электронное письмо не отправляется. Как я могу сделать то же самое в Windows Server 2003 или 2008? Есть ли способ вызвать командный файл или исполняемый файл, который будет запускать мою задачу, захватывать выходные данные и отправлять их по электронной почте, только если они есть?

Если вы предлагаете решение PowerShell, обратите внимание, что у меня есть только PowerShell 1.0.

Для этого я использую autoIT. Он очень прост в использовании и имеет встроенную функцию. Файлы справки полны примеров и фрагментов, которые делают именно то, что вы ищете. Если бы у меня была более подробная информация о поставленной задаче, я бы получил более конкретный ответ.

Вы сможете найти здесь то, что вам нужно.

По крайней мере, в Windows Server 2008 вы можете использовать следующий маршрут:

  1. Настройте обычную задачу с помощью планировщика задач. Если вам нужно записать вывод вашей программы, я предполагаю, что это программа командной строки. Ты можешь перенаправить вывод команды из командной строки Windows в файл, как в системах Unix. Для этого я бы написал пакет, который запускает мою команду и фиксирует ее вывод:

    @ECHO OFF
    REM Run command
    mycmd.exe > outfile.txt
    
    REM Check that outfile exists
    IF NOT EXIST outfile.txt (
        @echo File does not exist
        exit 2
    )
    
    REM Compare outfile to a known empty file
    TYPE nul >  blank.txt
    FC outfile.txt blank.txt > nul
    
    REM Check result, and remove blank file.
    IF errorlevel 1 (
        del blank.txt
        @echo File is not empty
        exit 0
    ) ELSE (
        del blank.txt
        @echo File is empty
        exit 1
    )
    
  2. Запланированные задачи регистрируются в журнале событий приложений и служб в разделе Microsoft> Windows> Планировщик заданий> Работа.

    Затем вы можете создать вторую задачу, которая возникает при добавлении записи в этот журнал.

    Вы должны соответственно установить триггер действия. Что вам нужно сделать, так это создать фильтр событий для 201 события (действие завершено), чьи имена задач соответствуют имени вашей задачи, которая запускает указанный выше сценарий, и чей код результата равен 0. Должна быть возможность настроить с помощью планировщика задач. UI, или вы можете использовать фильтрацию XPath.

    Затем установите действие этой задачи на «Отправить электронное письмо» и установите необходимые параметры. В качестве имени прикрепленного файла укажите путь к outfile.txt, и все готово.

  3. Вы можете использовать тот же метод для обработки кодов возврата 1 и 2, чтобы при необходимости предупредить о пустом или отсутствующем файле вывода.

Довольно просто, не так ли? : D Заставляет меня любить Linux все больше и больше с каждым днем.

редактировать Если у вас есть почтовая программа, которая работает из командной строки, вы можете просто вызвать ее из сценария, запускающего команду, что устраняет необходимость в создании задачи на основе событий.