首页 > 代码库 > 使用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列表比较,查看服务状态是否发生变化