Параметр schtasks для отключения "выполнить при входе пользователя"
Я пытаюсь установить запланированное задание в VBScript, выполняемом от имени администратора. Этот скрипт устанавливает задачу без проблем, как я вижу, но он не выполняется, потому что он создан с параметром run only when user is logged on
,
Код следующий:
Set objShell=Wscript.CreateObject("Wscript.Shell")
command= windir&"\system32\schtasks.exe /create /sc minute /mo "&minutes&" /tn "&APPNAME&" /f /tr ""C:\Windows\System32\wscript.exe '"&getAplicationPath&"\"&wscript.ScriptName&"' cron "
objShell.Run command,0, false
Я не смог найти параметр, который я должен установить, чтобы отключить эту опцию ни на msdn.microsoft.com, ни в поиске в Google.
1 ответ
Если вы хотите, чтобы задача выполнялась без входа пользователя в систему, вам нужно указать пользователя для запуска задачи. Для этого вам нужны варианты /RU
(для учетной записи run-as) и /RP
(для его пароля). Если задаче нужен только доступ к локальным ресурсам, вы можете предотвратить сохранение пароля, используя опцию /NP
(вам все равно нужно будет указать пароль один раз при создании задачи). Я думаю, что последний вариант недоступен в версиях Windows до Vista.
Цитирование соответствующих разделов из вывода schtasks /create /?
:
/RU username Specifies the "run as" user account (user context)
under which the task runs. For the system account,
valid values are "", "NT AUTHORITY\SYSTEM"
or "SYSTEM".
For v2 tasks, "NT AUTHORITY\LOCALSERVICE" and
"NT AUTHORITY\NETWORKSERVICE" are also available as well
as the well known SIDs for all three.
/RP [password] Specifies the password for the "run as" user.
To prompt for the password, the value must be either
"*" or none. This password is ignored for the
system account. Must be combined with either /RU or
/XML switch.
/NP No password is stored. The task runs non-interactively
as the given user. Only local resources are available.
Ваше создание командной строки должно выглядеть примерно так:
command= "%windir%\system32\schtasks.exe /create" & _
" /sc minute /mo " & minutes & " /tn " & APPNAME & _
" /ru " & username & " /rp " & password & _
" /f /tr ""C:\Windows\System32\wscript.exe '" & _
getAplicationPath & "\" & wscript.ScriptName & "' cron "