Как запускать bat файлы от имени администратора

Основные команды, синтаксис и примеры использования батников

Как сделать bat-файл вы знаете, теперь настала пора самого интересного, а именно синтаксиса языка интерпретатора CMD. Понятно, пустой батник работать не будет, он даже не запустится при двойном по нему клике. Чтобы скрипт сработал, в нём должна быть прописана хотя бы одна команда.

Для наглядного примера посмотрим, как написать bat-файл для запуска программ. Допустим, приступая к работе, вы каждый раз запускаете три программы – Chrome, Firefox и VLC. Упростим задачу, создав скрипт, который будет сам запускать эти программы с интервалом в пять секунд.

Открываем пустой батник и вставляем в него такие команды:

start "" "C:/Program Files/Google/Chrome/Application/chrome.exe"
timeout /t 05
start "" "C:/Program Files/Mozilla Firefox/firefox.exe"
timeout /t 05
start "" "C:/Program Files/VideoLAN/VLC/vlc.exe"

Команда start запускает исполняемый файл нужной программы, а команда timeout /t задаёт интервал между запусками. Обратите внимание на расположение кавычек – в них берутся пути, в которых имеются пробелы. Также если в пути есть кириллические символы, в начало скрипта следует вставить изменяющую кодировку команду chcp 1251, в противном случае интерпретатор не сможет правильно прочитать путь.

При запуске скрипта будет последовательно открыто четыре окна консоли, это нормальное явление, по выполнении команд все они автоматически закроются, впрочем, можно сделать так, чтобы открывалось только первое окно. Для этого код запуска приложения следует изменить следующим образом:

start /b "" "путь"

Может также статься, что в определённый момент потребуется приостановить выполнение скрипта, чтобы пользователь сам смог решить, выполнять ли все остальные команды или нет. Для этого существует команда pause. Попробуйте заменить ею timeout и увидите, что получится.

start /b "" "путь"
pause

Рассмотрим ещё один пример команд для bat файла. Напишем скрипт, который будет в одном случае выключать компьютер, а в другом – перезагружать его. Для этих целей мы будем использовать команду shutdown с параметрами /s, /r и /t. При желании можно добавить в батник запрос на выполнение действия, вот так:

Вариант #1

Теперь к сути: что делать, если нет доступа к профилю администратора и вы сидите под профилем обычного пользователя…

Для этого случая нам понадобиться 👉 загрузочная LiveCD-флешка (я рекомендую взять версию от Сергея Стрельца). Как ее правильно записать и создать — указано в той же статье, ссылка на которую в предыдущем предложении.

Причем, скорее всего (на 98% 😉), создать такую флешку у вас получиться даже с правами обычного пользователя (т.е. не придется искать другой ПК/ноутбук).

После, необходимо подключить эту флешку к USB-порту “проблемного” компьютера и загрузиться с нее (👉 как это сделать (ссылка в помощь для начинающих)).

Далее дождаться загрузки Windows с LiveCD-флешки и в меню ПУСК найти и запустить утилиту Windows login Unlocker.

Примечание: если вы создадите LiveCD-флешку отличным способом (от рекомендованного мной выше) – эту утилиту вам придется загрузить отдельно (благо, что интернет в WinPE на LiveCD работает)!

Затем выбираем проблемную Windows (актуально, если у вас их несколько) и создаем нового пользователя (он по умолчанию будет администратором!).

После, перезагружаем ПК/ноутбук — Windows нам предложит выбрать профиль для загрузки (т.к. их у нас будет по крайней мере уже 2).

Разумеется, входим под новым пользователем (под админом). 👇

Далее можете нажать Win R, и использовать команду NETPLWIZ в окне “Выполнить”.

После этого у вас откроется окно управления учетными записями — выберите свою и поменяйте у нее членство в группах (с пользователя -> в администраторы). Скрины ниже. 👇

Вариант #2

В некоторых случаях решить вопрос можно через безопасный режим (отмечу: не всегда, зависит от ряда параметров вашей ОС. Но если под-рукой нет LiveCD-флешки — то почему не попробовать?).

