Karthi Keyan Ответов: 1

Все услуги не перечисляются


Привет

Мы используем скрипт vbs для мониторинга служб в приложении SAP.Ниже сценарий уже был реализован.Он перечисляет только некоторые службы в SAP .Пожалуйста, помогите мне в скрипте перечислить все услуги.Из 60 сервисов отображаются 20.

Const ForAppending = 8
Префикс DIM, prelen
Неярким узором
шаблон="%"

Set objFSO = CreateObject ("Scripting.Filesystemobject, с")
'Set objLogFile = objFSO. OpenTextFile ("services. csv", ForAppending, True)
Установите objLogFile = Wscript.стандартный вывод
- objLogFile.Write ("Служебные Зависимости")
objLogFile.метод WriteLine
strComputer = "."

Имя Дим

если WScript.Аргументы.тогда длина = 1
pattern = WScript.Аргументы(0)
конец, если

Набор objWMIService = ("winmgmts:" &усилителя функция getobject; "{impersonationLevel=метод impersonate}!\\" &ампер; strComputer &ампер; "\корень\пространстве имен cimv2")
запрос = "выбрать * из win32_service службы, где имя как '" &амп; шаблон &ампер; "' и тип сервиса = 'процесс' или тип сервиса='интерактивный процесс'"
WScript.Эхо-запрос

Установите colListOfServices = objWMIService.ExecQuery(запрос)

префикс = "C:\WINDOWS\"
prelen = len (префикс)
Для каждого objService в colListofServices
Если нет, то startsWith(objService.Путь, префикс, прелен) Затем
objLogFile.Напишите "service_name=" & objService.Имя &"; service_type=ntsrv; service_caption=" & objService.Отображаемое имя&усилитель; ";service_user=" &амп; objService.StartName &"; service_Executable= " & objService.Путь &ампер; ";service_resources=serviceName_"&амп;objService.Имя
objLogFile.метод WriteLine
Конец, Если
Следующий
objLogFile.Закрывать


Функция startsWith(str1, prefix,prelen)
startsWith = Left(LCase (str1), prelen) = LCase (префикс)

Конечная Функция

Спасибо,
Картик

Что я уже пробовал:

Я попытался изменить этот запрос = " Select * from Win32_Service"

1 Ответов

Рейтинг:
0

CHill60

Это будет проблема с вашим предложением WHERE в

query = "Select * from Win32_Service where Name like '" & pattern & "' AND ServiceType = 'Own Process' OR ServiceType='Interactive Process'"

Для начала у вас есть смесь и и или без использования скобок для определения вашего значения. Попробуйте сделать это вместо этого (обратите внимание на открытые и закрытые скобки)
query = "Select * from Win32_Service where Name like '" & pattern & "' AND ( ServiceType = 'Own Process' OR ServiceType='Interactive Process' ) "


Если вы все еще не получаете всех результатов, которые ожидаете после этого, то проверьте свой ввод на наличие pattern