пятница, 16 ноября 2012 г.

Определяем и удаляем клиентов SMS 2003

Небольшой скриптец на 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

Комментариев нет: