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

Arquivos de papéis de parede do Linux Mint 19.2

Este site usa cookies para melhorar a sua experiência enquanto navega pelo site. Destes cookies, ...

Consulte Mais informação

Remover Kernels Antigos no Linux Mint

Remover Kernels Antigos no Linux Mint

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

Consulte Mais informação

Baixe os papéis de parede do Surface Pro 7 / Laptop 3 apresentados no evento de outubro de 2019

Baixe os papéis de parede do Surface Pro 7 / Laptop 3 apresentados no evento de outubro de 2019

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

Consulte Mais informação