You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell 执行完操作后无法向控制台输出结果该怎么解决?

问题原因

PowerShell 对结构化对象的格式化输出默认存在缓冲机制,你脚本中生成的自定义服务查询结果属于结构化对象,会等待整条执行链路完成后才会统一渲染到控制台。但Read-Host交互语句会优先抢占控制台控制权,导致查询结果直到你按下回车、脚本即将退出前才会短暂输出,随窗口关闭无法查看。

最简解决方案

只需要在你现有脚本的排序逻辑后,加一个管道符连接Out-Host,强制查询结果立刻输出到控制台即可,修改后的完整代码如下:

Get-WmiObject -Class win32_LoadOrderGroupServiceMembers |
ForEach-Object {
    New-Object -TypeName psobject -Property `
        @{
        "GroupOrder"=([wmi]$_.GroupComponent).GroupOrder
        "GroupName"=([wmi]$_.GroupComponent).Name
        "ServiceName"=([wmi]$_.PartComponent).Name
        "Started"=([wmi]$_.PartComponent).Started
        }
} | 
Where-Object { $_.started } | Sort-Object -Property grouporder -Descending | Out-Host

Read-Host -Prompt "按任意键退出:"
可选方案

你也可以先把查询结果存到变量里,再显式打印变量,效果完全一致:

# 先把结果存到变量
$运行中的服务组查询结果 = Get-WmiObject -Class win32_LoadOrderGroupServiceMembers |
ForEach-Object {
    New-Object -TypeName psobject -Property `
        @{
        "GroupOrder"=([wmi]$_.GroupComponent).GroupOrder
        "GroupName"=([wmi]$_.GroupComponent).Name
        "ServiceName"=([wmi]$_.PartComponent).Name
        "Started"=([wmi]$_.PartComponent).Started
        }
} | 
Where-Object { $_.started } | Sort-Object -Property grouporder -Descending

# 显式打印结果
$运行中的服务组查询结果

Read-Host -Prompt "按任意键退出:"
额外提示

如果你双击脚本时无法正常运行,弹出记事本或者提示执行权限错误,可以右键点击脚本文件,选择「使用PowerShell运行」即可正常执行。

内容的提问来源于stack exchange,提问作者fmotion1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 22:57:02