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
A Microsoft pode atualizar a aparência do Windows 10 com WinUI 3

A Microsoft pode atualizar a aparência do Windows 10 com WinUI 3

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

Consulte Mais informação

A Microsoft pretende adquirir a Discord por US $ 10 bilhões

A Microsoft pretende adquirir a Discord por US $ 10 bilhões

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

Consulte Mais informação

Teclas de atalho para gerenciar desktops virtuais no Windows 10 (Visualização de tarefas)

Teclas de atalho para gerenciar desktops virtuais no Windows 10 (Visualização de tarefas)

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

Consulte Mais informação