我在使用 cmdlet 时遇到问题Group-Object
。例如:
PS C:\Windows> get-service | Group-Object -Property status
Count Name Group
----- ---- -----
114 Running {AdobeARMservice, Appinfo, AppMgmt...}
128 Stopped {AdobeFlashPlayerUpdateSvc, AJRouter...}
看看组列如何不显示所有名称,而是用省略号截断它们。我知道我可以Select-Object -expandproperty group
在之后通过管道传递 cmdlet 来获取完整列表,但这只会输出组列,而不会输出计数和名称列。我知道我也可以替换 group-object 并只使用format-table -wrap
来扩展包含其他列的列表,但我需要计数列,如果没有 ,它就不会显示Group-Object
。
有人知道在使用时如何做到这一点吗Group-Object
?这不仅适用于,get-service
还适用于我使用的其他东西group-object
。Get-service
只是一个任何人都可以理解的通用示例。谢谢。
答案1
好吧,就像我在评论中说的那样,您对输出的处理Group-Object
完全取决于具体情况。但这里有一个如何查看所有服务名称的示例。
Get-Service | Group-Object -Property Status |
Select-Object Count, Name, @{Name="Services";Expression={$_.Group.Name -join ','}} |
Format-Table -Wrap
Count Name Services
----- ---- --------
108 Running AdaptiveSleepService,AMD External Events Utility,AppIDSvc,Appinfo,Apple Mobile Device
Service,AudioEndpointBuilder,Audiosrv,BDESVC,BFE,BITS,Bonjour Service,BrokerInfrastructure,CDPSvc,
132 Stopped AJRouter,ALG,AppMgmt,AppReadiness,AppVClient,AppXSvc,AxInstSV,Browser,BthHFSrv,bthserv,ClipSVC,COMSysApp,
CscService,DcpSvc,defragsvc,DeviceInstall,DevQueryBroker,diagnosticshub.standardcollector.service,DmEnrol,
答案2
这对我有用。
$FormatEnumerationLimit=-1
Get-Service | Group-Object -Property Status | ft -Wrap