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.