Saída de redirecionamento do processo iniciada localmente com o PSExec

4

Estou usando o PSExec em um ambiente de máquina de teste para iniciar o pacote de instalação do aplicativo a ser testado como administrador e, em seguida, executar testes como administrador quando necessário. O PSExec é usado apenas para a parte "executar como" aqui, sem execução remota. A chamada é assim:

c:\psexec -u Administrator -p adminpassword -w C:\SystemTests C:\SystemTests\run_system_tests.cmd ...

O problema é que o Jenkins, nosso servidor de CI, captura apenas o logotipo do PSExec na saída do console, mas não a impressão real do teste:

PsExec v1.98 - Execute processes remotely
Copyright (C) 2001-2010 Mark Russinovich
Sysinternals - www.sysinternals.com

C:\SystemTests\run_system_tests.cmd exited with error code 0.

O script iniciado abre sua própria janela de console localmente e imprime tudo lá. Mas não está logado no Jenkins, então não saberemos o que o script fez e porque as coisas podem ter falhado.

Existe uma opção para fazer o PSExec imprimir a saída do programa iniciado para stdout, em vez do logo, e não abrir uma janela do console?

    
por ygoe 24.09.2013 / 10:18

3 respostas

3

Descobri que você pode dividir a saída PsExec da saída remota dessa maneira ...

psexec \wxesbbtlkS02 cmd /c C:\test.bat >tmpfile.txt 2>other.txt

para que você obtenha a saída PsExec no arquivo other.txt e o controle remoto em tmpfile.txt

    
por 17.11.2014 / 16:56
2

Pesquisando quase exatamente esse problema, deparei-me com este tópico do fórum de technet .

A postagem relevante no tópico:

post on sysinternals by user bnyffele

I actually found that there is no difference between the various systems, but it depends on how you address the remote machine:

psexec \hostA cmd        -> seperate window opens (if command is executed on \hostA)
psexec \127.0.0.1 cmd    -> cmd prompt in same window
psexec \[IP address] cmd -> cmd prompt in same window
psexec \localhost cmd    -> results in error message about localhost being a duplicate name.
psexec \hostA.domain.com -> cmd prompt in same window

So, it seems that I only get a separate window, when I am executing psexec for the local machine and I am using the short hostname.

Parece que, se você especificar o endereço IP do host local como a máquina para executar o comando, obterá a saída. Eu testei isso sozinho e, embora não tenha imprimido a saída padrão em tempo real, imprimiu tudo no mesmo terminal quando o script terminou.

Se você estiver tentando descobrir como fazer isso usando o nome do sistema em vez do endereço IP, ainda poderá fazê-lo, adicionando um ponto ao final do nome do host, conforme determinado por outro usuário várias mensagens posteriormente no mesmo fio.

post on sysinternals by user bluechipps

Actually i just discovered a workaround that is almost painless. All you have to do is add a '.' after the shortname and it will still function the same but will then output properly to the same cmd window! Note the differences.


PS C:> psexec \hal ipconfig

PsExec v1.95 - Execute processes remotely
Copyright (C) 2001-2009 Mark Russinovich
Sysinternals - www.sysinternals.com

ipconfig exited with error code 0.
PS C:>

     

PS C:> psexec \hal. ipconfig

PsExec v1.95 - Execute processes remotely
Copyright (C) 2001-2009 Mark Russinovich
Sysinternals - www.sysinternals.com

Windows IP Configuration

Ethernet adapter Local Area Connection 2:

Connection-specific DNS Suffix . :#####
Link-local IPv6 Address . . . . . :#####
IPv4 Address. . . . . . . . . . . :#####
Subnet Mask . . . . . . . . . . . :#####
Default Gateway . . . . . . . . . :#####

ipconfig exited on hal. with error code 0.
PS C:>

     
    
por 12.02.2016 / 00:47
0

se você escapar do > personagem com um caret ^ você pode canalizar a saída para um arquivo. Veja abaixo.

c: \ psexec -u Administrador -p adminpassword -w C: \ SystemTests C: \ SystemTests \ run_system_tests.cmd ^ > outputfile.txt

    
por 25.10.2018 / 16:36

Tags