2013-11-21 2 views
0

Итак, я пытаюсь создать .bat для taskkill конкретной программы в Win7.Run BAT as admin (без ярлыка)

Я использую команду:

Taskkill/ж/им «LCore.exe»

.bat должен быть запущен от имени администратора, чтобы работать это, кажется, так что я создал ярлык он запускается автоматически в режиме администратора, как указано в другом потоке (How to code a BAT file to always run as admin mode?).

Однако при использовании Microsoft Mouse и Keyboard Center для сопоставления одного из моих дополнительных ключей для запуска ярлыка он автоматически запускает цель ярлыка, а не сам ярлык, который не имеет необходимых прав администратора (при выборе для сопоставления ярлыка он автоматически изменяет путь к цели, вручную устанавливая путь, возвращает ошибку «не найден»).

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

+0

Ответы на связанный с вами вопрос дадут вам другие примеры создания командного файла, который работает с повышенными привилегиями без использования ярлыка. Вы пробовали метод «runas»? –

ответ

1
@ECHO OFF 

OPENFILES>NUL 2>&1 
IF "%ERRORLEVEL%"=="0" GOTO :YouAreAdmin 
GOTO :GetAdmin 

:GetAdmin 
ECHO.Set UAC = CreateObject^("Shell.Application"^) > "StartAsAdmin.vbs" 
ECHO.UAC.ShellExecute "%~fs0", "", "", "runas", 1 >> "StartAsAdmin.vbs" 
StartAsAdmin.vbs 
DEL "StartAsAdmin.vbs" 
EXIT /B 

:OK 
REM Your code starts here! 
ECHO. 
ECHO. If you see this, you have started as admin this bat file. 
PAUSE>NUL 
EXIT 

Извините, но я новичок! :)

Итак, команда OPENFILES проверяет, была ли у вас запущенная программа администратором, как и любая команда, требующая прав администратора. Если после команды введите >NUL 2>&1, CMD скроет любое сообщение из этой команды и будет перенаправлять ошибку. Поэтому, если у вас есть проблемы с простым действием команды, например OPENFILES, единственная ошибка, которая может возникнуть в том, что пакетный файл не имеет прав администратора. И если% ErrorLevel% равно 0 (у вас нет ошибок при выполнении этой команды), кажется, что вы запустили приложение как администратор, поэтому он выполняет шаги :OK. Но если% ErrorLevel% не равно 0 (есть проблема), похоже, что у приложения нет привилегий администратора. Поэтому он автоматически запускается как администратор из временного VBScript, сгенерированного этим пакетным файлом, затем запускается и затем удаляется.

0

В Windows 7 вам не нужно писать дополнительные скрипты, потому что у него есть встроенный инструмент PowerShell. Попробуйте выполнить следующие действия:

powershell.exe start-process taskkill.exe -verb runas -argumentlist '/f /im "LCore.exe"' 
Смежные вопросы