Запуск bat-файла при запуске с правами администратора в Windows 7

37

В настоящее время я успешно запускаю сценарий запуска в виде файла bat в Windows 7 (я вставил новую запись в ключ реестра с путем к файлу bat в качестве значения в

Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run),

Теперь мне нужно запустить еще один bat-файл при запуске, но с повышенными правами (как администратор) и без подтверждения запроса вручную.

Как мне этого добиться, желательно без внешних программ?

Саймон
источник
У этого есть решение? serverfault.com/questions/429364/…
Радек
Я запутался. Разве возможность обойти UAC не вызывает большой проблемы безопасности? Разве это не разрушает цель приглашения, даже существующего?
Кайл Делани

Ответы:

24

См. Эту статью: Заставьте Vista запускать программы с ограниченным доступом UAC при запуске с помощью Task Scheduler .

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

harrymc
источник
3
Было бы хорошо, если бы это была не просто ссылка. :)
Ƭᴇcʜιᴇ007
1
@ Ƭᴇcʜιᴇ007: Есть множество полных руководств по этой известной процедуре, которые действуют и сегодня с Vista. Это очень старый ответ, и я, вероятно, ответил бы сегодня более подробно, но я также не уверен, что согласен с последней тенденцией в SU настаивать на длинных ответах, подобных учебникам. Не каждый ответ должен быть мини-учебником, и этот ответ описывает принцип и ссылку на солидный веб-сайт.
Harrymc
2
Я чувствую, что это может стать битвой титанов! Но на самом деле, я согласен с @ Ƭᴇcʜιᴇ007 в следующем: ссылки хороши, но они могут испортиться, делая такой ответ в будущем бессмысленным.
music2myear
1
@ music2myear: у запроса Google есть приблизительно 369 000 результатов! Многие из них гораздо лучшего качества, чем я мог бы сделать.
harrymc
2
Тогда вместо того, чтобы публиковать «ответ», который по сути является просто lmgtfy, вы могли бы просто опубликовать ссылку на запрос Google в качестве комментария к исходному ответу. Но тогда, вы не получаете репутацию для размещения комментариев, теперь вы?
Synetech
4

Сделайте два пакетных файла:

StartAs.bat содержит что-то вроде:

runas /user:SomeLocalAdminAccount c:\Users\MyUser\StartupWhat.bat

StartWhat.bat содержит команды, которые вы хотите запустить.

vana.yp
источник
1
Все еще просит, чтобы файл был запущен с повышенными привилегиями
Джо Тейлор,
3

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

Начните с gpedit.msc. Тем не менее, он нуждается в Ultimate или одном из других топовых выпусков.

Гай Томас
источник
2

Утилита AutoExnt, из Resource Kit.

Служба AutoExNT позволяет администратору настроить компьютер под управлением Windows для запуска настраиваемого пакетного файла при первом запуске компьютера. Кроме того, пользователь или администратор не обязаны входить в систему во время выполнения этого пользовательского пакетного файла.

Джо
источник
2

hstart.exe - сторонняя замена start.exe на http://www.ntwind.com/software/hstart.html

Этот вызов немного болезненный, но он работает очень хорошо.

ClioCJS
источник
Пожалуйста, соблюдайте осторожность при рекомендации программного обеспечения. Как написано, ваш ответ может рассматриваться как спам. Ваш ответ должен включать описание программного обеспечения и как оно решает вопрос. Более подробная информация: Как я могу рекомендовать программное обеспечение в моих ответах?
bwDraco
Спасибо, но нет. Я не считаю своей обязанностью, если люди ложно принимают неправильные вещи из-за собственного пессимизма и горечи. У меня была эта проблема, и это было мое решение.
ClioCJS
1

runas / user: SomeLocalAdminAccount

Здесь должно быть так:

runas /noprofile /user:mymachine\administrator cmd

runas /profile /env /user:mydomain\admin "mmc %windir%\system32\dsa.msc

runas /env /user:user@domain.microsoft.com "notepad \"my file.txt\""
BigGinDaHouse
источник
1
Все еще просит, чтобы файл был запущен с повышенными привилегиями
Джо Тейлор,
1

Может быть, UACPass (бесплатно) решит это:

  • Установите программу.
  • Откройте окно UACPass.
  • Перетащите на него программу, которую вы притворяетесь запустить при загрузке.

Выполнено. Эта программа должна теперь работать как администратор без запроса UAC.
В программе даже есть опция для add to startup:-D.

Ваша программа будет работать только после входа в систему (или я так думаю).

Сопалахо де Арриерес
источник
-1

Вы также можете сделать ярлык и указать, что файл ярлыка должен быть запущен с повышенными правами.

(Это в некоторых дополнительных опциях.)

riking
источник
Это не работает для ярлыков для файлов bat. Попытайся.
Джо Тейлор
@JoeTaylor А как насчет создания ярлыка для cmd.exe и предоставления файла bat в cmdline?
Вернер Хенце
@werner Henze - ты пробовал это?
Джо Тейлор
@JoeTaylor: это не работает для ярлыков файлов bat. Что именно вы имеете в виду под этим? Флажок «Запуск от имени администратора» доступен для ярлыков для файла bat и для ярлыков для cmd.exe (оба проверены несколько минут назад). Но: спрашивающему не нужна подсказка UAC, и флажок будет вызывать подсказку UAC (в зависимости от настроек UAC).
Вернер Хенце
Выполнение с повышенными правами, в то время как избыточные запросы UAC не работают так, как это предусмотрено в ответе. Это то, что я имел в виду. Поэтому это не тот ответ, который искала ОП.
Джо Тейлор