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

Как запланировать запуск командного файла на рабочем столе в win 2008 R2

У меня есть несколько сценариев резервного копирования командных файлов, которые я запускал в xp, и я перешел на сервер Windoes Server 2008 R2, где он не запускается впереди при планировании с помощью диспетчера задач. Я изо всех сил пытался заставить его работать в запланированное время с помощью диспетчера задач, и он работает, но не показывает процесс (работает в фоновом режиме). Еще я знаю возможность отображать все запущенные задачи. Я искал в гугле и пока не нашел. Кто-нибудь знает, как заставить диспетчер задач выполнять .bat-файл на рабочем столе (открытие командной строки) в Windows Server 2008 R2 ?. Я запланировал его запуск от имени того же пользователя рабочего стола !.

Спасибо!

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

  1. Вы можете проверить, успешно ли выполнено запланированное задание.
  2. Вы можете создать строку в конце вашего командного файла, чтобы записать команду в файл, чтобы показать, что он выполнен echo Script finished %date% %time% >> c:\batch\backupScript.log .
  3. Вы можете запустить его вручную.

Задачи могут запускаться в интерактивном режиме только при использовании Запускать только когда пользователь вошел в систему вариант. Вот выдержка из файла справки Планировщика заданий:

Вы можете указать, что задача должна выполняться, даже если учетная запись, под которой запланировано выполнение задачи, не входит в систему при запуске задачи. Для этого выберите переключатель с надписью Запускать независимо от того, вошел ли пользователь в систему или нет. Если этот переключатель установлен, задачи не будут выполняться в интерактивном режиме. Чтобы задача выполнялась в интерактивном режиме, выберите Запускать только когда пользователь вошел в систему переключатель.

Я немного поэкспериментировал с psexec -i но не повезло, извините.

Вы можете найти список запущенных запланированных задач с помощью schtasks.exe, например:

schtasks /query | find "Running"

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

@echo off
for /f "delims=," %%i in ('schtasks /query /fo csv ^| find "Running"') do (
    for /f "delims=, tokens=9" %%j in ('schtasks /query /fo csv /v /tn %%i ^| find /v "Next Run Time"') do (
        echo %%~i   %%j
    )
)