1

У меня есть задача, которая работает на Windows Server 2016. Учетная запись пользователя, под которой запускается задача, всегда входит в систему. Когда задача запускается, она запускает FBCMD.exe, которая является программой FinalBuilder, которая выполняет некоторые параметры. Когда я запускаю эту программу через командный файл, я вижу окно. Но когда планировщик задач запускает эту программу с точно такими же параметрами, она запускается в фоновом режиме. Я хочу, чтобы это окно показывалось. Фактически, когда мы запустили это в win7, это показало. Вот изображения настройки задачи. Можно ли это сделать?

2 ответа2

1

Запустите запланированное задание интерактивно

Просто установите флажок Run only when user is logged on вкладке « Общие » и в разделе «Параметры безопасности », чтобы убедиться, что процесс запускается визуально / в интерактивном режиме во время сеанса.

Поскольку вы говорите:« Учетная запись пользователя, под которой запускается задача, всегда вошла в систему », и ожидаемый результат для экрана будет виден, когда задание Планировщика задач выполняет процесс, тогда вам нужно всего лишь выполнить эту простую настройку, чтобы получить ожидаемый результат. результат.


Дополнительные ресурсы

0

Условно выполнять запланированное задание интерактивно или нет

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

По сути, это решение потребует нескольких простых вещей. , ,

  1. Определите запланированное задание для интерактивного запуска с помощью « Run only when user is logged on параметр « Запускать», если учетная запись пользователя вошла в систему без заданных триггеров.
  2. Определите другой запланированный запуск неинтерактивно с параметром Run whether user is logged on or not выбран ли параметр запуска, если учетная запись пользователя не вошла в систему без заданных триггеров.
  3. Создайте пакетный сценарий (пример ниже), который будет проверять, вошла ли учетная запись пользователя в систему или нет, и на основе результата выполнить запланированную интерактивную или неинтерактивную задачу
  4. Определите другой запланированный запуск неинтерактивно с параметром Run whether user is logged on or not выбран ли параметр запуска, если учетная запись пользователя не зарегистрирована с триггерами, определенными для частоты, с которой необходимо запускать задания независимо от того, интерактивен он или нет - так будет запланированным заданием, которое выполняет одно из двух заданий из # 1 или # 2 выше.

Пакетный скрипт

При этом используется query-session и findstr, чтобы проверить, подписано ли соответствующее имя пользователя на консоли компьютера. Затем он использует задачи задач для выполнения запланированных интерактивных или неинтерактивных задач, которые вы определяете без каких-либо триггеров.

Вам нужно изменить значение SET username= value, чтобы оно было таким, которое вам нужно для проверки имени учетной записи, которое необходимо для интерактивного запуска с этим сеансом, если он существует (например, <Domain>\<Username>)

@ECHO OFF
SET username=user

query session | findstr /I /M "%username%" | findstr /I /M "console"
IF ERRORLEVEL 0 GOTO :InteractiveTask
GOTO :NonInteractiveTask

:InteractiveTask
SCHTASKS /Run /TN "\_SuperUserTesting\FinalBuilder_i"
EXIT

:NonInteractiveTask
SCHTASKS /Run /TN "\_SuperUserTesting\FinalBuilder_n"
EXIT

Важное замечание: Вам необходимо убедиться, что полный путь к месту и имени задачи указан с помощью ключа /TN команд schtasks, чтобы указать правильное местоположение задачи и пути в соответствии с иерархической структурой, в которой вы сохранили каждую из них с помощью Планировщика задач - см. Ниже на экране кадры для дальнейшего уточнения.

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


Запланированные задачи

Для интерактивного запланированного задания должна быть включена опция « Run only when user is logged on вкладке « Общие ».

Неинтерактивная задача должна иметь опцию Run whether user is logged on or not на вкладке Общие, чтобы ее можно было запустить, если эта учетная запись не зарегистрирована на компьютере.

Задача, которая проверяет, чтобы определить, какая запланированная задача, запускаемая с помощью пакетного сценария, должна иметь опцию Run whether user is logged on or not на вкладке Общие, чтобы ее можно было запустить. Помимо этого, вы можете настроить триггеры с любым графиком, который вы пожелаете.


Дополнительные ресурсы

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .