2

Я пытаюсь выяснить, как запустить программу, требующую доступа администратора к автозапуску.

Некоторые программы, такие как DuMeter, Speedfan или ATI Tray Tools, требуют административного доступа для взаимодействия с оборудованием. Кроме того, это фоновые задачи, которые не нужно запускать вручную при каждой загрузке, поэтому они должны быть частью запуска.

Я оглянулся вокруг, и самое близкое к решению, которое я смог найти, было запланировать их как задачи, но это не хорошо, потому что он не только загромождает список задач, но некоторые программы должны запускаться как можно скорее (например, для контролировать байты, передаваемые на NIC, для регулировки скорости вращения вентиляторов или установки цветов рабочего стола и частоты обновления).

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

Есть ли лучший способ автозапуска программ от имени администратора?

Благодарю.


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

5 ответов5

0

Запуск спидфана в качестве запланированной задачи был правильной идеей.
В Windows 7 задача может быть запланирована не только по дате / времени, но также может быть запущена с помощью триггеров.
Но вам нужно правильно настроить его.
Самый простой способ - просто скопировать все настройки из задачи автозапуска Skype.Если у тебя есть
А также я добавил еще один триггер для расписания выполнения задач: запуск при входе в систему. (Я перевожу настройки с моего языка. Так что перевод может быть не точным, как вы видите в своей английской версии)
Вот настройки:

  1. Создать новое задание (НЕ ПРОСТОЙ ЗАДАЧИ)
  2. на вкладках Общие
  3. назначить имя (Speedfan)
  4. Описание: Speedfan
  5. При запуске задачи используйте учетную запись: нажмите кнопку « Изменить ...» , введите « Пользователи», затем нажмите « Проверить имена», если процесс прошел успешно, вы увидите что-то вроде « BUILTIN\Users»
  6. Установите флажок ВЫПОЛНИТЬ С ВЫСОКИМИ ПРАВАМИ
  7. Нажмите вкладку Триггеры.
  8. Нажмите Создать
  9. выберите второй вариант в списке (при входе в систему)
  10. Нажмите Ok
  11. Нажмите Создать
  12. выберите При изменении или создании опции задачи
  13. Нажмите ОК. Задача теперь готова, и она больше не будет спрашивать высоту
  14. Выберите вкладку Действия
  15. Нажмите Создать
  16. Оставьте параметр Запустить программу и нажмите кнопку Обзор - выберите путь к speedfan.exe (например, "C:\Program Files (x86)\SpeedFan\speedfan.exe") и введите параметры командной строки в поле справа. боковая сторона. Мои варианты -minimize -nosmbscan . Затем нажмите Ok
  17. И, наконец, нажмите Ok, используйте это для запуска CCC.EXE, RaidCall и любых надоедливых автозапусков.
0

Программы, о которых вы упоминали, обычно имеют опцию RUN AT STARTUP из настроек - это обычно самый простой способ.

Запуск программ в качестве задач позволит вам запускать их с повышенными привилегиями. Есть возможность сделать это в диалоговом окне "Создать новую задачу".

Вы также можете проверить свойства каждого exe-файла и установить флажок на странице СОВМЕСТИМОСТИ, чтобы ВСЕГДА БЕГАТЬ КАК АДМИНИСТРАТОР.

Более подробная информация здесь - http://www.sevenforums.com/tutorials/11841-run-administrator.html

и http://www.sevenforums.com/tutorials/11949-elevated-program-shortcut-without-uac-prompt-create.html

0

Я думаю, что использование планировщика задач для автозапуска программ не очень удобно для пользователя, и иногда оно имеет побочные эффекты для меня (например, значок в трее для программы не добавляется).

Чтобы исправить это, я создал программу под названием Elevated Startup, которая сначала перезапускает себя с правами администратора, затем запускает все файлы в каталоге. Поскольку повышенный запуск теперь повышен, всем запускаемым им программам также предоставляются права администратора. Каталог находится в меню «Пуск» рядом с классическим каталогом «Автозагрузка» и работает практически так же.

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

Вы можете получить программу здесь: https://stefansundin.github.io/elevatedstartup/

0

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

Во-первых, вам нужно включить учетную запись администратора. Это самая неудобная часть. Я установил для своей обычной учетной записи автоматический вход, но досадно, что учетная запись администратора доступна на экране входа в систему, даже если я ее никогда не вижу. Некоторые из них могут жаловаться, что при воздействии на учетной записи администратора, это делает систему немного менее безопасным, но так как вы должны установить пароль для учетной записи для того, чтобы использовать его из командной строки, так или иначе, что беспокойство является спорным.

Метод, который я выбрал, требует использования какой-то программы SHELLEXECUTE, которая поддерживает минимизацию запущенных программ. (Вместо этого можно использовать команду START, встроенную в интерпретатор команд CMD, но это приведет к тому, что окно командной строки будет мигать, тогда как неконсервативная программа без окон этого не допустит.) Есть из чего выбирать, но я просто использовал тот, который написал когда-то.

Теперь просто создайте запись реестра в ключе RUN, который вызывает ShellExecute, указав параметр минимизации и используя RUNAS в качестве программы для выполнения. (Существуют другие программы, которые могут запускать программу с использованием другой учетной записи, если вы предпочитаете, но RUNAS поставляется с Windows и может сохранить пароль, чтобы избежать его включения в командную строку.) Кроме того, вы можете создать обычный ярлык Windows и переместить его в папку « Автозагрузка ».

Наконец, вам нужно передать программу (и любые аргументы для нее) в качестве аргумента в RUNAS.

(Не забудьте запустить целевую программу или любую другую программу с RUNAS, указав параметр /SAVECRED, по крайней мере, один раз без его минимизации , чтобы сохранить пароль.)

Используемая командная строка может быть довольно сложной, потому что это программа, вызывающая программу, вызывающую программу. Хуже, если вам нужно указать аргументы для целевой программы, и гораздо хуже, если вам нужно включить пробелы. Ситуация с кавычками может быстро стать сводящей с ума, поэтому, вероятно, потребуется много экспериментов.

Например, если вы используете ShelExec из PJ Naughter и хотите запустить SpeedFan, вы должны использовать командную строку, например:

shelexec /showcmd:sw_hide /EXE runas "/params:/user:administrator /savecred ""C:\Program Files\SpeedFan\speedfan.exe"""

Я должен отметить, что я установил параметры SpeedFan для запуска свернутыми, в противном случае вместо того, чтобы запускать speedfan «напрямую», мне пришлось бы запускать вторую программу ShellExecute с опцией минимизации для запуска SpeedFan (программы, вызывающей программу, вызывающую программу, вызывающую программа). Принятие этого на работу почти наверняка сведет с ума даже самого опытного компьютерного администратора.

Для разработки командной строки может потребоваться немного усилий, но, похоже, она работает достаточно хорошо для любых автоматически запускаемых фоновых задач, требующих административного доступа. Лучше всего то, что он работает для стандартных / ограниченных учетных записей пользователей, поэтому вы можете использовать этот метод для автоматического запуска программ с повышенными привилегиями, не давая приглашения UAC для обычных пользователей.

(Хотя он работает хорошо, у него есть свои недостатки, особенно в том, что, поскольку он запускает программы косвенно, менеджеры автозапуска, такие как Autoruns, StartupDelayer, HijackThis и т.д., Не смогут определить, какая из программ запускается автоматически - они будут все еще работает и сможет отключить / удалить / и т. д., но они не будут отображать правильный значок или информацию о ресурсах файла.)

0

Альтернативой является использование PsExec от Microsoft - он может передавать имя пользователя и пароль команде, которую нужно запустить.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .