powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBS + WMI. Проверить - Существует ли служба (сервис) на сервере.
9 сообщений из 9, страница 1 из 1
VBS + WMI. Проверить - Существует ли служба (сервис) на сервере.
    #37626631
p0oh!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Помогите решить проблему.

Как проверить - есть ли на данном сервере вообще этот сервис?
Lenth1 = UBound(colItems) - не возвращает истинное положение вещей. Каким правильным методом это сделать?


Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
'Функция опознания состояния сервиса
'==================================================================================================
private function GetSrvcState(ByVal strSrvrName, ByVal strSrvcName)
	    Dim strSlist
	    
	    On Error Resume Next
            Set objWMIService = GetObject("winmgmts:\\" & strSrvrName & "\root\CIMV2") 
            Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Service WHERE Name ='" & strSrvcName & "'",,48)
        
            'Проверяем есть ли вообще элементы какие либо?!
            Lenth1 = UBound(colItems)
            
            If Lenth1 = 0 then 
	    'Если нет - то и говорим - что результат выполнения запроса на состояние - "Сервис отсутствует"
                GetSrvcState = "not exist"
            Else
                'Если есть - то находим для сервиса его состояния и делаем его результатом выполненя функции
                For Each objItem in colItems 
			 StrSList = objItem.State
		Next
		GetSrvcState = strSList
            End If 
            
End Function
    '======================================================================================================
...
Рейтинг: 0 / 0
VBS + WMI. Проверить - Существует ли служба (сервис) на сервере.
    #37626643
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: p0oh!
> Как проверить - есть ли на данном сервере вообще этот сервис?
> Lenth1 = UBound(colItems) - не возвращает истинное положение вещей. Каким правильным методом это сделать?

Так может это коллекция? И тогда проверка будет:
Код: vbnet
1.
Lenth1 = colItems.Count



Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
VBS + WMI. Проверить - Существует ли служба (сервис) на сервере.
    #37626709
p0oh!,

colItems, конечно, коллекция, но обращение к .Count вызывает почему-то ошибку. Но enumerator коллекции работает, поэтому поступаем просто:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Private Function GetSrvcState(ByVal strSrvrName, ByVal strSrvcName)
 Dim strSlist 'As String
 Dim objWMIService 'As SWbemServicesEx
 Dim colItems 'As SWbemObjectSet
 Dim objItem 'As SWbemObjectEx
 Dim bExists 'As Boolean
     
 Set objWMIService = GetObject("winmgmts:\\" & strSrvrName & "\root\CIMV2")
 Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Service WHERE Name ='" & strSrvcName & "'", , 48)
 bExists = False
 For Each objItem In colItems
    strSlist = objItem.State
    bExists = True
 Next
 If bExists Then
    GetSrvcState = strSlist
 Else
    GetSrvcState = "not exist"
 End If
End Function



Рекомендация: использовать VB или VBA для отладки таких вещей, с подключением в проект соответствующей библиотеки типов (Microsoft WMI Scripting Library). Можно и пошагово пройтись, и состояние переменных в Locals посмотреть, очень помогает понять, что происходит.
...
Рейтинг: 0 / 0
VBS + WMI. Проверить - Существует ли служба (сервис) на сервере.
    #37626761
p0oh!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы рад но в ниспадающем контексном нчиего не появляется ни в VBA ни в VB.
...
Рейтинг: 0 / 0
VBS + WMI. Проверить - Существует ли служба (сервис) на сервере.
    #37626767
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
p0oh!в ниспадающем контексном нчиего не появляется ни в VBA ни в VB.
Русским же по белому сказали
13-й кварталс подключением в проект соответствующей библиотеки типов (Microsoft WMI Scripting Library)
...
Рейтинг: 0 / 0
VBS + WMI. Проверить - Существует ли служба (сервис) на сервере.
    #37626870
p0oh!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akinap0oh!в ниспадающем контексном нчиего не появляется ни в VBA ни в VB.
Русским же по белому сказали
13-й кварталс подключением в проект соответствующей библиотеки типов (Microsoft WMI Scripting Library)

Ну я говорю же, ничего не происходит. Если бы была бы хоть какая то подсказка - я бы не обращался,..
...
Рейтинг: 0 / 0
VBS + WMI. Проверить - Существует ли служба (сервис) на сервере.
    #37626923
p0oh!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
От безысходности сделал так ((((
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
'Функция опознания состояния сервиса
'==================================================================================================
	private function GetSrvcState(ByVal strSrvrName, ByVal strSrvcName)
		Dim strSlist
	    
		On Error Resume Next
		Dim colItemsCount
            
		Set objWMIService = GetObject("winmgmts:\\" & strSrvrName & "\root\CIMV2") 
		Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Service WHERE Name ='" & strSrvcName & "'",,48)
            
		colItemsCount = 0
		For Each objItem in colItems 
			StrSList = objItem.State
    			colItemsCount = colItemsCount + 1
		Next
		    
		If colItemsCount = 0 then
			'Проверяем есть ли вообще элементы какие либо?!
			GetSrvcState = "no exist"		    		    
			'Если есть - то находим для сервиса его состояния и делаем его результатом выполненя функции    
	        Else 
                	GetSrvcState = strSList
		End If 
            
	End Function
'======================================================================================================
...
Рейтинг: 0 / 0
VBS + WMI. Проверить - Существует ли служба (сервис) на сервере.
    #37626962
Даже не знаю, что и говорить.
...
Рейтинг: 0 / 0
VBS + WMI. Проверить - Существует ли служба (сервис) на сервере.
    #37627184
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: 13-й квартал
> Даже не знаю, что и говорить.



Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VBS + WMI. Проверить - Существует ли служба (сервис) на сервере.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]