Powershell - como registrar toda a saída cmd externa?

2

Eu tenho um script powershell que funciona muito bem a partir da linha cmd, mas é muito útil quando executado no agendador de tarefas.

Então eu preciso ver toda a saída do console de todos os comandos.

O script faz muitos comandos externos (net use, robocopy, etc). A saída desses comandos é o que mais preciso.

Nós não queremos instrumentar cada comando, porque é feio, e porque precisamos executá-lo de forma interativa (e ver o que está acontecendo).

Eu tentei o powershell "Start-Transcript" com -Verbose, mas NONE dos comandos são registrados no arquivo de transcrição. Mesmo quando seguimos esta diretiva por um cara da equipe powershell: | Out-Default (por exemplo ipconfig.exe | Out-Default), AINDA não vemos a saída na transcrição.

O que vem depois?

    
por samsmith 24.03.2016 / 19:56

2 respostas

2

Configure o registro para ocorrer dentro da tarefa agendada por meio do redirecionamento da chamada do powershell:

cmd /c powershell.exe -noninteractive -file c:\temp\script.ps1 > c:\temp\some.log 2>&1

Se o ROBOCOPY log estiver fazendo mais de 10 arquivos, eu manteria isso separado com a opção /LOG:c:\temp\robo.log que o comando suporta.

    
por 28.03.2016 / 22:09
0

Bem, mesmo que não seja a solução mais bonita, talvez você possa fazer algo como o seguinte?

net use z: \my\path >> mylogfile.txt 2>&1

E você poderia fazer o mesmo com as habilidades de registro do robocopy, basta anexar ao mesmo arquivo.

    
por 24.03.2016 / 20:15

Tags