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

29 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

  11. Charles, boa tarde!

    Achei interessante suas dicas. Estou tentando usar o RUNAS para passar usuario “admin” e senha, para um usuario que não é adminitrador executar um aplicativo como administrador sem ter que entrar com a senha. So que toda vez que executo esse comando ele continua pedindo a senha do administrador.
    Existe uma outra maneira de fazer isso, passando o usuario e senha, sem que peça para digitar a senha?
    Obrigado
    Carlos

    Curtir

  12. Ola, boa tarde
    Sou responsavel pelo t.i de uma empresa e estou tendo problemas com o pstools.

    Em um dos locais aqui na empresa existem 2 pcs com nossa automacao que mandam impressoes de cupons com itens para separacao em dois depositos distintos em locais diferentes. Quando ocorre a impressao em cada um desses depositos, deve tambem ser emitido um som informando da impressao e para o pessoal do deposito ficar atento para prosseguir com a separacao dos itens constantes nessas solicitacoes. Com o pstools, uso tambem bats para a comunicacao dos computadores juntamente com a nossa automacao. Recentemente precisei trocar uma maquina do primeiro ponto, mas repliquei tudo dela, nome, dominio, bats, permissoes, usuario, enfim, tudo.

    O que tem ocorrido é que as impressoes nos locais remotos chegam normalmente, porem nao acompanham o som. Teriam alguma ideia do que poderia ser?

    Curtir

  13. Bom dia Charles,

    Tentei rodar um bat com PSexe, segue seu procedimento também. Ele diz que está rodando, me passa o número do PID, mas no computador remoto não acontece nada.

    Eu fiz o seguinte:

    Tenho um scrips VBS que instalar um agent com as configurações que eu quero em modo silencioso, como o psexec só funciona com bat, exe ou msi, criei um bat chamando esse VBS.

    Rodo o comando psexec que pegar um lista com todos os host que quero chamando o bat. Ele copia o bat par ao destino, porém não executa, mesmo o psexec dizendo que está rodando. Se eu chama não mão, direto no host de destino, funciona.

    Curtir

  14. Bom dia, Charles!!!

    Tudo bem?

    Vê se pode me dar uma ajuda, executei uma .bat para mudar a senha de administrador local das máquinas da minha empresa, mas estou fazendo um teste primeiro na minha máquina e em um notebook. Na minha máquina funcionou o processo normal, porém no notebook o comando funcionou, porém a conta fica desabilitada.
    Primeiro criei um arquivo txt com os hostnames das maquinas e depois criei um bat com o seguinte comando abaixo:

    pspasswd @hostmaquinageral.txt Administrador terra120

    Toda esses conteudo estão dentro da pasta Pstools e executado como administador.

    Tem alguma ideia de como executar o comando e a conta adm local ficar habilitada?

    Pois quero fazer em quase 400 maquinas para mudar a senha adm local.

    Desde já obrigado pela ajuda

    Curtir

Deixar mensagem para Carlos Costa Cancelar resposta

Este site utiliza o Akismet para reduzir spam. Saiba como seus dados em comentários são processados.