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

Запланированная задача для отображения окна консоли при входе в систему, но все еще запускается, когда не вошел

Возможно ли (и если да, то как) настроить задачу (консольное приложение) в Server 2008, чтобы она запускалась как при входе пользователя в систему, так и при отсутствии входа в систему, И - если пользователь вошел в систему in (локально или через RDP) - отображается ли консоль на экране во время работы программы?

Т.е. программа должна работать в определенном пользовательском контексте и записывать сообщения о состоянии в стандартный вывод, который переходит в стандартное окно консоли. Это окно консоли либо отображается (если определенный пользователь в настоящее время вошел в систему локально или через RDP), либо не отображается (но приложение все еще выполняется).

У меня есть доступ к источнику консольного приложения, поэтому, если ему нужен дополнительный код (например, открытие нового окна консоли или что-то еще), то это не проблема.

На данный момент я могу настроить задачу как «Запускать, только когда пользователь вошел в систему», которая будет запускать приложение, когда пользователь вошел в систему (локальный или RDP), и затем я могу видеть сообщения о состоянии, или я могу установить его вверх как «Запускать независимо от того, вошел ли пользователь в систему или нет», и никаких выходных данных состояния не видно - даже если пользователь вошел в систему.

Я бы подошел к этому несколько иначе. Я бы перенаправил вывод консольной программы в файл журнала.

for /f "usebackq tokens=1,2,3,4,5,6,7 delims=/:. " %%a in (`echo %DATE% %TIME%`) do set NOW=%%d%%b%%c_%%e%%f%%g
myprogram.exe > c:\logs\job_%NOW%.log 2>&1
rem if user is logged in, display the file
type c:\logs\job_%NOW%.log

Если никто не вошел в систему, последняя команда type не имеет значения. Как было предложено ранее, используйте параметр «Запускать независимо от того, вошел ли пользователь в систему».

Вы можете сделать 2 отдельные запланированные задачи: 1 для входа в систему и 1 для отсутствия входа в систему. в General вкладка есть возможность Run only while logged on ИЛИ в Run whether logged on or not.

Затем для запуска задачи, когда не вошел: Если на сервере есть таймер выхода из системы (например, после 10 минут простоя), вы можете настроить Conditions к Start the task only if the computer is idle for X minutes после 10 минут простоя (при выходе из системы из-за бездействия) и Stop if the computer ceases to be idle (когда вы снова войдете в систему).

У меня нет Server 2008 для тестирования, но во всех предыдущих версиях вы просто запускаете задачу как пользователь, который будет входить в систему. Colsole / GUI по-прежнему будет работать, когда пользователь не вошел в систему, но не будет виден.