PsExec v2.43
Por Mark Russinovich
Publicado em: 11 de abril de 2023
Baixar o PsTools (5 MB)
Introdução
Utilitários como Telnet e programas de controle remoto como o computador da Symantec em qualquer lugar permitem que você execute programas em sistemas remotos, mas eles podem ser um problema para configurar e exigir que você instale o software cliente nos sistemas remotos que deseja acessar. O PsExec é uma substituição leve para o Telnet, que permite executar processos em outros sistemas, completos com interatividade total para aplicativos de console, sem precisar instalar manualmente o software cliente. Os usos mais poderosos do PsExec incluem iniciar prompts de comando interativos em sistemas remotos e ferramentas de habilitação remota, como IpConfig, que de outra forma não têm a capacidade de mostrar informações sobre sistemas remotos.
Observação: alguns verificadores antivírus relatam que uma ou mais das ferramentas estão infectadas com um vírus de "administrador remoto". Nenhum dos PsTools contém vírus, mas eles foram usados por vírus, razão pela qual disparam notificações de vírus.
Instalação
Basta copiar PsExec para o caminho executável. Digitar "psexec" exibe sua sintaxe de uso.
Usando o PsExec
Confira a edição de julho de 2004 da Windows IT Pro Magazine para ver o artigo do Mark que aborda o uso avançado do PsExec.
Uso:
psexec [\\\\computer[,computer2[,...] | @file]][-u user [-p psswd]][-n s][-r servicename][-h][-l][-s|-e][-x][-i [session]][-c [-f|-v]][-w directory][-d][-<priority>][-g n][-a n,n,...][-accepteula][-nobanner] cmd [arguments]
Parâmetro | Descrição |
---|---|
-a | Processadores 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 CPU 4, insira: "-a 2,4" |
-c | Copie 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. |
-d | Não espere que o processo seja encerrado (não interativo). |
-e | Não carrega o perfil da conta especificada. |
-f | Copie o programa especificado mesmo que o arquivo já exista no sistema remoto. |
-i | Execute 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). |
-h | Se o sistema de destino for Vista ou superior, o processo será executado com o token elevado da conta, se disponível. |
-l | Execute o processo como usuário limitado (remove o grupo Administradores e permite apenas privilégios atribuídos ao grupo Usuários). No Windows Vista, o processo é executado com baixa integridade. |
-n | Especifica o tempo limite de conexão a computadores remotos, em segundos. |
-p | Especifica a senha opcional do nome do usuário. Se você omitir o argumento, será solicitado que digite sua senha. |
-r | Especifica o nome do serviço remoto com o qual criar ou interagir. |
-s | Execute o processo remoto na conta do sistema. |
-u | Especifica o nome de usuário opcional para logon no computador remoto. |
-v | Copie o arquivo especificado somente se ele tiver um número de versão mais alto ou for mais recente do que o do sistema remoto. |
-w | Defina o diretório de trabalho do processo (em relação ao computador remoto). |
-x | Exiba a interface do usuário na área de trabalho segura do Winlogon (somente no sistema local). |
-priority | Especifica -low, -belownormal, -abovenormal, -high ou -realtime para executar o processo em uma prioridade diferente. Use -background para executar com baixa memória e prioridade de E/S no Vista. |
computer | Direcione o PsExec para executar o aplicativo no computador remoto ou nos computadores especificados. Se você omitir o nome do computador, o psExec executará o aplicativo no sistema local e, se você especificar um curinga (\\*), o psExec executará o comando em todos os computadores no domínio atual. |
@file | O PsExec executará o comando em cada um dos computadores listados no arquivo. |
cmd | Nome do aplicativo a ser executado. |
arguments | Argumentos a serem passados (observe que os caminhos de arquivo devem ser caminhos absolutos no sistema de destino). |
-accepteula | Esse sinalizador suprime a exibição da caixa de diálogo de licença. |
-nobanner | Esse sinalizador suprime a faixa de inicialização e a mensagem de direitos autorais. |
Você pode incluir aplicativos que têm espaços em seu nome com aspas, por exemplo
psexec \\marklap "c:\\long name app.exe"
A entrada só é passada para o sistema remoto quando você pressiona a tecla Enter. Digitar Ctrl-C encerra o processo remoto.
Se você omitir um nome de usuário, o processo será executado no contexto de sua conta no sistema remoto, mas não terá acesso aos recursos de rede (porque ele está representando). Especifique um nome de usuário válido na sintaxe Domain\User
se o processo remoto exigir acesso aos recursos de rede ou para ser executado em uma conta diferente. Observe que a senha e o comando são criptografados em trânsito para o sistema remoto.
Os códigos de erro retornados pelo PsExec são específicos para os aplicativos que você executa, não para o PsExec.
Exemplos
Este artigo que escrevi descreve como o PsExec funciona e fornece dicas sobre como usá-lo:
O comando a seguir inicia um prompt de comando interativo em \\marklap
:
psexec -i \\marklap cmd
Esse comando executa IpConfig no sistema remoto com a opção /all
e exibe a saída resultante localmente:
psexec -i \\marklap ipconfig /all
Esse comando copia o programa test.exe
para o sistema remoto e o executa interativamente:
psexec -i \\marklap -c test.exe
Especifique o caminho completo para um programa que já está instalado em um sistema remoto se não estiver no caminho do sistema:
psexec -i \\marklap c:\bin\test.exe
Execute o Regedit interativamente na conta do sistema 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"
Baixar o PsTools (5 MB)
PSTools
O PsExec faz parte de um kit crescente de ferramentas de linha de comando do Sysinternals que auxiliam na administração de sistemas locais e remotos chamados PsTools.
Executado em:
- Cliente: Windows 8.1 e superior.
- Servidor: Windows Server 2012 e superior.