El método de realización de permitir que el procesamiento por lotes de murciélagos se ejecute con autoridad de administrador

1. El primer método

Algunas computadoras están conectadas por un usuario que no es administrador. Al ejecutar un programa, debe preguntar si desea ejecutarlo. La solución es la siguiente:

@ echo off
%1 %2
ver|find "5.">nul&&goto :Admin
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :Admin","","runas",1)(window.close)&goto :eof
:Admin
//在你的bat开头加上上面的命令即可
//下面是你需要执行的命令
set path=%~dp0
echo install mysql service...
echo %path%
cd %path%\bin\
mysqld.exe --remove mysql
mysqld.exe --install mysql
echo start mysql Serviceo
"%SystemRoot%"\system32\net start mysql

2, bat script para obtener permisos de administrador

@echo off
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"

Se puede lograr escribiendo en la parte superior del archivo bat.

3. Ejecute comandos con derechos de administrador en el script bat

Agregue el siguiente comando a la primera línea del archivo de script bat:

%1 mshta vbscript:CreateObject(“Shell.Application”).ShellExecute(“cmd.exe”,"/c %~s0 ::","",“runas”,1)(window.close)&&exit

4. Ejecute el archivo por lotes (bat) automáticamente como administrador.

En el trabajo diario de operación y mantenimiento, con el fin de facilitar la instalación o configuración del sistema para los usuarios de Windows, utilizar el procesamiento por lotes (archivo bat) que viene con Windows es el método más simple y rápido.

Sin embargo, el script por lotes no se ejecutará como administrador de forma predeterminada. En circunstancias normales, nombraré el script "XXXXXX (¡haga clic con el botón derecho y ejecútelo como administrador!). Bat", pero algunos usuarios siempre ignorarán esto. Preguntar, ejecutar directamente. En este momento, debido a permisos insuficientes, el script no se ejecuta. Podemos usar una solución alternativa. Cuando se inicia el bat, primero llame al script vbs y use el script vbs para llamar a runas como parte del bat como administrador.

Nuestro script se puede escribir bajo runas, así que simplemente haga clic en el script bat para ejecutarlo como administrador.

El código de muestra es el siguiente:

@ECHO OFF
setlocal EnableDelayedExpansion
color 3e
title 添加服务配置
  
PUSHD %~DP0 & cd /d "%~dp0"
%1 %2
mshta vbscript:createobject("shell.application").shellexecute("%~s0","goto :runas","","runas",1)(window.close)&goto :eof
:runas
  
::填写自己的脚本
  
echo 执行完毕,任意键退出
  
pause >nul
exit

5. Ejecute el script bat con derechos de administrador.

Simplemente agregue la siguiente secuencia de comandos al comienzo del archivo .bat que escribió y luego haga doble clic en el archivo .bat para ejecutarlo con privilegios de administrador

@echo off&color 17
if exist "%SystemRoot%\SysWOW64" path %path%;%windir%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
exit /B
:UACAdmin
cd /d "%~dp0"
echo 当前运行路径是:%CD%
echo 已获取管理员权限

6. Cómo ejecutar el procesamiento por lotes de BAT y CMD como administrador

¿Cómo hacer que los lotes de BAT y CMD se ejecuten como administrador?

Algunos procesos por lotes requieren una ejecución de muy alta autoridad para lograr el efecto que necesitamos,

Coloque el siguiente código en la parte superior del lote para ejecutarlo como administrador.

@echo off
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

7. El método correcto para que el procesamiento por lotes CMD de la línea de comandos se ejecute automáticamente como administrador

Se solucionó el problema cuando hay espacios en el camino.

Agregue al comienzo del lote:

Adecuado para sin parámetros

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit

Aplicar a un parámetro

%2 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c "^&chr(34)^&"%~0"^&chr(34)^&" "^&chr(34)^&"%~1"^&chr(34)^&" ::","%cd%","runas",1)(window.close)&&exit

Se pueden deducir más parámetros por analogía. Al
ejecutar el procesamiento por lotes, agregue un parámetro más ::, esta oración no se ejecutará.
Para ser compatible con la ruta corta 8.3, puede reemplazar% 0 con% s0, etc. En
teoría, no hay problema, pero la ruta de inicio a veces no lo hace. Confiable, tal vez pushd o cd / d más tarde

8. Varias formas de ejecutar archivos bat con derechos de administrador

1. Cree un acceso directo de murciélago y luego haga clic con el botón derecho en el acceso directo -> propiedades -> avanzado -> Ejecutar como administrador.
2. Descargue la herramienta bat to exe, convierta bat a exe y luego haga clic con el botón derecho en exe–> propiedades–> Compatibilidad–> Ejecutar como administrador.
3. Ejecute cmd con derechos de administrador y luego ejecute el bat correspondiente en el cuadro DOS.

Supongo que te gusta

Origin blog.csdn.net/CSDN_C2/article/details/108408158
Recomendado
Clasificación