Fala galera!
Dando continuidade as aplicabilidades do utilitário PsExec, hoje a ideia é demonstrarmos como podemos rodar um script copiando-o para várias máquinas cujo nomes estão em um arquivo de texto!
Essa dica funciona muito bem quando estamos trabalhando em um ambiente de domínio com o Active Directory.
Antes de continuarmos, lembro que já explorarmos este utilitário em outras postagens:
- Forçar atualização de Política de Grupo remotamente usando PsExec
- Script para remover Internet Explorer 11, 10 e 9
A primeira coisa que devemos fazer para atingirmos nosso objeto é criar um arquivo de texto com o nome de todas as máquinas que necessitamos rodar nosso script. Lembro que é necessário um nome de máquina por linha!
Neste exemplo, vou criar um arquivo de texto com o nome “Computadores.txt” cujo conteúdo se resume a:
COODMTZ453
COODMTZ418
COODMTZ16
COODMTZ13
COODMTZ416
COODMTZ505
Estarei salvando este arquivo direto na unidade “C:” junto com o PsExec.exe (Caso ainda não tenha feito download, clique aqui para baixa-lo).
Nosso próximo passo é criar o script que desejamos copiar e executar nas máquinas remotas! Para este exemplo, usarei o script disponibilizado no post que discutimos como remover o Internet Explorer (Versões 9, 10 e 11).
O conteúdo do nosso arquivo, que chamarei script.bat, também deve ser salvo na unidade “C:” e se resumo as seguintes linhas
@echo off
echo Removendo IE11
FORFILES /P %WINDIR%\servicing\Packages /M Microsoft-Windows-InternetExplorer-*11.*.mum /c “cmd /c echo Removendo pacote @fname && start /w pkgmgr /up:@fname /quiet /norestart”
Agora que temos tudo pronto, é hora de iniciar nossos testes!! Devemos abrir o prompt de comando (vulgo cmd.exe), navegarmos até o local onde está salvo nossos arquivos (psexec.exe, script.bat e computadores.txt). Antes de executarmos o utilitário, vamos digitar:
PsExec .exe -h
O sufixo “-h” funciona em quase todos os utilitários do Windows. Ele nos retorna o “ajuda” do programa, com parâmetros necessários, exemplos e outras informações de uso. Os parâmetros que precisamos prestar atenção e que utilizaremos hoje são:
@file: PsExec executará o comando em cada um dos computadores listados em um arquivo;
-u: Específica o usuário que poderá executar a ação que queremos;
-h: Se o computador estiver rodando Windows Vista ou superior, ele executará o processo em “modo elevado”;
-c: Copia o programa especificado para a máquina remota para execução.
Temos inúmeras outras funções porém, para este caso estaremos usando apenas estes parâmetros. Portanto, nossa linha de comando deverá ser:
PsExec.exe @C:\Computadores.txt -u meudominio\usuario_admin -h -c C:\Script.bat
Ao apetamos o ENTER, a primeira coisa que será solicitado é a senha do usuário que passamos através do parâmetro “-u”.
Pronto! O PsExec tentará efetuar conexão junto a todas as máquinas presentes no arquivo de texto, em seguida copiara o arquivo bat e o executará usando o usuário que informamos.