我正在尝试使用PowerShell过滤掉Windows服务
以下是我们提供的Windows服务:
service_1_UAT
service_UAT
service_2_UAT
service_3_UAT
service_1_Blue_UAT
如果我服务_ * _ UAT 它提供完整的服务列表但service_UAT。但我想要以下四个:
service_1_UAT
service_UAT
service_2_UAT
service_3_UAT
如果我给service_*_Blue_UAT
它给出了正确的结果。
有什么方法可以使用PowerShell Regex过滤掉这些服务? 有人可以建议我如何过滤。
先谢谢。
答案 0 :(得分:0)
看起来所有服务名称实际上匹配DataGenerator _ * _ UAT模式(名称如DataGenerator_1_Blue_UAT substring“1_Blue”也匹配*)。
您可以将Where-Object过滤器与regexp一起使用。假设*表示除下划线(_)以外的任何内容:
Get-Service | Where-Object { $_.Name -match "^DataGenerator_([^_]+_)?UAT$" }