xiaowei8782088 发表于 2018-9-2 13:40:43

使用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

页: [1]
查看完整版本: 使用powershell 与基线services列表比较,查看服务状态是否发生变化