提问人:Ollie99th 提问时间:5/10/2023 更新时间:5/10/2023 访问量:30
使用 Get-Service 返回对象中的服务器名称
Return a server name within an object using Get-Service
问:
我正在尝试为我们的 Elasticsearch 实例引入一些额外的运行状况监控,其中一部分是查看 Elasticsearch 服务是否正在运行。
其中一部分是返回服务器的主机名,然后是 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}
这给了我一个名为“server1”的 PSObject 属性,它没有针对它的值,我想我期望这是预期的,但我无法理解如何声明该属性,然后在循环期间添加值。
答:
1赞
Mathias R. Jessen
5/10/2023
#1
...但我无法理解如何声明属性,然后在循环期间添加值
有帮助!about_Calculated_Properties
帮助主题确切地解释了如何构造所谓的计算属性。
您需要为哈希表提供一个条目 (或 ),以及一个用于计算结果属性值的条目:Name
Label
Expression
$servers = @("server1","server2","server3")
$services = foreach($i in $servers){
Get-Service Elasticsearch* -ComputerName $i | Select @{Name='Server';Expression={$i}}, DisplayName, Status
}
评论
0赞
Ollie99th
5/11/2023
感谢您的帮助主题 Mathias!我一半的挣扎是不知道我不知道什么。
评论
Select $i,
Select @{Name='Server';Expression={$i}},