
Estou trabalhando em um pequeno script em lote que eleva programas básicos do Windows para serem executados como administrador.
Todas as funções funcionam bem, mas tive um problema ao tentar executar o "regedit.exe".
Quando a opção 3 é selecionada no script e deve executar o regedit como administrador, recebo um erro:
740: A operação solicitada requer elevação.
Aqui está o roteiro:
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 alternativa para isso?
Gostaria que isso funcionasse sem instalar programas de terceiros, modificar o registro ou desabilitar o UAC.
Responder1
Você pode fazer isso iniciando um novo prompt CMD com RunAs, que você informa para iniciar seu comando.
Para fazer isso em seu lote, altere a última linha para:
runas /savecred /user:admin "cmd /c %run%"
Responder2
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"
:--------------------------------------
Responder3
Talvezessepode ajudar, ou talvez iniciar o lote inteiro como administrador pode ajudar, criando outro script em lote contendo:
runas /user:admin C:\Path_to_your_batch_file\name.bat
Responder4
- Clique com o botão direito em C:\Windows\regedit.exe e escolha Propriedades
- Na guia Compatibilidade, escolha "Executar este programa como administrador"