gpt4 book ai didi

powershell - 使格式表与多个源一起正常工作

转载 作者:行者123 更新时间:2023-12-02 22:54:44 25 4
gpt4 key购买 nike

我想检查几个特定服务器的特定服务,并希望输出显示在相同格式的表格中。我只能创建多个表格,或者只能显示按照我想要的方式格式化的最后一个表格。我的意图是在同一张 table 上显示所有内容。

Get-Service "ServiceA", "ServiceB", "ServiceC" -ComputerName SERVER1   
Get-Service "ServiceD", "ServiceE", "ServiceF" -ComputerName SERVER2 |
Format-Table -Property MachineName, Status, Name, DisplayName -Auto

如何在同一个格式化表中包含 SERVER1 和 SERVER2?上面的例子只会显示 SERVER2 的格式化表格吗?

我试过的其他方法是

Get-Service "ServiceA", "ServiceB", "ServiceC" -ComputerName SERVER1 |
Format-Table -Property MachineName, Status, Name, DisplayName -Auto
Get-Service "ServiceD", "ServiceE", "ServiceF" -ComputerName SERVER2 |
Format-Table -Property MachineName, Status, Name, DisplayName -Auto

但这样会创建两个不同的表,而不是像我希望的那样将所有信息都放在一个表中。

我需要检查六台不同服务器上的不同服务,但我认为只有两台足以说明我在这个脚本上遇到的困难。

最佳答案

如果您希望它们都出现在一个表中,您需要同时将所有 结果发送到Format-Table。如果您调用 Format-Table 两次,您将获得两个单独的表格。

幸运的是,PowerShell 使得将命令的结果存储在变量中并稍后使用它变得非常容易。

您需要做的是创建一个变量来保存结果,然后将您所有的 Get-Service 命令存储在其中,如下所示:

#take the output and store it in $services
$services = get-service bits,winrm -computername ServerA
#add the output of the next to $services as well
$services += get-service AdobeARMservice,ALG -computername ServerB

#finally, make one big table to display it all
$services |Format-Table -Property MachineName, Status, Name, DisplayName -auto

MachineName Status Name DisplayName
----------- ------ ---- -----------
ServerA Running bits Background Intelligent Transfer Service
ServerA Running winrm Windows Remote Management (WS-Management)
ServerB Running AdobeARMservice Adobe Acrobat Update Service
ServerB Stopped ALG Application Layer Gateway Service

在您深入这个兔子洞之前,请记住 Format-Table 仅用于在控制台中查看内容。例如,您不能获取使用 FT 制作的表格,然后将其导出为 .csv。如果您只在控制台中查看它就可以了,那么这应该可以工作。

关于powershell - 使格式表与多个源一起正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41852556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com