Небольшой скриптец на VBScript, который я использовал для определения установленного на компьютере SMS 2003 клиента:
'-CheckSMS2003Client.vbs--------------------------------------------
option explicit
Dim Services
Set Services = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("SELECT * FROM Win32_Service where Name='CCMEXEC'")
if Services.Count = 0 then
Wscript.Echo "CCMEXEC Service не найдена"
Wscript.Quit 1
end if
Dim CMNameSpace
Dim CMobjs
Dim CMobj
On Error Resume Next
Err.Number = 0
set CMNameSpace = GetObject("winmgmts:\\.\root").ExecQuery("select * from __Namespace where name = 'ccm'")
if Err.Number <> 0 then
WScript.echo Err.Message
Wscript.Quit 2
end if
On error Goto 0
if CMNameSpace.Count = 0 then
Wscript.Echo "CCM namespace не найдено"
Wscript.Quit 1
end if
On Error Resume next
Err.Clear
set CMObjs = GetObject("winmgmts:\\.\root\ccm").ExecQuery("SELECT * FROM SMS_Client")
if Err.Number <> 0 then
Wscript.Echo Err.Message
WScript.Quit 2
end if
On Error Goto 0
if CMObjs.Count = 0 then
WScript.Echo "Объекты SMS_Client не найдены"
Wscript.Quit 1
end if
for each CMObj in CMObjs
if Left(CMObj.ClientVersion, 5) = "2.50." then
Wscript.Echo CMObj.ClientVersion
WScript.Quit 0
end if
next
Wscript.Quit 1
Скрипт после отработки возвращает 0 в случае если обнаружил клиента и все остальное в случае если клиент не найден.
Можно задействовать в скрипте удаления SMS 2003 клиента следующим образом:
cscript.exe CheckSMS2003Client.vbs
if "%ERRORLEVEL%"=="0" ccmclean.exe /q /client
ccmclean.exe входит в SMS 2003 Toolkit2, который можно скачать отсюда > http://www.microsoft.com/en-us/download/details.aspx?id=18153
Текст скрипта на pastebin > http://pastebin.ru/CATdNRhq
'-CheckSMS2003Client.vbs--------------------------------------------
option explicit
Dim Services
Set Services = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("SELECT * FROM Win32_Service where Name='CCMEXEC'")
if Services.Count = 0 then
Wscript.Echo "CCMEXEC Service не найдена"
Wscript.Quit 1
end if
Dim CMNameSpace
Dim CMobjs
Dim CMobj
On Error Resume Next
Err.Number = 0
set CMNameSpace = GetObject("winmgmts:\\.\root").ExecQuery("select * from __Namespace where name = 'ccm'")
if Err.Number <> 0 then
WScript.echo Err.Message
Wscript.Quit 2
end if
On error Goto 0
if CMNameSpace.Count = 0 then
Wscript.Echo "CCM namespace не найдено"
Wscript.Quit 1
end if
On Error Resume next
Err.Clear
set CMObjs = GetObject("winmgmts:\\.\root\ccm").ExecQuery("SELECT * FROM SMS_Client")
if Err.Number <> 0 then
Wscript.Echo Err.Message
WScript.Quit 2
end if
On Error Goto 0
if CMObjs.Count = 0 then
WScript.Echo "Объекты SMS_Client не найдены"
Wscript.Quit 1
end if
for each CMObj in CMObjs
if Left(CMObj.ClientVersion, 5) = "2.50." then
Wscript.Echo CMObj.ClientVersion
WScript.Quit 0
end if
next
Wscript.Quit 1
Скрипт после отработки возвращает 0 в случае если обнаружил клиента и все остальное в случае если клиент не найден.
Можно задействовать в скрипте удаления SMS 2003 клиента следующим образом:
cscript.exe CheckSMS2003Client.vbs
if "%ERRORLEVEL%"=="0" ccmclean.exe /q /client
ccmclean.exe входит в SMS 2003 Toolkit2, который можно скачать отсюда > http://www.microsoft.com/en-us/download/details.aspx?id=18153
Текст скрипта на pastebin > http://pastebin.ru/CATdNRhq
Комментариев нет:
Отправить комментарий