Rodrigo Strauss :: Blog
Ferramentas de apoio Win32: psexec
Achei melhor "desamarrar" esses posts de ferramentas da palestra do quinto encontro, pois assim eu posso escrever sobre mais ferramentas do que eu falei ou planejei falar.
O psexec é mais uma ferramenta Sysinternals, e permite que você execute um processo remotamente sem fazer login interativo (no popular, "sentar na máquina"). A sintaxe é simples, algo como "psexec \\maquina-remota executavel.exe". O que é mais interessante é que o psexec redireciona a saída (stdout) do programa para sua máquina, assim como redireciona seu stdin para a máquina remota. Isso permite que você faça de qualquer máquina um servidor de telnet chamando "psexec \\servidor cmd.exe". Use sua criatividade para usar isso para diagnóstico, resolução de problemas em servidores, execução de um servidor para debug remoto, rodar scripts, etc. Ah, antes que você ache o mundo um lugar maravilhoso demais, devo lembrá-lo que você precisa ser administrador da máquina remota. Só espero não ter afetado o estado emocional de ninguém subitamente.
Ele instala um serviço na máquina remota, e esse serviço cria os processos e redireciona o input/output:
(você também consegue instalar serviços em uma máquina remota usando a API CreateService ou usando o comando sc do Windows).
Uma coisa que deve ser notada é que o psexec executa o processo remoto com impersonate - simplificadamente, muda o token processo para um token do seu usuário - e o processo criado não tem acesso à rede. Para conseguir acesso à recursos remotos, use "psexec -u dominio\usuario \\nome-da-maquina-remota comando". Ele vai pedir para você digitar a senha e a enviará sem criptografia via um Named Pipe, que acaba indo via socket (para ver os Named Pipes do psexecsvc, use o Process Explorer. No post anterior eu expliquei como ver os handles de um processo).
(Sim, é possível rodar "psexec \\maquina-remota wmplayer.exe fart.mp3" em uma máquina remota se você for admin. Mas eu não disse nada)
Em 17/10/2008 06:19, por Rodrigo Strauss





Existem diversos usos muito úteis dessa ferramenta. Como a usei, posso enumerar apenas alguns:
- Subir servidor de depuração para depurar remoto um processo que está tendo problemas antes do logon ou em uma máquina inacessível "sentando na máquina".
- Habilitar debug de kernel e reiniciar a máquina (no Windows Vista, pode ser usado o bcdedit pelo prompt de comando).
- Matar um processo que está arruinando o processamento e travando todo o sistema (sim, isso pode ser feito usando pskill remoto, também).
[]s