PsExec v2,43
Por Mark Russinovich
Publicado em: 11 de abril de 2023
Baixar PsTools (5 MB)
Introdução
Utilitários como Telnet e programas de controle remoto como o PC Anywhere da Symantec permitem que você execute programas em sistemas remotos, mas eles podem ser difíceis de configurar e exigir que você instale o software cliente nos sistemas remotos que deseja acessar. O PsExec é um substituto de telnet leve que permite executar processos em outros sistemas, com total interatividade para aplicativos de console, sem ter que instalar manualmente o software cliente. Os usos mais poderosos do PsExec incluem o lançamento de 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.
Nota: alguns scanners antivírus relatam que uma ou mais das ferramentas estão infetadas com um vírus "administrador remoto". Nenhum dos PsTools contém vírus, mas eles têm sido usados por vírus, e é por isso que eles disparam notificações de vírus.
Instalação
Basta copiar PsExec para o seu caminho executável. Digitar "psexec" exibe sua sintaxe de uso.
Utilizar o PsExec
Consulte a edição de julho de 2004 da Windows IT Pro Magazine para obter o artigo de Mark que aborda o uso avançado do PsExec.
Utilização:
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 | Description |
---|---|
-a | Processadores separados nos quais o aplicativo pode ser executado com vírgulas, onde 1 é a CPU numerada mais baixa. Por exemplo, para executar o aplicativo na CPU 2 e CPU 4, digite: "-a 2,4" |
-c | Copie o executável especificado para o sistema remoto para execução. Se você omitir essa opção, o aplicativo deve estar no caminho do sistema no sistema remoto. |
-d | Não espere o processo terminar (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 | Executar 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 em segundos de conexão a computadores remotos. |
-p | Especifica a senha opcional para o nome de usuário. Se omitir esta opção, ser-lhe-á pedido que introduza uma palavra-passe oculta. |
-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 login no computador remoto. |
-v | Copie o arquivo especificado somente se ele tiver um número de versão maior ou for mais recente do que o do sistema remoto. |
-w | Defina o diretório de trabalho do processo (relativo ao computador remoto). |
-x | Exiba a interface do usuário na área de trabalho segura Winlogon (somente sistema local). |
-prioridade | Especifica -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. |
computador | Direcione o PsExec para executar o aplicativo no computador remoto ou 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 do domínio atual. |
@file | PsExec executará o comando em cada um dos computadores listados no arquivo. |
CMD | Nome do aplicativo a ser executado. |
Argumentos | Argumentos a serem aprovados (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 o banner de inicialização e a mensagem de direitos autorais. |
Você pode colocar 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 da sua conta no sistema remoto, mas não terá acesso aos recursos da rede (porque está se fazendo). Especifique um nome de usuário válido na Domain\User
sintaxe se o processo remoto exigir acesso a 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 dá dicas sobre como usá-lo:
O comando a seguir inicia um prompt de comando interativo em \\marklap
:
psexec -i \\marklap cmd
Este comando executa IpConfig no sistema remoto com o /all
switch e exibe a saída resultante localmente:
psexec -i \\marklap ipconfig /all
Este comando copia o programa test.exe
para o sistema remoto e executa-o interactivamente:
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 visualizar o conteúdo das chaves SAM e SECURITY::
psexec -i -d -s c:\windows\regedit.exe
Para executar o Internet Explorer como com privilégios de usuário limitado, use este comando:
psexec -l -d "c:\program files\internet explorer\iexplore.exe"
Baixar PsTools (5 MB)
PSToóis
O PsExec faz parte de um kit crescente de ferramentas de linha de comando Sysinternals que auxiliam na administração de sistemas locais e remotos chamados PsTools.
Funciona em:
- Cliente: Windows 8.1 e superior.
- Servidor: Windows Server 2012 e superior.