Я использую оператор select, чтобы показать все службы в системе, в которой в настоящее время установлено значение Auto (автоматически). Беда в том, что список услуг, которые я не хочу видеть, растет. Пока еще не больший, чем список услуг, я не хочу видеть. Я надеюсь, что смогу поместить все службы, которые я не хочу видеть, в массив, а затем проверить массив во время запроса выбора (или впоследствии, если мне нужно), но пока я не могу найти пример, где что-то подобное сделано, и или у меня в голове есть PowerShell, и я не могу придумать, как это сделать vbscript
'Current Attempt
GetObject("winmgmts:{impersonationLevel=impersonate}").ExecQuery("select * from Win32_Service where StartMode='Auto' and DisplayName<>'Performance Logs and Alerts' and DisplayName<>'SBSD Security Center Service' and DisplayName<>'TPM Base Services'")
Делать это в запросе на выборку - не лучший вариант, поскольку в WQL нет оператора IN. Единственный способ сделать это - создать динамический запрос select на основе массива исключенных сервисов.
Я бы рекомендовал сделать это вторым способом, создав массив имен сервисов, получив ВСЕ сервисы с помощью вашего запроса select, а затем перебирая их. Во время итерации вам нужно будет сравнить их с массивом исключенных сервисов.
Ура, Тревор Салливан
=========================================================================
Excluded = Array("ccmexec", "wuauserv", "wudfsvc")
set svcs = GetObject("winmgmts:root\cimv2").ExecQuery("select * from win32_service where startmode = 'auto'")
for each svc in svcs
skip = false
for i = 0 to uBound(Excluded)
if Excluded(i) = svc.Name then skip = true
next
if skip = true then
'msgbox svc.Name
else
' Service was not skipped. Do stuff here.
end if
next