Utilizando o PSExec para EXECUTAR um script ou Software via rede – IP/Hostname Alvo ou Domínio

PsExec

O PSExec faz parte de um kit de ferramentas de linha de comando Sysinternals que auxiliam na administração de sistemas locais e remotos chamado PSTools. O uso mais comum do PsExec é execução de scripts para instalação de algum software sem precisar instalar o software manualmente no cliente.

Já temos um post sobre ele aqui. O objetivo dessa nova postagem é atualizar com algumas informações extras sobre o PSExec em especifico:


Instalação do PsExec

Para o uso do PsExec é necessário fazer o download no site oficial da Microsoft através desse link:

Aviso: O Anti vírus pode acusar vírus devido ao PsExec já ter sido utilizado para disseminar vírus em rede, porém o PsExec em si não tem nenhum vírus.

Após o download, descompacte o .zip, a partir dai você pode mover ele para onde quiser que seja o computador que irá executar remotamente o script. Lembrando que, o computador que for executar o script precisa conseguir enxergar via rede o IP, hostname ou o domínio alvo, sem isso ele não vai conseguir encontrar o alvo do script.


Execução do Script ou Programa

Uma vez já feito o download e estar na máquina que irá executar o script/software remoto, basta abrir aquela pasta via CMD (Execute como administrador).

cd C:\PSExec

A sintaxe do comando é:

psexec \\computador [opções] comando [parametro]
psexec @executa_arquivo [opções] comando [parametro]
ParâmetroDescrição
-aProcessadores separados nos quais o aplicativo pode ser executado com vírgulas em que 1 é a CPU numerada mais baixa. Por exemplo, para executar o aplicativo na CPU 2 e na CPU 4, insira: “-a 2,4”
-cCopie o executável especificado para o sistema remoto para execução. Se você omitir essa opção, o aplicativo deverá estar no caminho do sistema no sistema remoto.
-dNão aguarde até que o processo seja encerrado (não interativo).
-eNão carrega o perfil da conta especificada.
-fCopie o programa especificado mesmo que o arquivo já exista no sistema remoto.
-iExecute o programa para que ele interaja com a área de trabalho da sessão especificada no sistema remoto. Se nenhuma sessão for especificada, o processo será executado na sessão do console. Esse sinalizador é necessário ao tentar executar aplicativos de console interativamente (com E/S padrão redirecionada).
-hSe o sistema de destino for Vista ou superior, o processo será executado com o token elevado da conta, se disponível.
-lExecute o processo como usuário limitado (retira o grupo Administradores e permite apenas privilégios atribuídos ao grupo Usuários). No Windows Vista, o processo é executado com Baixa Integridade.
-nEspecifica o tempoout em segundos conectando-se a computadores remotos.
-pEspecifica a senha opcional para o nome de usuário. Se você omitir isso, será solicitado a inserir uma senha oculta.
-rEspecifica o nome do serviço remoto com o que criar ou interagir.
-sExecute o processo remoto na conta do sistema.
-uEspecifica o nome de usuário opcional para logon no computador remoto.
-vCopie o arquivo especificado somente se ele tiver um número de versão mais alto ou for mais recente do que aquele no sistema remoto.
-wDefinir o diretório de trabalho do processo (em relação ao computador remoto).
-xExibir a interface do usuário na área de trabalho segura do Winlogon (somente sistema local).
-priorityEspecifica -low, -belownormal, -abovenormal, -high ou -realtime para executar o processo em uma prioridade diferente. Use -background para executar com pouca memória e prioridade de E/S no Vista.
ComputadorDirecionar psExec para executar o aplicativo no computador remoto ou computadores especificados. Se você omitir o nome do computador, o PsExec executa o aplicativo no sistema local e, se você especificar um curinga (\*), o PsExec executa o comando em todos os computadores no domínio atual.
@fileO PsExec executará o comando em cada um dos computadores listados no arquivo.
cmdNome do aplicativo a ser executado.
ArgumentosArgumentos a serem aprovados (observe que os caminhos de arquivo devem ser caminhos absolutos no sistema de destino).
-accepteulaEsse sinalizador suprime a exibição da caixa de diálogo de licença.
Explicação dos parâmetros de execução do PSExec

Caso alguma parâmetro ou caminho tenha espaço, você pode executar com aspas duplas para que não tenha problema ao executar. “\\fusion Inventory\Agentes para instalação\GLPI\1.1\script.vbs”.

Caso o parâmetro -u não for indicado, será executado no contexto da sua conta no sistema remoto, mas não terá acessos aos recursos de rede, é comum usar o parâmetro -u dominio\Administrator para conseguir executar o script.

O parâmetro de \\computador pode ser substituído por \\hostname | \\IPdoComputador ou \\* que irá executar no domínio atual.

Mais documentações sobre os parâmetros podem ser consultadas aqui

Uma vez entendido o que é possível fazer com os comandos, vamos para a parte prática de alguns exemplos.

psexec -i \\marklap cmd
psexec -i \\marklap ipconfig /all
psexec -i \\marklap -c test.exe
psexec -i \\marklap c:\teste\test.exe
psexec -l -d "c:\program files\internet explorer\iexplore.exe"
psexec \\10.0.2.20 -s cscript \\192.168.100.21\fusioninventory\Scripts\AgentFusion.vbs
psexec \\* -s cscript \\192.168.100.21\fusioninventory\Scripts\AgentFusion.vbs
psexec -u dominio\Administrator \\10.0.2.20 cscript \\192.168.100.21\fusioninventory\AgentFusion.vbs
Isentivo de uso de Software Livre • Relatos TI
Isentivo de uso de Software Livre • Relatos TI

2 Comments

Comenta aí