Título: ¿Es posible el que se ejecute un archivo BAT con derechos de Administrador?
Publicado por: BDJMarcelo en 20 Octubre 2018, 04:18 am
Hola a todos.. ;-)La verdad, no soy un experto en programación, pero, día a día aprendo más. En la web encontré el siguiente código que asegura brindar a un (bat) los derechos de administrador en Windows 10 sin tantos bloqueos. En este caso estoy intentando borrar una carpeta que está ubicada en los (PROGRAMASFILES) pero no me permite el acceso en Windows 10. Agradezco amigos me puedan colaborar con su valiosa ayuda. @echo off
REM .bat con permisos de administrador :------------------------------------- REM --> Analizando los permisos IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" ( >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system" ) ELSE ( >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" )
REM --> Si hay error es que no hay permisos de administrador. if '%errorlevel%' NEQ '0' ( echo Solicitando permisos de administrador... Requesting administrative privileges... Anfordern Administratorrechte ... goto UACPrompt ) else ( goto gotAdmin )
:UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" set params = %*:"="" echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" exit /B
:gotAdmin pushd "%CD%" CD /D "%~dp0" :--------------------------------------
REM ECHO. if %PROCESSOR_ARCHITECTURE%==x86 (goto Uni32bit) else if %PROCESSOR_ARCHITECTURE%==AMD64 (goto Uni64bit)
:Uni32bit CD %PROGRAMFILES% TASKKILL /F /IM "JAHER\JAHER.exe" RD /S /Q "JAHER" DEL /F /Q %0 Exit
:Uni64bit net user administrador /active:yes CD %PROGRAMFILES(X86)% RD /S /Q "JAHER" DEL /F /Q %0 Exit EXIT
Título: Re: ¿Es posible el que se ejecute un archivo BAT con derechos de Administrador?
Publicado por: **Aincrad** en 20 Octubre 2018, 18:16 pm
El problema era q no mataba el proceso, Bueno aqui esta (Funcionando correctamente en Win7 32bits y 64 bits) , Me avisas si te sirvió. @echo off REM .bat con permisos de administrador :------------------------------------- REM --> Analizando los permisos IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" ( >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system" ) ELSE ( >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" ) REM --> Si hay error es que no hay permisos de administrador. if '%errorlevel%' NEQ '0' ( echo Solicitando permisos de administrador... Requesting administrative privileges... Anfordern Administratorrechte ... goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" set params = %*:"="" echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" exit /B :gotAdmin pushd "%CD%" CD /D "%~dp0" :-------------------------------------- REM ECHO. if %PROCESSOR_ARCHITECTURE%==x86 (goto Uni32bit) else if %PROCESSOR_ARCHITECTURE%==AMD64 (goto Uni64bit) :Uni32bit goto Condicional :Uni64bit net user administrador /active:yes goto Condicional :Condicional tasklist | find /i "JAHER.exe" && ( TASKKILL /IM "JAHER.exe" /F echo Proceso Encontrado y Terminado, Procedemos a eliminar la carpeta . . . goto delete ) || ( echo Proceso no Abierto Procedemos a eliminar la carpeta . . . ) goto delete :delete cls color a cd "%PROGRAMFILES%" set Folder=JAHER if exist %folder% ( RD /S /Q %Folder% echo La Carpeta %folder% Fue Eliminada. pause DEL /F /Q %0 ) else ( echo La Carpeta no existe. pause DEL /F /Q %0 ) exit
Título: Re: ¿Es posible el que se ejecute un archivo BAT con derechos de Administrador?
Publicado por: BDJMarcelo en 22 Octubre 2018, 00:57 am
Hola amigo ( **Aincrad** ) ;-) Muchas gracias por tu ayuda, la verdad si me funciono en parte el cambio. Se lemina el archivo (JAHER.exe), de forma correcta, pero no se borra la carpeta.. Al final de ejecutar el archivo me aparaece la opción: echo La Carpeta no existe. pause Pero bueno, para que no me consulte para precionar una tecla para continuar, elimine ( pause ). Lo que si me gustaría saber es si el primer codigo hasta la opción ( REM ) funciona para brindar derechos de administrador a codigos bat que tengo..?Gracias por la ayuda de antemano... ;D @echo off REM .bat con permisos de administrador :------------------------------------- REM --> Analizando los permisos IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" ( >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system" ) ELSE ( >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system" ) REM --> Si hay error es que no hay permisos de administrador. if '%errorlevel%' NEQ '0' ( echo Solicitando permisos de administrador... Requesting administrative privileges... Anfordern Administratorrechte ... goto UACPrompt ) else ( goto gotAdmin ) :UACPrompt echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs" set params = %*:"="" echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs" "%temp%\getadmin.vbs" del "%temp%\getadmin.vbs" exit /B :gotAdmin pushd "%CD%" CD /D "%~dp0" :-------------------------------------- REM
AQUI EL CODIGO BAT....?
EXIT
Título: Re: ¿Es posible el que se ejecute un archivo BAT con derechos de Administrador?
Publicado por: EdePC en 22 Octubre 2018, 04:02 am
Saludos, - En los nuevos Windows suele ser más sencillo utilizar: fsutil dirty query %systemdrive% >nul 2 >&1 || (powershell start-process %0 -verb runas ) echo Tengo permisos de Administrador a partir de ahora
Título: Re: ¿Es posible el que se ejecute un archivo BAT con derechos de Administrador?
Publicado por: BDJMarcelo en 23 Octubre 2018, 03:21 am
Hola amigo ( EdePC ) .... Muchas gracias por tu ayuda, lamentablemente en el código anterior se crea el scrip (getadmin.vbs), pero al no encontrarlo presenta un error. Luego en el cambio que realizo el amigo ( **Aincrad** ), igualmente presenta error. Se activa la cuenta de administrador. net user administrador /active:yes Y al iniciar la PC molesta ver la cuenta activa. Voy a probar tu aporte amigo y te comento.
|