2015-11-04 30 views
1

我尝试在Get-Service输出中添加一个新列。我发现的解决方案,直到现在,添加列,但不可能添加多个值。我保存在一个阵列输出。例如像这样:PowerShell:如何向Get-Service输出添加一个包含值的新列?

$b = @() 

$b += Get-Service wuauserv 

你知道吗,我怎么可以改变正常的输出中:

Status  Name  DisplayName       
- - - - - - - --  - - - -- - - - -     
Running  wuauserv  Windows Update       
Running  sysmain  Superfetch 

是这样的:

Status  Name    DisplayName   ComputerName     
- - - - - - - - - - - - - - -   - - - - - - -- - - - - - -     
Running wuauserv   Windows Update  Server1     
Running sysmain   Superfetch      Server5 

希望任何人都可以帮助我:)

回答

0

也许这可以帮助你:

$b = @() 

$b += Get-Service -ComputerName SERVER1-Name wuauserv 
$b += Get-Service -ComputerName SERVER2 -Name sysmain 

$b | Select-Object Status, Name, DisplayName, MachineName 

如果您运行以下命令:

$b | Get-Member 

它将告诉你有一个Property可用称为MachineName。这是您可以与Select-Object CmdLet一起使用以在输出中查看ComputerName的那个。

+0

非常感谢! – Temerita

+0

不客气:)继续探索,你会越来越好。 – DarkLite1

0

ComputerName不是System.ServiceProcess.ServiceController的一部分o由Get-Service cmdlet返回的对象。因此,你必须使用你的SELECT语句中的表达,获得计算机名(例如,使用$env:computername):

Get-Service wuauserv | select Status, Name, DisplayName, @{l="ComputerName";e={$env:COMPUTERNAME}} 

编辑: 啊,有一个MachineName属性,您可以使用(感谢Darklite1 )。所以,如果你要重命名的列,您可以使用此:

Get-Service wuauserv | select Status, Name, DisplayName, @{l="ComputerName";e={$_.MachineName}} 
+0

谢谢!所以我可以在同一张表中添加一些关于服务器的更多细节* happy * – Temerita

相关问题