Windows Tips & News

Como elevar automaticamente um arquivo em lote para executá-lo como administrador

4 respostas

Às vezes, você precisa criar um arquivo em lote que inclui comandos que exigem direitos elevados. Devido à função UAC incluída no Windows desde o Windows Vista, ao iniciar um arquivo em lote, ele abre sem os direitos de acesso necessários, a menos que você clique com o botão direito e selecione "Executar como Administrador" no contexto cardápio. Aqui está como você pode criar um arquivo em lote que se elevará automaticamente.

Antes de continuar, veja como adicionar o arquivo de lote (* .bat) ao novo menu do Explorador de arquivos. Coloque o seguinte conteúdo no início de seu arquivo em lote:

:: Verificar e obter direitos de administrador V2 automaticamente. @echo off. CLS. ECO. ECHO ECHO Executando o Admin shell. ECHO: init. setlocal DisableDelayedExpansion. definir "batchPath =% ~ 0" para %% k em (% 0) defina batchName = %% ~ nk. definir "vbsGetPrivileges =% temp% \ OEgetPriv_% batchName% .vbs" setlocal EnableDelayedExpansion: checkPrivileges. NET FILE 1> NUL 2> NUL. if '% errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges): getPrivileges. if '% 1' == 'ELEV' (echo ELEV & shift / 1 & goto gotPrivileges) ECO. ECHO ************************************** ECHO invocando o UAC para escalonamento de privilégios. ECHO ************************************** ECHO Set UAC = CreateObject ^ ("Shell. Aplicativo "^)>"% vbsGetPrivileges% " ECHO args = "ELEV" >> "% vbsGetPrivileges%" ECHO para cada strArg em WScript. Argumentos >> "% vbsGetPrivileges%" ECHO args = args ^ & strArg ^ & "" >> "% vbsGetPrivileges%" ECHO Próximo >> "% vbsGetPrivileges%" ECHO UAC.ShellExecute "! BatchPath!", Args, "", "runas", 1 >> "% vbsGetPrivileges%" "% SystemRoot% \ System32 \ WScript.exe" "% vbsGetPrivileges%"% * exit / B: gotPrivileges. setlocal & pushd. cd / d% ~ dp0. if '% 1' == 'ELEV' (del "% vbsGetPrivileges%" 1> nul 2> nul & shift / 1):: INICIAR. REM Execute o shell como admin (exemplo) - coloque aqui o código como desejar. ECHO% batchName% Argumentos:% 1% 2% 3% 4% 5% 6% 7% 8% 9.

Coloque seus próprios comandos de lote que requerem elevação abaixo da última linha.

O código fornecido criará um arquivo VBS especial que o reiniciará se não estiver sendo executado como Administrador. Portanto, se você iniciá-lo com permissões limitadas, receberá um prompt do UAC solicitando que você eleve os privilégios antes de executar seus comandos!

Esta é a aparência do Windows 10:

Os créditos para este código vão para Matt.

Microsoft vai parar de vender aplicativos gratuitos de código aberto na Windows Store

Microsoft vai parar de vender aplicativos gratuitos de código aberto na Windows Store

RECOMENDADO: Clique aqui para corrigir problemas do Windows e otimizar o desempenho do sistemaA M...

Consulte Mais informação

Baixar Baixar Essence Skin para AIMP3

Este site usa cookies para melhorar sua experiência enquanto você navega pelo site. Destes cookie...

Consulte Mais informação

Baixar Baixar bbm-aio Skin para AIMP3

Este site usa cookies para melhorar sua experiência enquanto você navega pelo site. Destes cookie...

Consulte Mais informação