如何从内部启动进程获取Powershell结果

如何从内部启动进程获取Powershell结果,powershell,powershell-2.0,powershell-3.0,Powershell,Powershell 2.0,Powershell 3.0,我有一个ps脚本,如: Start-Process powershell -Verb runAs -ArgumentList "Get-WebApplication" 因为GetWebApplication需要管理员权限,所以我使用“-动词runAs” 我的问题是:现在结果只显示在新的powershell窗口中。如何使我的主powershell获取/显示结果?您有两个选择: 以管理员身份运行脚本,然后直接运行Get-WebApplication 捕获从启动进程启动的powershell进程的输

我有一个ps脚本,如:

Start-Process powershell -Verb runAs -ArgumentList "Get-WebApplication"
因为GetWebApplication需要管理员权限,所以我使用“-动词runAs”


我的问题是:现在结果只显示在新的powershell窗口中。如何使我的主powershell获取/显示结果?

您有两个选择:

  • 以管理员身份运行脚本,然后直接运行Get-WebApplication
  • 捕获从启动进程启动的powershell进程的输出,然后在脚本中对输出执行任何操作。要捕获输出,您可以将输出重定向到一个文件,然后在脚本中读取该文件,也可以使用.NET
    [diagnostics.process]::start
    重定向stdout并直接读取脚本中的输出流(不创建任何文件)

  • 您好,我确实使用了.net调用PS,这意味着(1)不起作用。同样对于(2),我不使用诊断,而是使用运行空间和管道。“那我怎么能抓住呢?”塞缪尔,我不明白你的意思。在1。我是说以管理员身份运行powershell。然后在该Powershell中运行Get-WebApplication:
    Get-WebApplication
    ,而不是OP中的代码。如果由于某种原因您无法执行此操作,请在google中搜索如何在Powershell中使用
    [diagnostics.process]::启动