Arquivo em lote para executar programas como admin - erro 740

2

Estou trabalhando em um script em lote pequeno que eleva os programas básicos do Windows para serem executados como administrador.

Todas as funções funcionam bem, mas eu tive um problema ao tentar executar o "regedit.exe".

Quando a opção 3 é selecionada no script e deve executar o regedit como admin, recebo o erro:

740: The requested operation requires elevation.

Aqui está o script:

echo off
cls
echo.
echo Start as admin:
echo /----------------\
echo # 1. CMD         #
echo # 2. Task Manager#
echo # 3. Regedit     #
echo # 0. Exit        #
echo \----------------/
echo.

set /p run=

if %run%==1 (
set run="cmd"
)

if %run%==2 (
set run="taskmgr"
)

if %run%==3 (
set run="regedit"
)

if %run%==0 (
exit
)

runas /savecred /user:admin %run%

Existe uma solução para isso?

Eu gostaria de fazer isso funcionar sem instalar programas de terceiros, modificando o registro ou desativando o UAC.

    
por Divin3 02.02.2016 / 23:42

4 respostas

3

Você pode ativá-lo iniciando um novo prompt do CMD com RunAs, que informa para iniciar seu comando.

Para fazer isso no seu lote, altere a última linha para:

runas /savecred /user:admin "cmd /c %run%"

    
por 03.02.2016 / 06:13
2
Add this to the top of your Batch file and at the end just put %run% instead of (runas /savecred /user:admin %run%)


@echo off

:: BatchGotAdmin
:-------------------------------------
REM  --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    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"
:--------------------------------------
    
por 03.02.2016 / 07:23
1

Talvez este pode ajudar, ou talvez iniciar o lote inteiro como o administrador pode ajudar, criando outro script em lote contendo:

runas /user:admin C:\Path_to_your_batch_file\name.bat
    
por 03.02.2016 / 04:50
0
  1. Clique com o botão direito do mouse em C: \ Windows \ regedit.exe e escolha Propriedades
  2. Na guia Compatibilidade, escolha "Executar este programa como administrador"
por 15.02.2016 / 16:04