如何使用PowerShell过滤Microsoft服务

时间:2015-08-18 05:21:52

标签: windows powershell service

如何使用PowerShell [v1.0最好]过滤属于Microsoft [包括Office,IIS,AD,EXCH等应用程序]的服务。

在" msconfig.msc -> Services Tab"有一个复选框,显示"隐藏所有Microsoft服务",我正在寻找过滤属于MS的服务的相同功能。

这是可能的吗?请帮助。

2 个答案:

答案 0 :(得分:1)

这将为您提供一个开始的方法:

Get-WmiObject Win32_Service -Property * | Select DisplayName,PathName | %{ Try { if([System.Diagnostics.FileVersionInfo]::GetVersionInfo("$($_.PathName.ToString().Split("-")[0].Split("/")[0])").LegalCopyright -like "*Microsoft*") {"$($_.DisplayName) is a Microsoft Service"}} catch {}}

答案 1 :(得分:0)

我使用上面的代码来做到这一点。我对所有非MS服务和更通用的输出格式感兴趣。

$services = Get-WmiObject Win32_Service -Property Name,DisplayName,PathName | Select 
Name, DisplayName,PathName
$serviceList = New-Object System.Collections.ArrayList
foreach ($service in $services) {
  Try {
    $path = $service.Pathname.tostring().replace('"','')
    $cri = ([System.Diagnostics.FileVersionInfo]::GetVersionInfo($path)).legalcopyright
    if ($cri -notlike "*Microsoft*") {
      $serviceList += $service
    }
  } catch {}
}
$serviceList