Что делать по шагам:

  1. перезагружаем Windows 👉 в безопасном режиме;
  2. нажимаем Win R и вводим в строку “открыть” команду NETPLWIZ;
  3. далее появится список учетных записей;
  4. выбираем одну из них и открываем ее свойства;
  5. во вкладке “Членство в группах” переводим ползунок в группу “Администраторы”;
  6. перезагружаем компьютер (чтобы выйти из безопасного режима).

Если вам помог какой-то способ – напишите об этом в комментариях (заранее благодарю). 

Дополнения также приветствуются…

Удачи!

Первая публикация: 27.08.2020

Корректировка: 13.09.2021

Вариант 2: запуск игры с высоким приоритетом откл. авто-поиска wi-fi сетей

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

*

Этот BAT-файл я создал на одном своем рабочем ноутбуке (он уже довольно “старый”, и нередко притормаживал при запуске игр). Однако, благодаря нескольким строкам кода — удается вполне комфортно играть. 👌

Что за строки нужно добавить в BAT (выделены коричневым):

cmd.exe /c start /high /D “C:GamesCounter-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

Что он делает:

  1. запускает игру CS с высоким приоритетом (это позволяет снизить кол-во притормаживаний в играх). Разумеется, вместо строки “C:GamesCounter-Strike 1.6” hl.exe — вы можете указать свою игру и ее расположение;
  2. отключает авто-поиск Wi-Fi сетей (это снижаем пинг и увел. скорость сети // правда не дает подключаться к другим Wi-Fi сетям). Кстати, вместо “Wi-Fi” — нужно указать название своего адаптера (посмотрите так: нажмите Win R, и используйте команду ncpa.cpl);
  3. далее идет пауза – скрипт будет ждать нажатия какой-нибудь клавиши (примечание: т.к. у нас будет запущена игра — это окно скроется из вида, и оно не будет нам мешать);
  4. когда через часик-другой игра будет закрыта, — вы увидите окно командной строки и нажмете какую-нибудь клавишу — будет снова включен авто-поиск Wi-Fi сетей. Удобно? 😉
:/>  Причины медленной загрузки компьютера с Windows 10 при включении: как ускорить

Вариант 3: создание резервной копий файлов и точки восстановления в windows

Приведу наиболее простую и довольно надежную команду для создания резервных копий файлов и папок:

xcopy C:Games D:backup /f /i /y /s

*

Она копирует один каталог в другой (просто, без вопросов и расспросов). Если вам нужно скопировать 2 или 3 (или более) каталогов — просто создайте несколько подобных строк.

Расшифровка:

  1. C:Games — тот каталог, который будем копировать (все подкаталоги и файлы из них тоже будут скопированы);
  2. D:backup — тот каталог, куда будет всё скопировано;
  3. /f — выводит имена файлов (чтобы вы видели, что происходит);
  4. /i — создает новый каталог, если на диске “D:” нет каталога “backup” (см. строку выше);
  5. /y — перезаписывает старые файлы новыми;
  6. /s — копирует каталоги и подкаталоги, если в них есть какие-то файлы.

Для создания точки восстановления можно использовать следующий код:

wmic.exe /Namespace:\rootdefault Path SystemRestore Call CreateRestorePoint “MyRestorePoint”, 100, 7
pause

После запуска подобного BAT-файла — точка восстановления будет создана в авто-режиме! Это очень удобно делать перед установкой нового софта, железа и пр. (чтобы проверить есть ли точка — нажмите Win R, и используйте команду: rstrui). 👇

Если точки нет (как в моем примере ниже) — прочитайте это!

Если при выполнении bat-файла появятся крякозабры вместо русского текста 👌

Чаще всего это бывает с теми BAT, в которых есть русские символы и выставлена “неправильная” кодировка (например, они часто встречаются в пути к папке: “C:GamesЛучшие игры”). Кстати, в этом случае BAT-файл работать не будет: после попытки выполнения операции с “крякозабрами” — появится ошибка и окно CMD будет закрыто…

Что можно сделать:

  1. первое: попробуйте в начало BAT-файла добавить код @chcp 1251 (и сохраните файл!);
  2. второе: установите блокнот Notepad  и задействуйте OEM-866 кодировку в меню: “Кодировки/Кодировки/Кириллица/OEM-866”(предварительно, для бэкапа, скопируйте весь текст текущего документа в другой файл).

👉 Доп. в помощь!

Вместо текста иероглифы, квадратики и крякозабры (в браузере, Word, тексте, окне Windows).

Дополнения по теме – приветствуются!

Удачи!

Запуск пакетного файла по расписанию

Чтобы запланировать запуск пакетного файла в Windows 10, вы можете использовать планировщик задач, выполнив следующие действия:

  1. Откройте Пуск.
  2. Введите планировщик заданий и щелкните по верхнему результату, чтобы открыть приложение.
  3. Щелкните правой кнопкой мыши ветку «Библиотека планировщика заданий» и выберите опцию Создать папку….
  4. Введите имя для папки – например, MyScripts.

    Необязательно создавать папку, но рекомендуется организовать ваши задачи.

  5. Нажмите кнопку ОК.
  6. Щелкните правой кнопкой мыши папку MyScripts.
  7. Выберите опцию Создать простую задачу.
  8. В поле «Имя» введите краткое описательное имя для задачи – например, SystemInfoBatch.

    Создание простой задачи для запуска скрипта

  9. (Необязательно) В поле «Описание» создайте описание для задачи.
  10. Нажмите кнопку Далее.
  11. Выберите опцию Ежемесячно.

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

  12. Нажмите кнопку Далее.
  13. Используя настройку «Начать», укажите день и время запуска задачи.
  14. Используйте выпадающее меню «Месяцы», чтобы выбрать месяцы года, в которые вы хотите выполнить задачу.
  15. Используйте выпадающее меню «Дни» или «В:», чтобы указать дни, в которые будет выполняться задание.

    Настройка сроков выполнения запланированной задачи

  16. Нажмите кнопку Далее.
  17. Выберите опцию Запустить программу, чтобы запустить пакетный файл.
  18. В поле «Программа/скрипт» укажите путь к пакетному файлу.
  19. Нажмите кнопку Готово.

После выполнения этих действий задача сохраниться и запустит пакетный файл по указанному вами расписанию.

Запуск пакетных файлов при запуске

В качестве альтернативы, если вы хотите запускать пакетный файл каждый раз, когда вы входите в свое устройство, вместо использования планировщика заданий, вы можете сохранить сценарий в папке «автозагрузка».

Чтобы запустить скрипт при запуске, используйте следующие простые шаги:

  1. Откройте проводник.
  2. Найдите папку с командным файлом.
  3. Щелкните правой кнопкой мыши файл и выберите параметр Копировать.
  4. Используйте комбинацию Win R, чтобы открыть окно «Выполнить»
  5. Введите следующую команду: shell:startup
  6. Нажмите Вставить на вкладке «Главная» в папке «Автозагрузка». (Или вы можете нажать кнопку «Вставить ярлык», чтобы создать ярлык для командного файла.)

    Вставка пакетного файла для автозагрузки

  7. Выйдите из учетной записи Windows 10.
  8. Войдите в аккаунт.

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

Мы ориентируем это руководство на Windows 10, но возможность использовать пакетные файлы существует давно, а это означает, что вы можете обратиться к этим инструкциям, если вы всё ещё используете более старую версию, включая Windows 8.1 или Windows 7.

:/>  Нужно ли оптимизировать SSD диск в Windows 10

Запустить bat из под администратора?

Существует множество приложений Windows, для работы которых требуются права администратора. В современных ОС для этого обычно используется режим ”Запуск от имени администратора” контекстного меню проводника. При этом выводится запрос средства контроля учетных записей пользователя UAC (User Account Control ), требующего подтверждения разрешения на запуск приложения:

Запрос средства контроля учетных записей UAC

Если пользователь нажимает кнопку ”Да”, приложение выполняется с повышением привилегий в контексте учетной записи администратора. Если же пользователь нажмет ”Нет” – приложение выполнится в контексте пользовательской учетной записи. Такой же результат будет получен, если пользователь вообще не ответит на запрос UAC – по истечении времени ожидания ответа, приложение будет запущено в контексте учетной записи пользователя. Это делает проблематичным выполнение командных файлов с повышением привилегий в автоматическом режиме, поскольку требуется вмешательство пользователя. Для решения данной проблемы большинство пользователей Windows, как правило, отключают систему контроля учетных записей UAC, что нежелательно, поскольку это снижает уровень безопасности ОС. Так, например, при выключенном UAC, пользователь даже не заметит как вирус-шифровальщик удалит теневые копии томов и приступит к шифрованию файлов. В результате будут гарантировано потеряны данные без какой-либо возможности их восстановления. При включенном же UAC, попытка удаления теневых копий с помощью стандартной утилиты vssadmin.exe приведет к отображению на экране запроса UAC, который, как минимум, привлечет внимание пользователя и позволит отреагировать на угрозу. Подробнее о вероятности восстановления данных после вируса-шифровальщика в отдельной статье.

Таким образом, возникает задача выполнения программ или командных файлов от имени администратора при включенном UAC, но без запроса на разрешение их запуска.
Одним из способов решения подобной задачи является использование специально подготовленной задачи стандартного Планировщика заданий Windows.
Необходимо создать задачу для запуска командного файлат с повышенными привилегиями.
Переходим в ”Панель управления” – ”Администрирование” – ”Планировщик заданий” – ”Библиотека планировщика заданий”, выбираем в меню ”Действия” – ”Создать простую задачу”.
С помощью мастера создания простой задачи, создаем задачу, например, с именем Admbat

Создание простой задачи в планировщике заданий

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

Создание простой задачи в планировщике заданий, триггер - Однократно

В качестве действия выбираем ”Запустить программу”

Создание простой задачи в планировщике заданий – Запустить программу

В качестве программы будет запускаться командный файл, например C:Scriptsifadmin.bat. При необходимости можно задать рабочую папку программы.

Ставим галочку на ”Открыть окно ”Свойства” для этой задачи после нажатия кнопки ”Готово” ”. В свойствах задачи включаем режим ”Выполнить с наивысшими правами”.

Общие свойства задачи в планировщике заданий Windows

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

netstat –b – отобразить список соединений с именами создавших их программ. Параметр b требует административных привилегий. Содержимое командного файла:


Rem Выполняем команду в контексте учетной записи пользователя
netstat –b
rem Пауза для просмотра результатов
pause
Rem Готовим содержимое командного файла Ifadmin.bat задачи планировщика Admbat
echo netstat –b > C:Scriptsifadmin.bat
echo pause >> C:Scriptsifadmin.bat
Rem Выполним задачу планировщика с именем Admbat
schtasks /run /tn Admbat

Таким образом, сначала будет выполнена команда netstat –b в контексте учетной записи пользователя, с выдачей сообщения


Запрошенная операция требует повышения.

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

При необходимости выполнения конкретного командного файла в контексте учетной записи администратора, можно просто скопировать его содержимое в C:Scriptsifadmin.bat :

copy C:MyScriptsadmin1.bat C:Scriptsifadmin.bat

И выполнить задачу планировщика Admbat командой:

schtasks /run /tn Admbat

Задача планировщика будет использоваться одна и та же – Admbat, но содержимое командного файла ifadmin.bat можно менять под свои потребности.

Задачу планировщика можно создать и из командной строки с помощью утилиты schtasks.exe и разрешить ее выполнение с правами администратора, задав параметр /RL HIGHEST

schtasks /create /TN “Admbat” /TR “C:Scriptsifadmin.bat” /SC ONCE /SD 11/12/2021 /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), но с правами администратора).

