首页 > 代码库 > 使用powershell 与基线services列表比较,查看服务状态是否发生变化
使用powershell 与基线services列表比较,查看服务状态是否发生变化
$service_error=""
$i=$j=0
$filebase=Get-Content d:\ps\servicebase.txt
$service_curr=get-wmiobject -class win32_service -computer localhost
for($i=0;$i -lt $service_curr.length;$i++)
{
$pattern_name="^\w{7}\s\b$($service_curr[$i].name)\b"
$pattern_state="^\b$($service_curr[$i].state)\b"
#$pattern_name #检测变量
#$pattern_state #检测变量
$flag=0
for($j=3;$j -lt $filebase.length;$j++)
{
if($filebase[$j] -match $pattern_name)
{ $flag=1
#$filebase[$j] #检测变量
if (-not($filebase[$j] -match $pattern_state))
{
$service_error+="$($service_curr[$i].name)`n"
#$service_error.length #检测变量
break
}
else
{
break
}
}
}
if($flag -eq 0)
{
write-host "$($service_curr[$i].name)没有在ServiceBase中找到此项"
}
}
$service_error
使用powershell 与基线services列表比较,查看服务状态是否发生变化