Powershell 替换获取服务值

Powershell 替换获取服务值,powershell,Powershell,我正在创建一个HTML报告,并使用来自 我遇到的问题是,我希望get服务返回一个包含3个服务的列表,如果其中1个服务被“停止”,我希望用HTML标记停止来包装该值 我的代码如下所示: Object = Get-Service -ComputerName $theServer -Include sftlist,sftvsa,TermService,LanmanServer,Netlogon | Select-Object DisplayName,Name,Status | ForEach-Obje

我正在创建一个HTML报告,并使用来自

我遇到的问题是,我希望get服务返回一个包含3个服务的列表,如果其中1个服务被“停止”,我希望用HTML标记
停止
来包装该值

我的代码如下所示:

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>" }
Object=Get Service-ComputerName$theServer-Include-sftlist、sftfsa、TermService、LanmanServer、Netlogon |选择对象显示名称、名称、状态|每个对象{-replace“Status=Running”、“Status=Stopped”}

有人知道我怎样才能做到这一点吗?非常感谢您的帮助。

您想将文本“Status=Stopped”替换为
“Status=Stopped”

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

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{$_}}
获取服务-ComputerName$theServer-包括sftlist、sftfsa、TermService、LanmanServer、Netlogon |
选择对象显示名称、名称、状态| ForEach对象{
如果($\状态-网元“正在运行”){
$\替换“状态=已停止”,“状态=已停止”
}
else{${}
这里的键if只是为了添加一个if语句来检查每个服务对象的状态是否不等于Running。如果不是,我们将文本替换为
Status=Stopped
,然后继续。如果服务正在运行,我们只需使用
else{$}
按原样列出对象


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

非常感谢。我明白你说的丑陋是什么意思。我的结果如下所示:Netlogon正在运行@{DisplayName=BranchCache;Name=PeerDistSvc;Status=Stopped}不确定为什么第二个服务结果前面会出现@{DisplayName=…。谢谢您的帮助。