Задача:
Необходимо скрыто запускать запланированное (назначенное) задание в ОС MS Windows. То есть нужно чтобы при запуске никаких окон не появлялось, чтобы не мешать пользователю.
Решение:
Во-первых, задание можно запускать от имени другой учетной записи, а не от имени пользователя, работающего в данный момент:
Но это не всегда удобно, поскольку у запускаемого задания может возникнуть необходимость контактировать с какими-либо компонентами профиля работающего в этот момент пользователя.
Если же нужно скрыто запускать запланированное задание от имени работающего пользователя, то для этого в MS Windows Vista и старше есть галочка «Скрытая задача»:
Для Windows XP задача решается чуть сложнее:
-
Создаем VBS скрипт (назовем его, например MyStarter.vbs), который будет запускать указанную нами программу не создавая окна. Для этого прописываем объекту WSHShell при запуске второй параметр «0».
В скрипте либо сразу указываем строку запуска вместе с параметрами, например: "C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden C:\Soft\Bat\IPCheckFull.ps1"
Код: Выделить всё
Set WSHShell = WScript.CreateObject("WScript.Shell") WSHShell.Run "C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden C:\Soft\Bat\IPCheckFull.ps1",0
либо делаем универсальный скрипт, которому при запуске (из планировщика) будем передавать строку запуска вместе с параметрами:
Код: Выделить всё
Set WSHShell = WScript.CreateObject("WScript.Shell") WSHShell.Run WScript.Arguments(0),0
-
В назначенных заданиях создаем новое задание, которому в качестве запускаемой программы указываем наш скрипт. При этом, если в самом скрипте мы сразу указали запускаемую программу с параметрами, то строка «Выполнить» в нашем задании будет просто указывать на скрипт:
Код: Выделить всё
C:\Soft\Bat\MyStarter.vbs
а если мы создали универсальный скрипт, то в строке «Выполнить» назначенного задания нужно указать и путь к запускаемой программе и параметры запуска (при необходимости):
Код: Выделить всё
C:\WINDOWS\system32\wscript.exe C:\Soft\Bat\MyStarter.vbs "C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -WindowStyle Hidden C:\Soft\Bat\IPCheckFull.ps1"
Оба vbs скрипта можно скачать отсюда: