Как запустить bat файл от имени администратора
По умолчанию программы и игры в Windows 10 запускаются без прав администратора, чтобы предотвратить несанкционированные изменения в вашей системе. Но частый случай, когда для корректной работы программы требуются запуск с повышенными правами (администратор), для правильной работы или выполнения определенных команд.
⚠️ Внимание: для запуска программы с повышенными правами, вам потребуется знать пароль администратора!
Содержание
Значок приложения
Как выполнить запуск программы от имени администратора однократно, с помощью значка программы (иконки):
Свойства файла
Способ, всегда запускать программу с правами администратора с помощью меню Свойства файла.
Эта настройка позволит постоянно запускать эту программу с повышенными правами только для этого пользователя. Если вы хотите разрешить запуск программы с правами администратора для всех пользователей компьютера, в предыдущем окне нажмите кнопку Изменить параметры для всех пользователей и установите галочку Запускать эту программу от имени администратора.
Меню Пуск (контекстное меню)
Запуск программы с повышенными правами используя контекстное меню, в меню Пуск.
Этим же способом можно запускать и Плитки приложений в Windows 10, 8.
Меню Пуск (сочетание клавиш)
Клик мышкой и сочетание клавиш в меню Пуск еще один способ запустить программу от имени администратора.
Запустить программу от имени администратора через меню Выполнить
Способ запуска программы с полными правами используя меню Выполнить.
⭕ Если у вас не получается перенести иконку программы в меню Выполнить:
- Нажмите и удерживайте кнопку Shift, щелкните по пиктограмме программы правой клавишей мыши;
- Выберите пункт Копировать как путь;
- Выполните вставку из буфера обмена в окно Выполнить (нажмите комбинацию клавиш Ctrl+V).
Лента Проводника
Несложный способ запуска любой программы от имени администратора использование ленты проводника Windows 10.
🔔 Если в меню папки не отображается Лента проводника, нажмите сочетание Ctrl+F1.
Окно Поиск
Запустить программу с правами администратора так же можно используя Поиск Windows 10.
Запуск программы от имени администратора используя командную строку (CMD)
Однократный способ запуска программы от имени администратора, используя командную строку Windows (CMD).
Простым способом запуска является запуск Командной строки от имени администратора, из которой выполняется запуск нужной программы. Но вы так же можете выполнить запуск из консоли CMD (с правами пользователя), используя команду runas.
Запуск программы от имени администратора используя PowerShell
Простым способом запуска является запуск PowerShell от имени администратора и запуск необходимой программы. Но вы так же можете выполнить запуск из консоли PowerShell (с правами пользователя), используя команду start-process.
Bat файл
В некоторых случая использовать предыдущие способы может быть неудобно, создадим bat файл с инструкциями по запуску программы.
- Запустим стандартное приложение Блокнот (Notepad);
- Указываем необходимую последовательность команд;
- В меню Файл выбираем пункт Сохранить как;
- В поле Имя файла указываем имя файла и дописываем расширение bat;
- В поле Тип файла указываем Все файлы;
- Нажимаем кнопку Сохранить.
Теперь запустить программу с правами администратора можно запустив созданный файл.
Вариант 1) Правая кнопка мыши по Batch-файлу "Запуск от имени администратора".
Вариант 2) Сначала запустить командную строку (см. ниже), а в ней запустить на исполнение Batch-файл.
Изменение рабочего каталога при запуске батника с повышенными привилегиями
C:\Users\adm>echo Рабочий каталог - C:\Users\adm Рабочий каталог - C:\Users\adm никакого system32
Запуск скрипта с привилегиями администратора
Здравствуйте. Создал службу windows 10. Она должна запускать скрипт Powershell. Но что-то не.
Как запустить командную строку от имени Администратора (с повышенными правами).
Способ 1:
Пуск
В окно поиска ввести CMD
Нажать Ctrl + Shift + Enter.
Способ 2:
Войти в диспетчер задач (Ctrl + Shift + Esc)
Вкладка "Процессы", кнопка "Отображать процессы всех пользователей".
Файл, Ctrl + Клик ЛКМ (левая кнопка мыши) по пункту "Новая задача (Выполнить . )".
Способ 3. Запуск Batch-файла с повышенными правами:
2. Создайте ярлык к этому файлу.
3. Зайдите в свойства ярлыка, выберите вкладку "Ярлык", кнопка "Дополнительно", отметьте галкой "Запускать от имени администратора".
Ярлык для запуска с запросом элевации прав готов.
- Открытие командной строки с правами администратора в нужной папке
- Добавление соответствующего пункта контекстного меню с помощью установщика CmdHereAsAdmin.inf (программа PowerToy).
- Рассматриваются Windows 7 и 8.
- Как открывать файлы из контекстного меню с полными правами
- Повышение прав из раздела реестра “runas”
- Повышение прав сторонними средствами
- Тонкости, которые нужно учитывать, при работе с UAC
- Практика: создание архива с полными правами из контекстного меню
- С какими правами работать?
- Назначение контроля учетных записей
- Администратор или пользователь?
- Повышение прав с запросом UAC и без него
- Современные программы и старые приложения
- Виртуализация файлов и реестра
- Использование сторонних утилит для повышения прав
- Запуск программ без запроса UAC
Решение
Элевация прав запуска BAT-файла (отображается диалог контроля учетных записей UAC)
Код: Dragokas
В ОС Windows Vista/7/8. запись в системные папки (такие как Windows, System32, корень диска C: ), запись в реестр (например, в улей HKLM) требует прав администратора.
Чтобы автоматически запускать батник с затребованием повышенных привилегий,
Вы можете воспользоваться одним из способов:
1) Через JScript-вставку без создания вспомогательного файла:
Из минусов обоих способов: батнику нельзя передавать аргументы запуска.
2) С использованием внешнего VBScript-сценария.
Приведенный пример создает временный VBS-скрипт, через который методом ShellExecute, verb - runas запускает повторно BAT-файл с повышенными правами.
3) С использованием mshta (способ от ComSpec):
Start Admin Console.cmd
Запускает новое окно консоли с повышенными правами и переходит в папку, где сам находится
Ожидает ввода команд от пользователя.
Как запустить VBScript, JScript с повышенными привилегиями?
1) Создайте к Вашему скрипту ярлык -> правой кнопкой мыши (ПКМ) по файлу скрипта -> "Создать ярлык".
2) В свойствах ярлыка (ПКМ по ярлыку)
на вкладке "Ярлык":
- в поле "Объект" допишите слева слово WSCRIPT и знак пробела
- нажмите "Применить"
- нажмите "Дополнительно"
Поставьте галочку "Запускать от имени администратора".
Нажмите "ОК" в обоих окнах.
Значок скрипта изменится на такой:
Теперь можете запускать скрипт через этот ярлык (с повышенными привилегиями).
Будет задан вопрос от "Контроля учетных записей", на который следует ответить утвердительно.
а можно допилить этот код так чтобы после согласия на разрешение прав окно батника пропадало а не висело пока выполняется команда? Заранее спасибо!
::
:: <--- Здесь код Вашей основной программы
::
:: Эту строку не трогать. Ниже ничего не писать.
*/new ActiveXObject('Shell.Application').ShellExecute (WScript.ScriptFullName,'Admin','','runas',1);
Вообще, тут ещё от команды зависит, если вызывается внешняя GUI-шная программа (т.е. оконная), то батнику ждать не обязательно.
вот вставляю этот код в батник и он перестает висеть (открывается на секунду и закрывается и команда продолжает работать без окна)
но перестает запускаться от администратора(
можно ка кто эти два кода подружить?
2 кода? Я только один вижу, при чём непонятно откуда вы его взяли.При том так до сих пор и не понятно, что вы хотите сделать.
мне надо чтобы батник запускался от имени администратора и чтобы окно не висело во время выполнения команды (типо запустил батник он спросил права админа UACокно, я согласился и окно батника пропало а команда продолжалась бы) ну если бы подтверждение не выскакивало было бы еще лучше)
Была поставлена задача, нужно что-бы при запуске батника менялись сетевые настройки, я сделал вот так, оно работает только если запускать от имени админа.
но его нужно запускать из под обычного пользователя, для этого создал еще один батник
runas /user:Admin /savecred "D:\change ip.bat"
получается что при исполнении второго батника, запускается первый от имени админа, но изменения в сетевые настройки он не вносит с комментарием
Для запрошенной операции требуется повышение прав (запустите с правами администратора).
так-же читал что эту проблему можно решить открытием учетки встроенного(скрытого) администратора, но это решение не годиться, так как выглядит совершенно не безопасно тем-более с доменными учетными записями.
Простой 5 комментариев
Создайте ярлык с соответствующими настройками, от имени кого запускать. Можете еще испробоватьДля запрошенной операции требуется повышение прав (запустите с правами администратора).
Только пробел в имени батника уберите. У меня почему-то с пробелом "файл не найден".
С помощью runas привилегии повышаются действительно только для встроенного администратора.
Ничего страшного в том, что бы его активизировать я не вижу. Хотите подстраховаться - смените ему имя. Конечно нужно назначит нормальный пароль.
Но сохранять с помощью runas /savecred пароль администратора - это выстрел себе в ногу. С помощью этого сохраненного пароля и runas можно будет любую программу запускать с повышенными привилегиями из-под любого пользователя. Этим вы сделаете большую дыру в безопасности сети.
На самом деле не очень понятна цель этого мероприятия - вы меняете IP адрес. Зачем? Чувствую, что, то что вы хотите добиться, должно быть сделано по другому. Варианты:
1. Сделайте 2 IP на одном интерфейсе и пусть они всегда будут.
2. Организовать доступ в 172.16.11 подсеть через промежуточный шлюз, на котором в зависимости от некоторых условий можно разрешать доступ или нет.
3. Можно запускать netsh удаленно с админскими привилегиями, запускать, конечно должен админ, а не пользователь. Если у вас есть АД, то доменный админ может это делать, если АД нет, то на пользовательском компе нужно выставить ключ в реестре:
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f
Этот ключ позволяет при сетевом доступе с админскими правами автоматически повышать привилегии. Локальных пользователей и их привилегии это не затрагивает.
Нередко советы по тем или иным действиям и исправлениям в Windows 10, 8 и Windows 7 включают в себя шаги наподобие: «создайте файл .bat со следующим содержимым и запустите его». Однако, начинающий пользователь не всегда знает, как это сделать и что собой представляет такой файл.
В этой инструкции подробно о том, как создать командный файл bat, запустить его и некоторая дополнительная информация, которая, возможно, окажется полезной в контексте рассматриваемой темы.
Создание .bat файла с помощью блокнота
Первый и самый простой способ создать bat файл — использовать стандартную программу «Блокнот», присутствующую во всех актуальных версиях Windows.
Шаги по созданию будут следующими
Ваш файл .bat готов: если его запустить, будут автоматически выполнены все перечисленные в файле команды (при условии отсутствия ошибок и необходимости прав администратора: в некоторых случаях может потребоваться запускать файл bat от имени администратора: правый клик по файлу .bat — запустить от имени администратора в контекстном меню).
Примечание: в дальнейшем, если вы захотите отредактировать созданный файл, просто нажмите по нему правой кнопкой мыши и выберите «Изменить».
Существуют и другие способы сделать bat файл, но все они сводятся к написанию команд по одной команде в строке в текстовый файл в любом текстовом редакторе (без форматирования), который затем сохраняется с расширением .bat (например, в Windows XP и 32-битной Windows 7 вы даже можете создать файл .bat в командной строке с помощью текстового редактора edit).
Запуск программ в файле bat и другие базовые команды
Чаще всего бывают следующие задачи: запуск программы или нескольких программ из .bat файла, запуск какой-то функции (например, очистка буфера обмена, раздача Wi-Fi с ноутбука, выключение компьютера по таймеру).
Для запуска программы или программ используйте команду:
Если путь содержит пробелы, возьмите весь путь в двойные кавычки, например:
После пути к программе можно также указать параметры, с которыми она должна запускаться, например (аналогично, если параметры запуска содержат пробелы, возьмите их в кавычки):
Примечание: в двойных кавычках после start по спецификациям должно указываться имя командного файла, отображаемое в заголовке командной строки. Это необязательный параметр, но при отсутствии этих кавычек выполнение bat файлов, содержащих кавычки в путях и параметрах может пойти неожиданным образом.
Еще одна полезная возможность — запуск другого bat файла из текущего файла, сделать это можно с помощью команды call:
Переданные параметры при запуске можно прочитать внутри другого bat файла, например, мы вызываем файл с параметрами:
В file2.bat можно прочесть эти параметры и использовать в качестве путей, параметров для запуска других программ таким образом:
Т.е. для каждого параметра мы используем его порядковый номер со знаком процента. Результатом в приведенном примере будет вывод в окно команд всех переданных параметров (команда echo используется для вывода текста в окно консоли).
По умолчанию, окно команд закрывается сразу после выполнения всех команд. Если нужно прочитать информацию внутри окна, используйте команду pause — она остановит выполнение команд (или закрытие окна) до нажатия любой клавиши в консоли со стороны пользователя.
Иногда, перед выполнением очередной команды нужно подождать некоторое время (например, до полного запуска первой программы). Для этого можно использовать команду:
При желании, вы можете запустить программу в свернутом виде или развернутом видео с помощью параметров MIN и MAX перед указанием самой программы, например:
Для закрытия окна команд после выполнения всех команд (хотя, обычно оно и так закрывается при использовании start для запуска), используйте команду exit в последней строке. В случае, если консоль все равно не закрывается после запуска программы, попробуйте использовать такую команду:
Примечание: в данном команде, если пути к программе или параметры содержат пробелы, могут быть проблемы с запуском, которые можно решить так:
Как уже было отмечено, это лишь очень базовые сведение о наиболее часто используемых командах в bat файлах. При необходимости выполнить дополнительные задачи, попробуйте найти нужную информацию в интернете (поищите, например, «сделать что-то в командной строке» и используйте эти же команды в файле .bat) или задайте вопрос в комментариях, я постараюсь помочь.
Существует множество приложений Windows, для работы которых требуются права администратора. В современных ОС для этого обычно используется режим ”Запуск от имени администратора” контекстного меню проводника. При этом выводится запрос средства контроля учетных записей пользователя UAC (User Account Control ), требующего подтверждения разрешения на запуск приложения:
Если пользователь нажимает кнопку ”Да”, приложение выполняется с повышением привилегий в контексте учетной записи администратора. Если же пользователь нажмет ”Нет” – приложение выполнится в контексте пользовательской учетной записи. Такой же результат будет получен, если пользователь вообще не ответит на запрос UAC – по истечении времени ожидания ответа, приложение будет запущено в контексте учетной записи пользователя. Это делает проблематичным выполнение командных файлов с повышением привилегий в автоматическом режиме, поскольку требуется вмешательство пользователя. Для решения данной проблемы большинство пользователей Windows, как правило, отключают систему контроля учетных записей UAC, что нежелательно, поскольку это снижает уровень безопасности ОС. Так, например, при выключенном UAC, пользователь даже не заметит как вирус-шифровальщик удалит теневые копии томов и приступит к шифрованию файлов. В результате будут гарантировано потеряны данные без какой-либо возможности их восстановления. При включенном же UAC, попытка удаления теневых копий с помощью стандартной утилиты vssadmin.exe приведет к отображению на экране запроса UAC, который, как минимум, привлечет внимание пользователя и позволит отреагировать на угрозу. Подробнее о вероятности восстановления данных после вируса-шифровальщика в отдельной статье.
Таким образом, возникает задача выполнения программ или командных файлов от имени администратора при включенном UAC, но без запроса на разрешение их запуска. Одним из способов решения подобной задачи является использование специально подготовленной задачи стандартного Планировщика заданий Windows. Необходимо создать задачу для запуска командного файлат с повышенными привилегиями. Переходим в ”Панель управления” - ”Администрирование” - ”Планировщик заданий” - ”Библиотека планировщика заданий”, выбираем в меню ”Действия” – ”Создать простую задачу”. С помощью мастера создания простой задачи, создаем задачу, например, с именем Admbat
В качестве триггера запуска можно выбрать режим ”Однократно” и установить дату начала выполнения задачи уже прошедшим днем, чтобы служба планировщика не могла выполнить ее запуск в ненужное нам время.
В качестве действия выбираем ”Запустить программу”
В качестве программы будет запускаться командный файл, например C:\Scripts\ifadmin.bat. При необходимости можно задать рабочую папку программы.
Ставим галочку на ”Открыть окно ”Свойства” для этой задачи после нажатия кнопки ”Готово” ”. В свойствах задачи включаем режим ”Выполнить с наивысшими правами”.
Если выбрать режим ”Выполнять для все пользователей”, то задача не будет открывать никаких окон в сеансе текущего пользователя, что не очень удобно в режиме тестирования командного файла. В качестве теста можно использовать команду:
netstat –b - отобразить список соединений с именами создавших их программ. Параметр b требует административных привилегий. Содержимое командного файла:
Rem Выполняем команду в контексте учетной записи пользователя
netstat –b
rem Пауза для просмотра результатов
pause
Rem Готовим содержимое командного файла Ifadmin.bat задачи планировщика Admbat
echo netstat –b > C:\Scripts\ifadmin.bat
echo pause >> C:\Scripts\ifadmin.bat
Rem Выполним задачу планировщика с именем Admbat
schtasks /run /tn Admbat
Запрошенная операция требует повышения.
а затем, с помощью задачи Admbat планировщика заданий – с повышенными привилегиями, т.е. под учетной записью с правами администратора – на экран будет выведен список соединений с именами программ.
При необходимости выполнения конкретного командного файла в контексте учетной записи администратора, можно просто скопировать его содержимое в C:\Scripts\ifadmin.bat :
copy C:\MyScripts\admin1.bat C:\Scripts\ifadmin.bat
И выполнить задачу планировщика Admbat командой:
schtasks /run /tn Admbat
Задача планировщика будет использоваться одна и та же - Admbat , но содержимое командного файла ifadmin.bat можно менять под свои потребности.
Задачу планировщика можно создать и из командной строки с помощью утилиты schtasks.exe и разрешить ее выполнение с правами администратора, задав параметр /RL HIGHEST
schtasks /create /TN "Admbat" /TR "C:\Scripts\ifadmin.bat" /SC ONCE /SD 11/12/2018 /ST 14:00 /RL HIGHEST .
Естественно, данная команда должна выполняться в контексте учетной записи с правами администратора.
В заключение добавлю, что нелишней будет проверка в наличия администраторских прав в самом командном файле ifadmin.bat . Это легко реализуется с помощью команды:
WHOAMI /PRIV - отобразить действующие привилегии текущего пользователя.
Так, например, удаленное выключение компьютера доступно только в контексте учетной записи администратора. В этом случае, в результатах вывода WHOAMI присутствует строка "SeRemoteShutdownPrivilege". С помощью команды find ищем эту строку в результатах вывода команды whoami /priv и если она найдена (переменная ERRORLEVEL равна нулю) – командный файл выполняется с правами администратора. Например:
@echo OFF
WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege" > nul
if %ERRORLEVEL% == 0 goto admin
color 8F
echo Нет прав администратора.
pause
exit
:admin
color f0
ECHO Есть права администратора.
pause
Можно создать командный файл, проверяющий наличие прав администратора, и при их отсутствии, выполняющий свой перезапуск с использованием повышения привилегий за счет задачи планировщика Admbat .
- выполняется проверка наличия прав администратора, так же как это происходило в предыдущем примере, и, при их отсутствии, содержимое командного файла копируется в файл, запускаемый планировщиком заданий ( ifadmin.bat ).
- выполняется задача планировщика Admbat для запуска файла ifadmin.bat с правами администратора без запроса UAC.
- завершается текущий командный файл (но вместо него выполняется он же, скопированный в ( ifadmin.bat ), но с правами администратора).
Содержимое командного файла:
WHOAMI /PRIV | find /i "SeRemoteShutdownPrivilege" > nul
if %ERRORLEVEL% == 0 goto admin
schtasks /run /TN Admbat
start "notepad with admin rights" %SystemRoot%\notepad.exe C:\Scripts\ifadmin.bat
Несколько пояснений. Данный командный файл вначале проверяет наличие прав администратора, и если они есть – выполняется переход на метку :admin - запускается блокнот, открывающий файл C:\Scripts\ifadmin.bat . После чего работа командного файла завершается по команде exit. Если права администратора отсутствуют, выполняется копирование текущего командного файла, имя и путь которого принимает переменная %
f0 , в файл C:\Scripts\ifadmin.bat . Для подавления запроса на перезапись существующего файла команда copy используется с ключом /Y . После копирования, выполняется запуск задачи планировщика, обеспечивающей повторный запуск этого же командного файла (скопированного в файл C:\Scripts\ifadmin.bat , но уже с правами администратора системы.
Дополнительная информация по теме:
Читайте также: