How To Capture Output from Non-elevated Process Run from Elevated Powershell的originally accepted answer只包括git config
的输出,当BAT文件调用powershell输出重定向(>dummy.txt
)时。所有其他的输出都被捕获,不管是否应用了重定向。为什么?有没有办法捕获这个输出而不写入一个伪文件?
How To Capture Output from Non-elevated Process Run from Elevated Powershell的originally accepted answer只包括git config
的输出,当BAT文件调用powershell输出重定向(>dummy.txt
)时。所有其他的输出都被捕获,不管是否应用了重定向。为什么?有没有办法捕获这个输出而不写入一个伪文件?
1条答案
按热度按时间bnlyeluc1#
注:
runas.exe
的 caller 接收到 no 输出,因为runas.exe
本身不产生任何输出,并且 launched process 在 new window 中运行。runas.exe
启动的进程 * 自己 * 捕获其输出,如下所述。runas.exe
命令总是在一个 * 新的控制台窗口 * 中运行,从调用者的Angular 来看是异步的,并且在 * 调用者的 * 窗口中产生 no 输出。因此,从通过
runas.exe
启动的进程捕获输出的唯一简单方法是使该进程 * 自己 * 在 * 文件 * 中捕获其输出,例如通过 shell 的>
重定向;如果目标可执行文件不是shell,请通过shell的命令行界面调用它,例如通过cmd /c
或powershell -c
请注意,如果您希望调用方等到
runas.exe
启动的进程完成运行,则需要通过Start-Process -Wait
调用runas.exe
,以便您可以检索并处理其完整输出。这两个方面都在this answer中进行了演示。