Windows Tips & News

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

RECOMENDADO: Clique aqui para corrigir problemas do Windows e otimizar o desempenho do sistema

À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.

Propaganda


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:Arquivo de lote do Windows 10

Solicitação UAC de arquivo em lote do Windows 10

O Windows 10 eleva automaticamente um arquivo em loteOs créditos para este código vão para Matt.

RECOMENDADO: Clique aqui para corrigir problemas do Windows e otimizar o desempenho do sistema
Baixe papéis de parede do Linux Mint 18.3

Baixe papéis de parede do Linux Mint 18.3

O Linux Mint 18.3 "Sylvia" apresenta papéis de parede muito bonitos que muitos usuários gostariam...

Consulte Mais informação

Ativar sinalizadores para indicador de layout de teclado MATE

Ativar sinalizadores para indicador de layout de teclado MATE

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

Consulte Mais informação

A Microsoft lançou papéis de parede de telefone com Clippy

A Microsoft lançou papéis de parede de telefone com Clippy

O lendário assistente de clipes de papel, apresentado pela primeira vez no Microsoft Office 97, v...

Consulte Mais informação