Как мне указать «Запуск с самыми высокими привилегиями» в SchTasks?

21

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

Однако я не нашел такой опции и в командной строке SchTasks .

Есть ли способ сделать это из командной строки?

WinWin
источник

Ответы:

27

Это то, что делает параметр / RL .

Пример: SCHTASKS /Create /TN "New Task" /SC HOURLY /TR blah.exe /RU username /RP password /RL HIGHEST

Skatterbrainz
источник
мы можем использовать это для каждой версии Windows (от XP до 7 или 8, включая Windows Server 2008)?
Рольф
Не для Windows XP, в соответствии с Microsoft ( microsoft.com/resources/documentation/windows/xp/all/proddocs/… ), также обратите внимание, что «эта опция недоступна» комментарии для (XP и WinServer 2003) на msdn.microsoft .com / ru-ru / библиотека / windows / рабочий стол /…
Skatterbrainz
@Rolf, проверьте мой ответ на небольшой скрипт, который будет работать как на XP / 2003, так и на Vista / 2008 (или выше)
abstrask
5

/RL levelУстанавливает уровень выполнения для задания. Допустимые значения LIMITEDи HIGHEST. По умолчанию это LIMITED.

Андрей
источник
3

Чтобы добавить ответ @ Skatterbrainz: Если вы запустите ту же команду / скрипт в XP / 2003, указав / RL, SchTasks.exe не сможет создать задачу.

Вы можете создать скрипт, который будет работать на XP, 2003, Vista, 2008, 7, 2008R2 и т. Д., Вытащив версию ОС из реестра. Пакетный скрипт может выглядеть так:

SETLOCAL
set runlevel =

REM Получить версию ОС из реестра
for / f "tokens = 2 *" %% i in (запрос reg.exe "HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion" / v "CurrentVersion" ') действительно установить os_ver = %% j

REM Установить уровень запуска (для Vista или новее - версия 6)
if / i "% os_ver: ~, 1%" GEQ "6" set runlevel = / rl HIGHEST

REM Выполнить SchTasks.exe
schtasks.exe / create / tn "Имя задачи" / sc ONSTART / TR "C: \ Scripts \ somescript.cmd" / ru SYSTEM% runlevel%
abstrask
источник