Запустить службу из Планировщика заданий в свернутом виде

Запустить службу из Планировщика заданий в свернутом виде

После создания запланированной задачи после выполненияэтот вопрос Суперпользователя, я могу успешно запустить службу без запроса UAC. Были выбраны следующие параметры:

  • Start a program
  • Program\script"="C:\Windows\System32\net.exe
  • Add arguments (optional)"="start "SERVICE-NAME"

Затем в пакетном файле я вызываю schtasks /run /tn TASK-NAME. После тестирования я создал ярлык для пакетного файла и установил Runопцию Minimised.

Все это работает, за исключением того, что при запуске самой службы появляется развернутое окно командной строки с одной строкой The SERVICE-NAME service is starting. Затем оно исчезает через несколько секунд.

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

решение1

Проблема в том, что когда вы настраиваете ярлык для запуска в свернутом виде, вы запускаете в свернутом виде только ту программу, которая запускает запланированную задачу, а не ту программу, которую выполняет задача. Вам нужна еще одна часть в последовательности запуска машины Rube Goldberg, внесите следующие изменения:

  • Program\script"="C:\Windows\System32\cmd.exe
  • Add arguments (optional)"="/c start /min net start "SERVICE-NAME"

Первый «старт» — это cmd.exe startкоманда, которую мы используем для двух функций:

  1. Запуск net.exeсвёрнут.
  2. Завершите taskeng.exeработу сразу после net.exeзапуска, а не ждите ее завершения.

Обратите внимание, что это решение не идеально, так как taskeng.exeмигание будет кратковременным до net.exeзапуска, но обычно менее секунды.

решение2

Вы можете запустить службу (или любую другую программу) без какого-либо мигания окна,даже не минимизирован.

Создать задачу:

  • Команда/скрипт:mshta.exe
  • Добавьте аргументы (необязательно):
    "javascript: new ActiveXObject('shell.application').ShellExecute('net.exe', 'start <SERVICE-NAME>', '', 'open', 0); close();"

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

Чтобы запустить задачу без показа какого-либо окна, используйте тот же трюк. Создайте ярлык с помощью следующей команды:

mshta.exe "javascript: new ActiveXObject('shell.application').ShellExecute('schtasks.exe', '/run /tn <TASK-NAME>', '', 'open', 0); close();"

Примечания

  • Пользователь, который запускает ярлык, должен быть администратором, поскольку обычные пользователи могут запускать только свои задачи, а эта задача имеет самые высокие привилегии. В противном случае команда schtasksзавершится ошибкой «доступ запрещен».
  • Если задача находится в папке задач, то она /tn <TASK-NAME>находится /tn <FOLDER>\<TASK>в оболочке, и вы должныудвоить обратную косую чертучтобы избежать этого в mshtaкоманде сочетания клавиш.
  • Некоторые антивирусные программы (по крайней мере, Kaspersky) могут посчитать задачу, использующую mshtaэтот способ, подозрительной или потенциально опасной и удалить ее.
  • Вы можете использовать этот трюк, чтобы запустить любую скрытую программу без какого-либо всплывания. Просто замените net.exeна имя вашей программы и start <SERVICE-NAME>часть с необходимыми параметрами.

решение3

Запустить программу в свернутом виде

У меня работает только это, Windows 11

Связанный контент