Подтвердить что ты не робот

Как закодировать BAT файл, который всегда запускается как режим администратора?

У меня есть эта строка внутри моего файла BAT:

"Example1Server.exe"

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

Это правильно? Мне нужно поставить кавычки?

runas /user:Administrator invis.vbs Example1Server.exe
4b9b3361

Ответ 1

Вы используете runas для запуска программы как конкретного пользователя:

runas /user:Administrator Example1Server.exe

Ответ 2

Другой ответ требует ввода пароля учетной записи администратора. Кроме того, запуск под учетной записью в группе администраторов отличается от запуска с правами администратора: см. UAC в Википедии.

Инструкции по Windows 7

Для запуска от имени администратора создайте ярлык для командного файла.

  1. Щелкните правой кнопкой пакетный файл и нажмите кнопку "Копировать"
  2. Перейдите туда, где вы хотите ярлык
  3. Щелкните правой кнопкой мыши на фоне каталога
  4. Выберите Вставить ярлык

Затем вы можете установить ярлык для запуска от имени администратора:

  1. Щелкните правой кнопкой мыши по ярлыку
  2. Выберите Свойства
  3. На вкладке "Ярлык" нажмите "Дополнительно"
  4. Установите флажок "Запуск от имени администратора"
  5. Нажмите ОК, ОК

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

Проверьте скриншот ниже

Screenshot

Примечание. При этом для запуска от имени администратора текущий каталог (путь) не будет совпадать с файлом bat. Это может вызвать некоторые проблемы во многих случаях, когда файл bat ссылается на относительные файлы рядом с ним. Например, в моем Windows 7 cur директория будет SYSTEM32 вместо местоположения файла bat! Чтобы обойти это, вы должны использовать

cd "%~dp0"

или лучше

pushd "%~dp0"

чтобы убедиться, что cur dir находится по тому же пути, что и файл bat.

Ответ 3

Если вы можете использовать стороннюю утилиту, вот утилита командной строки elevate.

Это описание использования:

Usage: Elevate [-?|-wait|-k] prog [args]
-?    - Shows this help
-wait - Waits until prog terminates
-k    - Starts the the %COMSPEC% environment variable value and
                executes prog in it (CMD.EXE, 4NT.EXE, etc.)
prog  - The program to execute
args  - Optional command line arguments to prog

Ответ 4

Вы можете использовать nircmd.exe поднять команду

Справочник по командам NirCmd - поднять

elevate [Program] {Command-Line Parameters}

Только для Windows Vista/7/2008: Запустите программу с правами администратора. Когда [Программа] содержит один или несколько пробелов, вы должны поместить его в кавычки.

Примеры:

elevate notepad.exe 
elevate notepad.exe C:\Windows\System32\Drivers\etc\HOSTS 
elevate "c:\program files\my software\abc.exe"

PS: я использую его на win 10, и он работает

Ответ 5

преобразуйте пакетный файл в .exe с помощью этого инструмента: http://www.battoexeconverter.com/, тогда вы можете запустить его как администратор

Ответ 6

Я думаю, что у меня есть решение проблемы с паролем. Этот единственный аргумент действительно удивителен. Он запрашивает пароль один раз, а затем никогда не запрашивает его снова. Даже если вы поместите его в другую программу, он не будет запрашивать пароль. Вот:

runas/user:Administrator/savecred Example1Server.exe

Ответ 7

go get github.com/mattn/sudo

Тогда

sudo Example1Server.exe

Ответ 8

Просто добавьте это в начало вашего файла bat:

set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )

Это повысит до администратора, а также останется в правильном каталоге. Проверено на Windows 10.

Ответ 9

Используйте полный физический диск\путь к вашему целевому пакетному файлу в свойствах ярлыка.

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

Ответ 10

Должно определенно работать, добавляя эти строки вверху вашего файла bat. Это буквально спасает жизнь!

set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || (  echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" && "%temp%\getadmin.vbs" && exit /B )