我有现有的 PowerShell 脚本(不是我写的!),它旨在使用传入的参数(SCOM 警报 ID)然后在警报中设置其他信息,例如 $alert.CustomField1 = $alert.PrincipleName 等。
我希望向此脚本添加功能,以便能够添加存储在单独的文本/CSV 文件中的其他“自定义”信息。文本/CSV 文件有标题行
ServerName,ServiceOwner,Application Tier
所以文件中的一行将是
MYSERVER.CONTOSO.COM,Joe Bloggs, Tier 1
我们环境中的每台服务器都有一个唯一的行(超过 600 行)。
所以我需要做的是使用传入的警报 ID。我可以使用$alert.PrincipleName
在文本文件中找到相应的行,并提取存储在字段 2 和 3 中的附加详细信息,即ServiceOwner
和ApplicationTier
.
此逻辑适用于大多数警报,但如果服务器名称是特定值(例如),那么我需要匹配另一个警报属性,MYSTSERVER.CONTOSO.COM
而不是使用匹配文本文件中的服务器名称。但是,此字段中的服务器名称是格式中较大字符串的一部分,例如- 所以我需要从字符串的方括号之间提取服务器名称,然后执行与文本文件的匹配。$alert.PrincipleName
$alert.MonitoringObjectDisplayName
User Services Watcher for Pool [MYTARGETSERVER.CONTOSO.COM]
希望我已经清楚地解释了我正在尝试做的事情 - 如果没有,我很乐意提供进一步的说明,并且如果有任何帮助,我还可以发布我正在尝试修改的现有 PS 脚本。