我正在创建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>" }
有谁知道我怎么能做到这一点?非常感谢您的帮助。
答案 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。