![]() |
schtasks, как создать задание с расписанием "только по запросу"
Имеется windows 7 Домашняя базовая SP1 32bit
Как известно, один из методов запуска программ с высокими привилегиями без запроса UAC - это создание запланированной задачи и создание ярлыка для ее немедленного запуска. При создании запланированной задачи из интерфейса легко создается задание с расписанием "только по запросу", однако мне никак не удается создать задание с таким расписанием с командной строки. утилита schtasks в разделе /create имеет опции расписания /sc MINUTE, HOURLY, DAILY, WEEKLY, MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT - которые требуют указания /st (времени запуска).. можно, конечно, создать задание ONCE с датой запуска лет через 20, но это уже называется "схимичить". Вопрос: есть ли недокументированный ключ к schtasks, позволяющий создавать задание с расписанием: "только по запросу" P.S. Я программирую инсталлятор и пользователи жалуются, что приходится всякий раз нажимать согласие на запрос UAC для запуска установленной программы. Отключать UAC совсем - не вариант. Применение XML-слепка для создания задачи неприменимо, т.к. имя компьютера/пользователя, которые несет XML установщику неизвестны.. |
IlyaNSK, можно попробовать обойти через экспорт настроенного задания в XML, а затем естественно импорт.
Сейчас этого не проверял, но со всеми хитрыми заданиями делается именно так. |
можно забыть про task scheduler и посмотреть в сторону автоматического повышения привилегий для определенных приложений :
http://www.verboon.info/wp-content/u...1-00h14_05.png для конкретного пользователя пишем параметр RUNASADMIN в раздел HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers для всех пользователей - соответственно, HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers пользователь запускает инсталятор, он себя копирует, например, в c:\windows\temp, и запускается оттуда. при первом запуске вылазит окошко UAC, пользователь соглашается, потом инсталятор прописывает себя в соответствующие ключи реестра, и все довольны. |
IlyaNSK, постановка задачи очень странная.
1. Вне зависимости от того, какая дата указана при ONCE, задание остается в планировщике, и его можно запускать ярлыком. 2. Вы пишете установщик или имеете отношение к созданию приложения? Потому что придуманное вами решение - это не более, чем кривой костыль. Стоит пользователю удалить ярлык, как все вернется на круги своя. 3. Непонятно, зачем программе нужны права администратора. Если это новое приложение, то почему (UAC уже 5 лет)? Это какая-то программа для правки системных параметров? 4. Если программа старая, то нужно проверить, действительно ли ей нужны права администратора. Возможно, она будет нормально работать, если форсировать запуск с обычными правами, используя RunAsInvoker. Наконец, решение, которое предложил HLT, в данном случае абсолютно не подходит. Оно похоже на RunAsInvoker с той лишь разницей, что форсируется запуск с полными правами. А это значит, что постоянно будет появляться запрос UAC, т.е. произойдет то, чего вы пытаетесь избежать. |
1. Я так и поступил
2. Я пишу установщик. Устанавливаемую программу я изменить не могу. Формально - удалил ярлык - переставляй программу. Предложите решение лучше, мне, как видно, квалификация не позволила. 3. Программа старая , обрабатывает потоковые данные из СОМ-порта и, будучи запускаемой в обычном режиме, вылетает по эксепшену.. (вообще она 16-битная еще, до пересборки на 32-64 бит дело не дойдет, уже пишется новая под новый прибор, но "старых" приборов еще изрядно) 4. Проверили - нужны. Инсталлятор (NSIS) создает ярлык для запуска с правами админа и все работает ОК, но пользователю не нравится после клика по ярлыку запуска, кликать еще и "ОК" в UAC. При запуске Акрониса Тру Имэйдж, например, такой запрос тоже выдается. Я просто реагирую на распоряжение начальства - пользователь запускает программу без лишних вопросов без отключения UAC. to Morpheus При создании через ХМL, разумеется, выдается: ОШИБКА: Сопоставление между именами пользователей и идентификаторами безопасности не было произведено. (13,8):LogonType: |
Цитата:
|
IlyaNSK, надо удалить строчку <UserId>***</UserId> в XML
|
Morpheus, я удалял и получил что-то о целостности XML-файла. Вобщем-то, какое-никакое решение есть.
Спасибо всем за участие. Vadikan, иногда просыпается перфекционизм, а вдруг через 20 лет это задание запустится и завесит машину :lol: |
IlyaNSK, да ладно. Там что-то типа "Успех. Бла-бла-бла..." Я сам этим способом пользуюсь.
|
Цитата:
|
Хм, действительно. Ограничился только предупреждением, но задание создал.
Спасибо еще раз. |
Уп-с!! А решено-то не до конца..
Может кто подскажет? В графическом режиме рабочую папку программы назначить можно, а вот как это с командной строки сделать? |
|
Время: 10:58. |
Время: 10:58.
© OSzone.net 2001-