Run Batch File as Administrator
A Batch file consists of commands that are executed by the command prompt. Some of these commands don’t run without administrator permission; hence, it is important to run a Batch file as an administrator.
Manually, you can run the Batch file as an administrator by right-clicking on the Batch file you want to run and selecting Run as administrator.
Instead of doing it manually each time, you can also make it run as an administrator automatically by just adding some code at the top of your batch file.
Alternatively, you can also create a shortcut and set it to run as administrator from the properties window. Every time you double-click on the Batch file, it will run as an administrator.
There are many ways of automatically running the Batch file as an administrator. This tutorial will illustrate different ways of running a batch file as an administrator.
Create a Shortcut of the Batch File to Run as Administrator
A simple way of running a Batch file in admin mode is by creating a shortcut and setting it up to always run as an administrator. Right-click on the Batch file and click on create shortcut to create a shortcut.
A shortcut file will be created on the Desktop. Go to the Properties window of the shortcut file by right-clicking on it.
Click on Advanced under the Shortcut tab and select the Run as administrator checkbox.
That’s all, and the shortcut has been set to always run in the admin mode. When you double-click on the shortcut file, it will show a UAC window to confirm.
When you apply the above method, the current directory of the Batch file changes; this may cause errors, or your file may not run. Just add the following lines at the top of your Batch file to avoid this.
The above code will change the current directory to the Batch file’s location.
Code a Batch File to Run as Administrator
Use the runas Command to Run the Batch File as Administrator
If the Batch file contains a particular line or a set of lines that requires administrative privileges, you can use the runas command to run a particular line in admin mode.
The above code will run the Batch file under an administrator user. Enter the password if prompted.
You can also use /savecred to save the password and use it next time you run the Batch file. You only need to enter the password once.
Create a VBS File to Run the Batch File as Administrator
Creating a shortcut to the Batch file also changed the current working directory.
You can, instead, add the following code at the top of your Batch file. This will run the Batch file in administrator mode and remain in the same directory.
The above code checks whether the file is running in administrator mode. If it doesn’t, it creates a VBS file adminmode.vbs , which then reruns the Batch file in administrator mode using the runas parameter.
To access the Batch file, we used cd /d «%
- d — expands to the drive letter
- p — expands to the path
- 0 — expands to the full path
dp0 changes the current directory to the Batch file’s directory. When you run the Batch file, it will run as an administrator by showing the UAC prompt for confirmation.
Conclusion
So, we discussed two different ways of running a Batch file as an administrator.
Also, there are other ways of running a Batch file in admin mode, such as using the elevate utility, converting the batch file to .exe , or installing the sudo command. But, the methods mentioned above are easy to implement, even if you are a beginner.
Запуск скрипта с повышенными привилегиями [руководство]
Вариант 1) Правая кнопка мыши по Batch-файлу "Запуск от имени администратора".
Вариант 2) Сначала запустить командную строку (см. ниже), а в ней запустить на исполнение Batch-файл.
Запуск bat скрипта с пониженными привилегиями
Привет ☺ Как в bat скрипте, который запускается с правами администратора прописать запуск.
Изменение рабочего каталога при запуске батника с повышенными привилегиями
C:\Users\adm>echo Рабочий каталог — C:\Users\adm Рабочий каталог — C:\Users\adm никакого system32
Запуск скрипта с привилегиями администратора
Здравствуйте. Создал службу windows 10. Она должна запускать скрипт Powershell. Но что-то не.
Почему эта программа запускается с повышенными привилегиями?
Ресурса #24 нет, слой совместимости тоже не прописан, так откуда тогда знак щита? Как это у меня.
Как запустить командную строку от имени Администратора (с повышенными правами).
Способ 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);
вот вставляю этот код в батник и он перестает висеть (открывается на секунду и закрывается и команда продолжает работать без окна)
но перестает запускаться от администратора(
можно ка кто эти два кода подружить?
Сообщение от valli_vasia
второй код я писал в предыдущем сообщении)
мне надо чтобы батник запускался от имени администратора и чтобы окно не висело во время выполнения команды (типо запустил батник он спросил права админа UACокно, я согласился и окно батника пропало а команда продолжалась бы) ну если бы подтверждение не выскакивало было бы еще лучше)
Как заставить bat запускаться от имени админа?
Была поставлена задача, нужно что-бы при запуске батника менялись сетевые настройки, я сделал вот так, оно работает только если запускать от имени админа.
но его нужно запускать из под обычного пользователя, для этого создал еще один батник
runas /user:Admin /savecred «D:\change ip.bat»
получается что при исполнении второго батника, запускается первый от имени админа, но изменения в сетевые настройки он не вносит с комментарием
так-же читал что эту проблему можно решить открытием учетки встроенного(скрытого) администратора, но это решение не годиться, так как выглядит совершенно не безопасно тем-более с доменными учетными записями.
- Вопрос задан более трёх лет назад
- 29680 просмотров
Простой 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
Этот ключ позволяет при сетевом доступе с админскими правами автоматически повышать привилегии. Локальных пользователей и их привилегии это не затрагивает.
Как создать BAT-файл в Windows 11/10 (свой скрипт для запуска программ (игр) с высоким приоритетом, очистки папок, форматирования дисков, флешек и пр.)
Доброго дня!
На меня тут недавно «наехали» (в хорошем смысле 😊): «Дескать. говоришь вот создать BAT-файл*, а как это сделать-то? Учишь непонятно чему. лишь плохому. «.
* Для справки.
BAT-файл — текстовый файл со списком команд. При его запуске (открытии) — интерпретатор ОС выполняет их одну за одной. Это очень удобно для выполнения повторяющихся задач (например, если вам нужно запускать каждый раз игру с высоким приоритетом, или чистить определенную папку, и др.).
*
Собственно, в рамках сегодняшней статьи решил исправиться — кратко показать, как их создавать, и дать несколько примеров для решения самых популярных рутинных задач (довольно часто для этого BAT’ники и используют).
Думаю, что многие пользователи смогут слегка до-корректировать мои примеры и создадут для себя вполне рабочие BAT-файлы. 😉
Создание BAT файлов: на примерах
Основы! С чего начать (Вариант 1: проверка пинга)
Для начала покажу, как создать простейший BAT-файл для проверки пинга (для общего понимания процесса. ).
Первым делом необходимо создать самый обычный текстовый файл (такой же, как вы создаете в блокноте). Достаточно кликнуть правой кнопкой мыши по любому свободному месту на рабочем столе и выбрать в меню «Текстовый файл» (Text Document). 👇
Создаем текстовый документ
Название файла у этого текстового документа может быть любым (но лучше использовать англ. символы).
Далее следует открыть этот файл и вписать в него нужные команды. В своем примере я впишу только одну (если вы делаете это впервые — рекомендую повторить ее вместе со мной):
Разумеется, файл нужно сохранить. Кстати, вместо ya.ru можно указать google.ru или любой другой адрес (обычно, многие указывают свой игровой сервер, и запускают этот BAT’ник, когда в игре наблюдаются лаги).
Копируем в него нашу команду и сохраняем файл.
Затем обратите внимание на расширение файла — у текстового файла оно «.TXT». Кстати, если у вас не отображаются расширения — можете 📌 прочитать эту заметку или просто введите в командной строке две вот эти команды (последовательно):
reg add «HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced» /v HideFileExt /t REG_DWORD /d 00000000 /f
taskkill /F /IM explorer.exe & start explorer
Нам нужно переименовать файл так, чтобы вместо «.TXT» — было новое расширение «.BAT» !
Меняем расширение TXT на BAT
Теперь достаточно кликнуть по «нашему» файлу правой кнопкой мыши и запустить его от имени администратора — автоматически появится окно командной строки с проверкой пинга. Удобно? Вполне! 👌
Идет проверка пинга!
Чтобы отредактировать BAT-файл (и каждый раз не переименовывать его туда-сюда) — рекомендую вам установить блокнот Notepad++ (уже ранее добавлял его в подборку).
После установки Notepad++ — достаточно кликнуть ПКМ по BAT-файлу — и в появившемся меню выбрать опцию редактирования.
Вариант 2: запуск игры с высоким приоритетом + откл. авто-поиска Wi-Fi сетей
Этот скрипт рекомендуется попробовать пользователям ноутбуков, кто играет в сетевые игры.
*
Этот BAT-файл я создал на одном своем рабочем ноутбуке (он уже довольно «старый», и нередко притормаживал при запуске игр). Однако, благодаря нескольким строкам кода — удается вполне комфортно играть. 👌
Что за строки нужно добавить в BAT (выделены коричневым):
cmd.exe /c start /high /D «C:\Games\Counter-Strike 1.6\» hl.exe -game cstrike -appid 10 -nojoy -noipx -noforcemparms -noforcemaccel
netsh wlan set autoconfig enabled=no interface=»Wi-Fi»
pause
netsh wlan set autoconfig enabled=yes interface=»Wi-Fi»
pause
- запускает игру CS с высоким приоритетом (это позволяет снизить кол-во притормаживаний в играх). Разумеется, вместо строки «C:\Games\Counter-Strike 1.6\» hl.exe — вы можете указать свою игру и ее расположение;
- отключает авто-поиск Wi-Fi сетей (это снижаем пинг и увел. скорость сети // правда не дает подключаться к другим Wi-Fi сетям). Кстати, вместо «Wi-Fi» — нужно указать название своего адаптера (посмотрите так: нажмите Win+R, и используйте команду ncpa.cpl ) ;
Вариант 3: создание резервной копий файлов и точки восстановления в Windows
Приведу наиболее простую и довольно надежную команду для создания резервных копий файлов и папок:
Она копирует один каталог в другой (просто, без вопросов и расспросов). Если вам нужно скопировать 2 или 3 (или более) каталогов — просто создайте несколько подобных строк.
- C:\Games — тот каталог, который будем копировать (все подкаталоги и файлы из них тоже будут скопированы);
- D:\backup — тот каталог, куда будет всё скопировано;
- /f — выводит имена файлов (чтобы вы видели, что происходит);
- /i — создает новый каталог, если на диске «D:» нет каталога «backup» (см. строку выше);
- /y — перезаписывает старые файлы новыми;
- /s — копирует каталоги и подкаталоги, если в них есть какие-то файлы.
Для создания точки восстановления можно использовать следующий код:
wmic.exe /Namespace:\\root\default Path SystemRestore Call CreateRestorePoint «MyRestorePoint», 100, 7
pause
После запуска подобного BAT-файла — точка восстановления будет создана в авто-режиме! Это очень удобно делать перед установкой нового софта, железа и пр. (чтобы проверить есть ли точка — нажмите Win+R , и используйте команду: rstrui ). 👇
Точки восстановления создаются!
Вариант 4: очистка временных папок
Здесь есть несколько вариантов «подхода». Я приведу один из самых простейших, см. 4 строки ниже. 😉
del /q /f /s %WINDIR%\Temp\*.*
del /q /f /s %SYSTEMDRIVE%\Temp\*.*
del /q /f /s %Tmp%\*.*
del /q /f /s %Temp%\*.*
- BAT-файл с этими строками чистит временные папки в Windows (как правило, в них скапливается один «мусор», которые занимает лишь место на диске);
- %WINDIR%\Temp\ — это папка «C:\Windows\Temp»;
- %SYSTEMDRIVE% — это системный диск «C:\»;
- *.* — маска для удаления всех файлов;
- /q /f /s — удаление всех каталогов и подкаталогов (без вопросов).
📌 Что можно еще добавить в наш скрипт:
- del /q /f /s %WINDIR%\Prefetch\*.* — эта строка очистит папку Prefetch (в ней сохраняется кэш от различного софта. При удалении той или иной программы — кэш в папке остается, и со временем — ее размер может разрастись);
- del /q /f /s %SYSTEMDRIVE%\*.log — удаление всех Log-файлов с системного диска (это файлы, в которых содержится история запуска программы, например. Во многих случаях они бесполезны). Большинство программ, кстати, ведут логи, со временем они разрастаются и могут отнять сотни МБ на диске;
- При помощи предыдущей команды можно удалить и другие файлы с системного диска (например, с расширением .tmp или .bak // достаточно поменять лишь концовку команды) — однако, будьте аккуратны, легко можно что-нибудь запороть!
📌 Вариант 5: форматирование диска/флешки (с ручным выбором буквы, имени и файловой системы)
Этот мини-скриптик может быть весьма полезный (например, если у вас «подвисает» проводник при обращении к флешки // или не запускается управление дисками).
*
Собственно, здесь все делается аналогично. Чтобы не удлинять процесс — вот вам сразу же сам скриптик (ссылка на RAR-архив с BAT-файлом), который «набросал» за 5 мин. (и еще 10 потратил на проверку 😉). Его текст (выделен коричневым):
@echo off
wmic logicaldisk get name, VolumeName, Size, FileSystem, NumberOfBlocks, description
set /p adisk=»Введите букву диска/флешки для форматирования: »
set /p named=»Введите имя для диска/флешки (любое, например, my_disk): »
set /p number=»Нажмите l — для формат. в NTFS, 2 — в FAT32, 3 — для в ExFAT. Ваше число: «if «%number%» == «1» (
format %adisk%: /FS:NTFS /Q /V:%named%
pause
exit /b
)if «%number%» == «2» (
format %adisk%: /FS:FAT32 /Q /V:%named%
pause
exit /b
)if «%number%» == «3» (
format %adisk%: /FS:ExFAT /Q /V:%named%
pause
exit /b
)
Он довольно простой, но будьте с ним аккуратны! Если укажите не ту букву накопителя — можно легко отформатировать не тот диск.
Как он работает (запускать под именем администратора):
- сначала он показывает информацию по всем подключенным дискам (и их буквы);
- далее запрашивает букву диска/флешки, которую нужно отформатировать (в своем примере я ввел G и нажал Enter) ;
- затем нужно ввести название диска — может быть любым (главное, чтобы название было коротким и лучше использовать только латиницу!). Я использовал my_flash ;
- после выбрать файловую систему (их тут три), и нажать Enter;
- если все введено корректно — диск/флешка будет отформатирована! 👌
Пример работы BAT-файла для форматирования флешки
Как запускать BAT-файл от имени администратора (и по расписанию)
Самый простой вариант — нажать ПКМ по BAT-файлу и в контекстном меню выбрать «Запуск от имени администратора» . См. скрин ниже. 👇
Нажать ПКМ по BAT-файлу
Можно нажать ПКМ по BAT-файлу и создать для него ярлык на рабочем столе. См. скрин ниже. 👇
Создание ярлыка к BAT-файлу
Далее в свойства ярлыка поставить галочку, что задача должна выполняться от имени администратора. Таким образом при каждом двойном клике по этому ярлыку — BAT’ник будет запускаться от админа. 👌
Свойства ярлыка — запускать с админ. правами
В планировщике заданий Windows (чтобы его открыть нажмите Win+R , и используйте команду control schedtasks ) можно настроить запуск BAT-файла в нужное время и с нужными правами (т.е. автоматически). Это может быть весьма удобно, и серьезно упростить работу со множеством задач (очистка Windows от мусора, создание бэкапов и пр.) — точно никогда не забудете!
Более подробно о том, как создать задачу в планировщике заданий — я 📌 рассказывал в этой заметке.
Триггеры — когда выполнять задачу, расписание
Если при выполнении BAT-файла появятся крякозабры вместо русского текста 👌
Чаще всего это бывает с теми BAT, в которых есть русские символы и выставлена «неправильная» кодировка (например, они часто встречаются в пути к папке: «C:\Games\Лучшие игры» ). Кстати, в этом случае BAT-файл работать не будет: после попытки выполнения операции с «крякозабрами» — появится ошибка и окно CMD будет закрыто.