Executando .bat/.exe/.msi remotamente com PSEXEC

na prompt como administrador

psexec –u “user admin” –p “senha do admin” –D “\\server\pasta-compartilhada\arquivo.exe” cmd /c @c”:\scripts.txt” (enter) -H

 

-u = usuário admin do dominio

-p = senha do usuario admin do dominio

-D = não travar o console

@c:\scripts.txt = lista de referencia “Exemplo abaixo, pode-se usar o nome da maquina ou o IP”

image

-H = não barra no UAC

 

By Jefferson Feitosa

25 comentários

  1. Olá Charles. Meu nome é Angelo trabalho com TI na empresa Atendo Brasil e gostaria muito que me ajudasse em algo. Constantemente precisamos fazer testes de PING e TRACERT nas IP’s das aplicações cliente do site para averiguar o trafego de dados. Geralmente utilizo o CMD executado como admin e executo o comando psexec do pstools, ou seja, no CMD já com o user pstools digito: psexec \\IP_MÁQUINA_REMOTA PING IP_APLICAÇÃO_CLIENTE. como crio uma .bat para executar o comando pelo psexec sem ter que digitá-lo todo no CMD?
    Forte abraço.

    Curtir

    1. Angelo,

      Pode usar desta forma:

      Neste exemplo o PSTOOLS está em c:\PSTOOLS (em um servidor Windows server 2008 R2)

      Criei um .bat com as seguintes informações e salvei na mesma pasta do PSTOOLS em C:\PSTOOLLS\ping-remoto.bat

      PsExec.exe \\ws-001 -u “glbx\admin_remote” -p “123@mudar” ping -a localhost >> \\shared\ping.txt

      Onde \\ws-001 é a maquina remota
      -u “glbx\admin_remote” é um usuário admin do dominio neste exemplo “GLBX”
      -p “123@mudar” é a senha do user admin_remote
      ping -a locahost é o local onde estamos executando o ping
      >> \\10.10.10.144\shared\ping.txt esse parametro faz com que o comando seja salvo em um arquivo .txt no servidor 10.10.10.144 na pasta compartilhada SHARED onde o user admin_remoto tem permissão de escrita e leitura

      veja como fica no txt
      ==========================================================
      Pinging WS-001.GLBX.LOCAL [127.0.0.1] with 32 bytes of data:

      Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
      Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
      Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
      Reply from 127.0.0.1: bytes=32 time> \\10.10.10.144\shared\ping.txt ele vai executar o comando na tela do prompt mesmo sem salvar o resultado.

      No arquivo .bat
      PsExec.exe \\ws-001 -u “glbx\admin_remote” -p “123@mudar” ping -a 8.8.8,8

      Assim terá o resultado na console da prompt, assim que o comando terminar a execução do PING a prompt será fechada, poderá colocar na segunda linha um @pause, ai ficará assim:

      C:\PSTools>PsExec.exe \\ws-001 -u “glbx\admin_remote” -p “123@mudar” ping -a 8.8
      .8.8

      PsExec v2.11 – Execute processes remotely
      Copyright (C) 2001-2014 Mark Russinovich
      Sysinternals – http://www.sysinternals.com

      Pinging google-public-dns-a.google.com [8.8.8.8] with 32 bytes of data:

      Reply from 8.8.8.8: bytes=32 time=139ms TTL=127
      Reply from 8.8.8.8: bytes=32 time=127ms TTL=127
      Request timed out.
      Reply from 8.8.8.8: bytes=32 time=127ms TTL=127

      Ping statistics for 8.8.8.8:
      Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
      Approximate round trip times in milli-seconds:
      Minimum = 127ms, Maximum = 139ms, Average = 131ms
      ping exited on ws-001 with error code 0.
      Press any key to continue . . .
      ======================================================================
      Minha recomendação é usar o parametro >> \\servidor\pastas_compartilhada\arquivo.txt
      Desta forma terá sempre um histórico.

      Espero ter de ajudado.

      Um forte abraço.

      Curtir

      1. Charles, boa tarde…

        Como faço para criar um *.bat com vários IPs de minha rede (600 máquinas) e executar um arquivo *.exe, que está em minha máquina na pasta compartilhada. Como ficaria as linhas de comando dentro do arquivo e como fica o comando no PSTools para executar esse arquivo pelo cmd ?

        Curtir

  2. opa, sim claro.

    essa é a bat, mas na hora de mostrar a varivavel não esta mostrando tudo, apenas a primeira letra.

    @echo off

    set /p nome=insira seu nome:

    echo seu nome é %nome%

    pause

    Curtir

      1. a bat fica no servidor dentro da pasta system32.

        eu executo o seguinte comando da maquina cliente:

        psexec \\ cmd /c teste.bat

        ao solicitar a preenchimento da variavel eu coloco o meu nome “bruno”, mas ao mostrar a variavel apenas aparece a letra “b” como na imagem abaixo.

        Curtir

  3. Boa Tarde.

    Tenho 1 servidor qur tem uma aplicação chamada ATIVA, é um programa de IHM, preciso subir esse software sem que eu acesse a maquinal localmente.

    Bom tenho um .bat e nele tem o comando para subir o programa, tenho que executar esse .bat de outra maquinal acessando remotamente o servidor que esta o software.

    Usando o PSTolls – PSexec -u user.adm \\servidor cmd

    ele pede a senha ok digito a senha

    apos isso ele abre o cmd do servidor abaixo por 5seg e fecha alegando falha de logon ou usuario desconhecido.

    Lembrando que o usuario e senha está correto.

    O que pode ser ?

    Curtir

  4. Boa noite,

    Tenho uma duvida, eu queria criar uma bat para instalar em uma rede de uma das empresas o arquivo .msi

    exempplo:

    Dados:

    arquivo.msi -> nome do arquivo
    10.22.30.1 – 255 -> rede que quero instalar o msi

    Imagino que a bat ficaria assim:

    Quando executar a bat a mesma iria ler:

    se o ip da maquina é 10.22.30.x (onde x é 1 até 255)
    Se não existe o caminho %program files%/Dados

    Então execute o msi em \\10.22.10.1\arquivo.msi

    Curtir

  5. Bom dia
    Estou a tentar o seguinte: no servidor A tenho que executar um arquivo download.exe -d no servidor B (-d é parametro do .exe).
    No servidor A estou a fazer:
    cd\
    cd pstools

    psexec -u dominio\user -p Senha \\SRVB\c$\APPS\JDIS\PROG\COMM\download.exe -p

    Curtir

  6. Bom dia Charles gostaria que me desse uma dica de uma bate para instalar um programa .exe de uma so vez em varias maquina inserindo o hostname ou o ip. vc poderia me ajudar?
    agradeço desde ja!

    Curtir

  7. Estou a muito tempo buscando uma solução para executar um script pelo domínio para copiar um diretório e sub-diretórios(user o robocopy), e agora preciso instalar um arquivo .exe como administrador em todos os computadores desse domínio, mas não consigo, ja tentei com runas, com psexec, com sunar…nada funcionou, alguma sugestão?

    Curtir

  8. Bom dia Charles, tenho que executar um .exe em mais de 200 maquinas aqui da empresa,mas nao entendi direito seu tutorial.
    Eu gostaria de executar pela minha maquina este .exe remotamente nestas outras 200 maquinas, pode ser uma de cada vez sem problemas.

    Pode me ajudar por favor?
    Obrigado desde já.

    Curtir

  9. Olá Charles.

    Amigo, para executar o psexec é necessário algum tipo de compartilhamento no destino?

    Estou tentando executar uma bat que está dentro de um servidor, ficou assim:

    psexec \\10.8.129.194 -u VSTC\**** -p ******* \\10.8.129.194\c$\ScriptsApoioMonitoriaVIVO\limpa_distribuidor\limpadesc.bat

    Está correto? Consegue me ajudar?

    O resultado que tem retornado é esse:

    PsExec v1.85 – Execute processes remotely
    Copyright (C) 2001-2007 Mark Russinovich
    Sysinternals – http://www.sysinternals.com

    Couldn’t access 10.8.129.194:
    O caminho da rede nÒo foi encontrado.

    Make sure that the default admin$ share is enabled on 10.8.129.194.

    Curtir

  10. Quero criar uma .vbs ou uma .bat que executa estas tarefas:
    Deletar um programa e instalar outro, porém que exija o nome da máquina para executar na rede.

    atualmente executo duas .bats

    ==================================================================
    BAT (1)
    c:\PSexec.exe -i -s \\pat1525 “c:\Program Files (x86)\UltraVNC\unins000.exe” /silent

    c:\PSexec.exe -i -s \\pat1525 “c:\Program Files\uvnc bvba\UltraVNC\unins000.exe” /silent

    pause
    exit
    ==================================================================

    BAT (2)
    c:\PSexec.exe -i -s \\”nome da maquina” C:\Dell\install_tvnc.exe

    pause
    ==================================================================

    Se alguém puder me revelar um código .bat ou .vbs que o mesmo faça compilar o executável também pois a ideia é este mesmo executável executar essas duas bats e e que carregue o executável “tvnc”.

    Resumindo: um executavel que pede o nome da maquina na rede e faça a desinstalação do ultravnc e faça a instalação do TightVNC e que não precise do executavel TightVNC esteja na rede pra instalar.

    Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

w

Conectando a %s