替换Get-Service值

时间:2015-03-19 19:25:38

标签: powershell

我正在创建HTML报告并使用Thomas Franke

中的优秀库/代码

我遇到的问题是我希望get-services返回3个服务的列表,如果其中1个服务被“停止”,我想用HTML标签<b>stopped</b>包装该值。

我的代码如下所示:

Object = Get-Service -ComputerName $theServer -Include sftlist,sftvsa,TermService,LanmanServer,Netlogon | Select-Object DisplayName,Name,Status | ForEach-Object {-replace "Status=Running", "<b>Status=Stopped</b>" }

有谁知道我怎么能做到这一点?非常感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您想要替换文字&#34; Status = Stopped&#34;与"<b>Status=Stopped</b>"

此代码示例将实现该目标:

Get-Service -ComputerName $theServer -Include sftlist,sftvsa,TermService,LanmanServer,Netlogon | 
Select-Object DisplayName,Name,Status| ForEach-Object {
   if ($_.Status -ne 'Running'){
        $_ -replace "Status=Stopped", "<b>Status=Stopped</b>"
    }
   else{$_}}

这里的关键是如果只是添加一个If语句来检查并查看每个Service对象的Status是否等于Running。如果不是,我们将文本替换为<b>Status=Stopped</b>并继续。如果服务正在运行,我们只需使用else{$_}列出对象。

结果不是很好的PowerShell代码,所以我希望你使用的工具知道如何在PS对象中处理HTML。