sexta-feira, 3 de agosto de 2012

Como utilizar a ferramenta PSEXEC

Utilitários como o Telnet e programas de controle remoto, como o  PCAnywhere, da Symantec, permitem que você execute programas em sistemas remotos, mas podem ser difíceis de configurar e requerem que você instale o software cliente nos sistemas remotos que desejar acessar. O PsExec é um substituto leve do telnet, que lhe possibilita executar processos em outros sistemas, completar aplicativos de console com total interatividade, sem ter que instalar manualmente o software cliente. Os usos mais poderosos do PsExec incluem iniciação de prompts de comando interativos em sistemas remotos e ferramentas de habilitação remota, como o IpConfig, que, de outra forma, não teria a capacidade de mostrar informações sobre sistemas remotos. Eu mesmo já usei o PsExec para remover programas remotamente de computadores no domínio. Os truques para isso virão num próximo post.

Instalação
Copie o PsExec no seu caminho do executável. Digite “psexec” para exibir a sintaxe de uso. O PsExec funciona no Windows Vista, no NT 4, no Win2K, no Windows XP e no Server 2003, incluindo as versões de x64 do Windows.
Sintaxe:


psexec [\\computer[,computer2[,...] | @file][-u user [-p psswd]][-n s][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-][-a n,n,... ] cmd [arguments]
computer : Direcione o PsExec para executar o aplicativo no computador ou nos computadores especificados. Se você omitir o nome do computador, o PsExec executa o aplicativo no sistema local e, se você inserir o nome do computador como “\\*”, o PsExec executa os aplicativos em todos os computadores do domínio atual.


@file : Direciona o PsExec para executar o comando em cada computador listado no arquivo de texto especificado.

-a
: Separa processadores nos quais o aplicativo pode ser executado sem vírgulas, onde 1 é a CPU com o número mais baixo. Por exemplo, para executar o aplicativo na CPU 2 e na CPU 4, digite: “-a 2,4″.
-c : Copia o programa especificado no sistema remoto para execução. Se você omitir esta opção, o aplicativo deve estar no caminho do sistema, no sistema remoto.
-d : Não espere o aplicativo encerrar. Só use esta opção para aplicativos não interativos.
-e : Não carrega o perfil da conta especificada.
-f : Copia o programa especificado no sistema remoto, mesmo que o arquivo já exista neste local.
-i : Executa o programa de modo 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 de console.
-l :Executa o processo como usuário limitado (remove o grupo Administrators (Administradores) e permite apenas privilégios atribuídos ao grupo Users (Usuários). No Windows Vista o processo é executado com Baixa integridade.

-n : Especifica o tempo limite em segundos para conectar-se aos computadores remotos.
-p : Especifica uma senha opcional para o nome de usuário. Se omitir isso, você será solicitado a inserir uma senha oculta.
-s : Executa o processo remoto na conta System (Sistema):
-u : Especifica um nome de usuário opcional para o logon no computador remoto.
-v : Copia o campo especificado somente se ele tiver um número de versão superior ou se for mais recente do que a versão do sistema remoto.
-w : Define o diretório de trabalho do processo (relativo ao computador remoto).
-x : Exibe a interface do usuário na área de trabalho do Winlogon (apenas no sistema local).
-priority : Especifica -low, -belownormal, -abovenormal, -high ou -realtime para executar o processo em uma prioridade diferente.
program : Nome do programa para executar.
arguments : Argumentos para transferir (observe que os caminhos de arquivo devem ser caminhos absolutos no sistema de destino).

Você pode colocar entre aspas os aplicativos que tiverem espaços no nome, por exemplo: “psexec \\marklap “c:\long name\app.exe”. A entrada só é transferida para o sistema remoto quando você pressiona a tecla Enter e digita Ctrl-C para encerrar o processo remoto.

Se você omite um nome de usuário, o processo remoto é executado na mesma conta de onde você executa o PsExec, mas, como o processo remoto é pessoalizado, ele não terá acesso a recursos de rede no sistema remoto. Quando você especifica um nome de usuário, o processo remoto é executado na conta especificada e tem acesso a qualquer recurso de rede a que a conta tenha acesso. Observe que a senha é transmitida em texto não criptografado para o sistema remoto.

Você pode usar a versão atual do PsExec como uma substituição Runas quando você direciona o sistema local, porque o PsExec não requer que você seja um administrador.

 

Exemplos

O seguinte comando inicia um prompt de comando interativo em \\marklap: psexec \\marklap cmd

Este comando executa o IpConfig no sistema remoto com a opção /all, e exibe a saída resultante localmente:

psexec \\marklap ipconfig /all

Este comando copia o programa test.exe no sistema remoto e o executa interativamente:

psexec \\marklap -c test.exe

Especifica o caminho completo para um programa que já esteja instalado em um sistema remoto, se ele não estiver no caminho do sistema.

psexec \\marklap c:\bin\test.exe

Executa o Regedit interativamente na conta System para exibir o conteúdo das chaves SAM e SECURITY:

psexec -i -d -s c:\windows\regedit.exe

Para executar o Internet Explorer com privilégios de usuário limitado, use este comando:

psexec -l -d “c:\program files\internet explorer\iexplore.exe”


O PsExec faz parte de um kit cada vez maior de ferramentas de linha de comando da Sysinternals que auxiliam na administração de sistemas Windows NT/2K locais e remotos, chamadas PsTools.

 

Download:

Download

   Download PsTools

          (1.60 MB)