2012-06-03 145 views
0

我當我在命令提示符上面運行的做到這一點通過不工作

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

一個控制檯應用程序我獲得以下

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:\> 

這是什麼命令生成PSEXEC重定向輸出和錯誤是期待。

現在,如果我在運行窗口

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操縱流,使遠程操作互動的事實。也許這就是這個簡單的事情不起作用的原因。

回答

0

嘗試使用xCmd.exe這是PSEXEC替代被重定向從正在運行代碼的遠程輸出到本地控制檯。我曾嘗試將JAVA + PSEXEC很糟糕的組合。但是,取得了良好的效果,使用xcmd.exe但一個美中不足的是,它與32位操作系統uptil贏2K8效果很好。從win7開始,這不太好。

0

可以使用-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