powershell 使用Get-Service返回对象中的服务器名称

5lhxktic  于 2023-06-06  发布在  Shell
关注(0)|答案(1)|浏览(206)

我试图引入一些Elasticsearch示例的额外健康监控,其中一部分是查看Elasticsearch服务是否正在运行。
其中一部分是返回服务器的Hostname,然后是Elasticservice的DisplayName和Status,最好是作为PSObject,这样我就可以根据需要选择各个属性。
所以我有一个服务器数组,我可以从中提取Get-Service信息:

$servers = @("server1","server2","server3")
$services = Get-Service Elasticsearch* -ComputerName $servers | Select -property DisplayName, Status

这似乎并没有给予我一个前进的方式来包括主机名。所以我尝试在服务器数组中循环。

$servers = @("server1","server2","server3")
$services = foreach($i in $servers){get-service Elasticsearch* -ComputerName $i | Select $i, DisplayName, Status}

这让我得到了一个名为“server 1”的PSObject属性,它没有值,我想这是我所期望的,但我不知道如何声明该属性,然后在循环过程中添加值。

jecbmhm3

jecbmhm31#

...但我不知道如何声明属性,然后在循环中添加值
有帮助!about_Calculated_Properties help topic解释了如何构造所谓的计算属性。
您需要提供一个哈希表,其中一个条目用于Name(或Label),另一个条目用于Expression,用于计算结果属性值:

$servers = @("server1","server2","server3")
$services = foreach($i in $servers){
  Get-Service Elasticsearch* -ComputerName $i | Select @{Name='Server';Expression={$i}}, DisplayName, Status
}

相关问题