【问题标题】:Not able to capture output by runas command无法通过 runas 命令捕获输出
【发布时间】:2014-12-01 14:23:03
【问题描述】:

我必须自动化测试用例。

任务:-

  1. 步骤:- 从 powershell 打开管理命令提示符。
  2. 步骤:- 在管理命令提示符下执行批处理文件。
  3. 步骤:-批处理文件包含一些命令集,包括一个 exe 的执行。

    例如:- runas /user:administrator /savecred someCmd.exe >>D:\output.txt

  4. 步骤:- 在变量中捕获 exe 的输出以验证输出。

我用过“ start-process -verb runas cmd.exe $param" 用于打开管理命令提示符的 cmdlet(步骤 1)。 其中 $param 包含要执行的批处理文件。

问题说明:- 当批处理文件执行上面提到的 runas 命令时,它会打开一个新的命令提示符并在提示符中显示输出并自行关闭。 我无法捕获输出(未写入 output.txt),我必须据此进行一些验证。

【问题讨论】:

    标签: windows powershell batch-file scripting cmd


    【解决方案1】:

    您可以使用批处理中的输出重定向:

    $params="/C ipconfig /all 2>&1 >>c:\temp\test.txt" 
    start-process -verb runas cmd.exe $params 
    gc c:\temp\test.txt
    

    【讨论】:

      【解决方案2】:

      我最终创建了一个包含至少两个参数的包装批处理文件 OutputWrapper.bat:
      1) 输出文件
      2) 命令
      3) [可选] 参数

      @ECHO OFF
      
      IF "%2" == "" GOTO usage
      
      SET OUTPUTFILE=%1
      SET COMMAND=%2
      SET ARGS=
      
      SHIFT /2
      
      :loop1
      IF "%2"=="" GOTO exec
      SET ARGS=%ARGS% %2
      SHIFT
      GOTO loop1
      
      :exec
      ECHO Command [%COMMAND%]
      ECHO Arguments [%ARGS%]
      ECHO Output file [%OUTPUTFILE%]
      
      %COMMAND%%ARGS% > %OUTPUTFILE% 2>&1
      GOTO end
      
      :usage
      ECHO Usage: %~nx0 outputfile command [arguments]
      
      :end
      

      并像这样从 PowerShell 调用它:

      $outFile = "C:\Temp\Deploy.out";
      
      Start-Process -FilePath .\OutputWrapper.bat -ArgumentList "$outfile","whoami.exe","/priv" -Verb RunAs -Wait
      
      Get-Content $outFile;
      

      【讨论】:

        【解决方案3】:

        解决方案

        1. 从 powershell 打开管理命令提示符。
        2. runas 命令中执行了一个批处理文件。例如:runas /user:administrator /savecred mybatch.bat
        3. 批处理文件包括一些命令集,包括一个 exe 的执行。例如someCmd.exe >>D:\output.txt
        4. 在变量中捕获 exe 的输出以验证输出。

        现在输出被捕获并写入文件。我的目标是捕获命令的输出,这就是我解决它的方法。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-26
          • 2013-01-16
          • 1970-01-01
          • 1970-01-01
          • 2018-08-18
          • 2016-04-22
          相关资源
          最近更新 更多