如何使用PowerShell [v1.0]来过滤属于Microsoft [包括Office,IIS,AD,EXCH等应用程序]的服务。
在“msconfig.msc -> Services Tab
”中有一个复选框,上面写着“隐藏所有Microsoft服务”,我正在寻找过滤属于MS的服务的相同功能。
这有可能吗?请帮助。
这将为您提供一个开始的方法:
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 {}}
我用上面的代码来做这件事。我对所有非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