Eu criei da seguinte maneira
- Criar um script geral_elev.bat na pasta NETLOGON, onde nele vai constar todos comandos que seja executados como administrador
- Criar um script geral.bat na pasta NETLOGON onde nele consta os comandos abaixo (e claro, mais o que desejar colocar)
- Comandos de desejar
- copy \\SERVIDOR\netlogon\geral_elev.bat %PUBLIC% /y >nul 2>&1
- copy \\SERVIDOR\netlogon\geral_elev.exe %PUBLIC% /y >nul 2>&1
- c:
- cd %PUBLIC%
- geral_elev.exe
- del %PUBLIC%\geral_elev.bat /f
- del %PUBLIC%\geral_elev.exe /f
Explicando linha a linha
- Linha 1: Aqui vc insere o que desejar, mapeamentos, copias de arquivos, padrão do seu script
- Linha 2: Copia o script onde tem os comandos que deseja que seja executado como administrador para pasta publica
- Linha 3: Copia o executável responsável por executar o script acima como administrador para pasta publica (em seguida mostro como fazer)
- Linha 4: Vai até o C:
- Linha 5: Vai até a pasta publica comum a todos usuários
- Linha 6: Executa o programa onde eleva o script geral_elev.bat (em seguida mostro como fazer)
- Linha 7 e 8: Exclui os arquivos copiados anteriormente
- Obs: no final dos comandos possui ">nul 2>&1", este serve para que não seja mostrado o resultado do comando, ficando uma tela mais limpa para o usuário.
Para criar o geral_elev.exe, programa responsável por elevar o geral_elev.bat voce precisará o PSEXEC (facilmente achado na internet) e do WinRar
- Clique o no executável PSexec.exe com o botão direito e selecione a opção "Add to archive" do WinRar
- Na tela que abrir selecione "Create SFX archive" e mude o nome do arquivo para "geral_elev.exe", após clique na aba "Advanced"
- Em "Advanced" clique em "SFX options"
- Na aba "Setup" em "Run after program" coloque a linha abaixo
- psexec -accepteula -u DOMINIO\USUARIO_ADMINISTRADOR -p SENHA "%public%\geral_elev.bat"
- Na aba "Modes" selecione "Unpack to temporary folder" e "Hide all", estas opções fazem com que seja extraído o arquivo PSEXEC.exe em um local temporário e que não seja mostrado nenhuma tela de dialogo
- Clique em OK e OK de novo para ser criado o arquivo "geral_elev.bat"
- Copie o arquivo "geral_elev.bat" para o NETLOGON, junto com os scripts "geral.bat" e "geral_elev.bat"
Pronto..... agora todos comandos que vc colocar no script geral_elev.bat será executado como o usuário informado no "Run after program", desta maneira caso queira adicionar um novo comando no script geral_elev.bat não será necessário recriar o arquivo EXE.