Содержимое командного файла:


@echo OFF

WHOAMI /PRIV | find /i “SeRemoteShutdownPrivilege” > nul

if %ERRORLEVEL% == 0 goto admin

copy /Y %~f0 C:Scriptsifadmin.bat

schtasks /run /TN Admbat

exit

:admin

start “notepad with admin rights” %SystemRoot%notepad.exe C:Scriptsifadmin.bat

exit

Несколько пояснений. Данный командный файл вначале проверяет наличие прав администратора, и если они есть – выполняется переход на метку :admin – запускается блокнот, открывающий файл C:Scriptsifadmin.bat. После чего работа командного файла завершается по команде exit. Если права администратора отсутствуют, выполняется копирование текущего командного файла, имя и путь которого принимает переменная %~f0, в файл C:Scriptsifadmin.bat. Для подавления запроса на перезапись существующего файла команда copy используется с ключом /Y. После копирования, выполняется запуск задачи планировщика, обеспечивающей повторный запуск этого же командного файла (скопированного в файл C:Scriptsifadmin.bat, но уже с правами администратора системы.

Дополнительная информация по теме:

Планировщик заданий Windows

Список команд CMD Windows

Управление планировщиком заданий в командной строке Windows

Если вы желаете поделиться ссылкой на эту страницу в своей социальной сети, пользуйтесь кнопкой “Поделиться”

В начало страницы             |            
На главную страницу сайта

Использование утилиты admilink

Указанная в заголовке утилита является консольной, и после инсталляции будет находиться в каталоге Windows.

Запускаем инструмент и видим вполне удобное окошко с русским интерфейсом, поэтому разобраться будет легко.

  • В первом поле вводим путь до файла, который хотим запускать;
  • Параметры командной строки во втором поле заполнять необязательно;
  • Третья строчка будет заполнена самостоятельно, если это не так, впишите С:windowssystem32
  • Режим отображение окна. В 4 строчке есть 2 параметра:
    • SHOW – стандартной запуск ПО с видимым окном;
    • HIDE – работа ПО в фоновом режиме;

Настраиваем параметры на вкладке Account:

  • В качестве имени домена пишем имя своего ПК, либо NetBios и test.lan;
  • Имя пользователя – можно выбрать, нажав на кнопку с тремя точками;
  • Пароль от учетной записи и подтвердить.
  • Введя все данные, нажмите кнопку «Тестировать».

Утилита проверит работоспособность указанной нами информации. Жмём любую клавишу в CMD.

После удачного теста нажмите кнопочку «Сгенерировать ключ запуска AdmiRun». Если этого не сделать, то ничего не будет работать.

  • Идём на вкладку «Link» и делаем следующее:
  • Имя ярлыка – называем любым именем;
  • Каталог – указываем, где будет расположен ярлык;
  • Картинка – выбираем изображение для ярлыка;
  • Жмём кнопку «Сгенерировать командную строку».
  • Теперь нажимаем большую кнопку «Создать Ярлык сейчас!».

Значок сразу же появится на рабочем столе или каталоге, который вы указали.

Пробуем запустить ярлык. Если всё удачно и программа запустилась от имени админа, то поздравляю. Иначе неверно выполнены действия на каком-то шаге.

Если зайти в свойства ярлыка и изменить программу в поле «Объект» на другую, то она попросту не запуститься. Это небольшая защита от вредоносов.

Свойства файла

Способ, всегда запускать программу с правами администратора с помощью меню Свойства файла.

  1. Щелкните правой клавишей мыши на иконке программы;
  2. Выберите Свойства;
  3. Откройте вкладку Совместимость;
  4. Установите галочку Запускать эту программу от имени администратора;
  5. Нажмите ОК.

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

Запуск программы с повышенными правами используя контекстное меню, в меню Пуск.

  1. Откройте меню Пуск (Ctrl ESC);
  2. Найдите значок программы в списке Все программы;
  3. Щелкните правой клавишей мыши по значку программы, выберите: Дополнительно -> Запуск от имени администратора.

Этим же способом можно запускать и Плитки приложений в Windows 10, 8.

Клик мышкой и сочетание клавиш в меню Пуск еще один способ запустить программу от имени администратора.

  1. Откройте меню Пуск (Ctrl ESC);
  2. Найдите значок программы в списке Все программы;
  3. Удерживая нажатыми клавиши Ctrl Shift щелкните по значку программы.
Сочетание клавиш для запуска программы от имени администратора в меню Пуск
Вы можете использовать сочетание Ctrl Shift Click на плитке приложения в меню Пуск.

Способ запуска программы с полными правами используя меню Выполнить.

  1. Нажмите сочетание клавиш Windows R (или щелкните по кнопке Пуск правой клавишей мыши и выберите Выполнить);
  2. Введите имя команды или перетащите мышкой пиктограмму программы в окно ввода меню Выполнить;
  3. Нажмите сочетание клавиш Ctrl Shift Enter.

Оставьте комментарий