【问题标题】:PsExec redirecting output and error generated by the command not workingPsExec 重定向输出和命令生成的错误不起作用
【发布时间】:2012-06-03 14:58:51
【问题描述】:

我有一个执行此操作的控制台应用程序

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("out");
        Console.Error.WriteLine("err");
        Environment.ExitCode = 5;
    }
}

当我在 cmd 提示符下运行时,我得到以下信息

C:\>C:\pstools\test\outnerr.exe >C:\pstools\test\out1.log 2>C:\pstools\test\err1.log
C:\>echo %errorlevel%
5
C:\>type C:\pstools\test\out1.log
out
C:\>type C:\pstools\test\err1.log
err
C:\>

这是预期的。

现在如果我在运行窗口中运行它

cmd /c C:\pstools\test\outnerr.exe >C:\pstools\test\out2.log 2>C:\pstools\test\err2.log

这也有效并创建 out2.log 和 err2.log。

现在,如果我使用 psexec 来运行它。我想创建一个日志文件。它是在本地机器还是远程机器上创建都没有关系。 所以我运行这个命令

C:\pstools\test\psexec.exe \\127.0.0.1 cmd /c C:\pstools\test\outnerr.exe >C:\pstools\test\out3.log 2>C:\pstools\test\err3.log

当从运行窗口执行时,这不会创建日志文件。但如果从命令提示符运行,同样有效。

我需要在上面进行哪些更改才能从运行窗口创建日志文件?

PS 我在这里和互联网上阅读了很多关于 PsExec 重定向问题的帖子。我知道 PsExec 操纵流以使远程操作具有交互性这一事实。也许这就是这个简单的事情不起作用的原因。

【问题讨论】:

    标签: logging cmd psexec io-redirection


    【解决方案1】:

    尝试使用 xCmd.exe,它是 psexec 的替代方案,它将远程输出重定向到运行代码的本地控制台。我曾尝试过将 JAVA + PSEXEC 混合使用非常糟糕的组合。但是使用 xcmd.exe 得到了很好的结果,但一个问题是它在 32 位操作系统 uptil win 2k8 上运行良好。从 win7 开始,这个就不好用了。

    【讨论】:

      【解决方案2】:

      您可以使用 -lo 选项将 PSExec 输出写入文件

      概要:

      psexec \\<machine_ip_address> -u <username> -p <password> -lo <log_filename> <some_command>
      

      示例:

      psexec \\192.10.10.69 -u admin -p 12345 -lo paexec.log ipconfig
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-05-17
        • 2021-04-20
        • 2020-04-16
        • 1970-01-01
        • 1970-01-01
        • 2012-01-24
        • 1970-01-01
        相关资源
        最近更新 更多