saavaage
06-10-2010, 14:53
Просьба проверить Ваши системы данной утилитой и отписаться:
1. Ваши антивирус и файрвол (название, версия)
2. определились или нет данным модулем
3. системные данные
Заранее спасибо всем за тестинг!
Код
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
Global $DebugMode = 0
Opt("GUIOnEventMode", 1)
$hMain_GUI = GUICreate("Проверка безопасности OS", 619, 182, 189, 122)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$Tab1 = GUICtrlCreateTab(8, 16, 601, 120)
$Security = GUICtrlCreateTabItem("Проверка на средства защиты OS")
GUICtrlCreateLabel('Ваша OS', 24, 52)
$OS = GUICtrlCreateInput('', 84, 50, 290, 20, BitOR($SS_LEFT, $ES_READONLY, $ES_AUTOHSCROLL))
GUICtrlCreateLabel('SP', 384, 52)
$SP = GUICtrlCreateInput('', 405, 50, 100, 20, BitOR($SS_LEFT, $ES_READONLY, $ES_AUTOHSCROLL))
GUICtrlCreateLabel('Bit', 515, 52)
$Bit = GUICtrlCreateInput(@OSArch , 535, 50, 50, 20, BitOR($SS_LEFT, $ES_READONLY, $ES_AUTOHSCROLL))
GUICtrlCreateLabel('Антивирус', 24, 75)
$Antivirus = GUICtrlCreateInput('', 84, 75, 500, 20, BitOR($SS_LEFT, $ES_READONLY, $ES_AUTOHSCROLL))
GUICtrlCreateLabel('Файрволл', 24, 100)
$Firewall = GUICtrlCreateInput('', 84, 100, 500, 20, BitOR($SS_LEFT, $ES_READONLY, $ES_AUTOHSCROLL))
If _ServiceExists('wscsvc') = 1 Then
_Antivir()
_Firewall()
Else
MsgBox(0, 'Уведомление', 'Для работы модуля необходимо активировать' &@CRLF &' в системе Центр Обеспечения Безопасности!')
EndIf
_OSInfo()
$Button_Save = GUICtrlCreateButton('Сохранить на РС', 501, 145, 100, 30)
GUICtrlSetOnEvent($Button_Save, "_Save")
GUICtrlCreateTabItem("")
GUISetState()
While 1
Sleep(100)
WEnd
Func CLOSEClicked()
Exit
EndFunc
Func _Save()
GUICtrlSetState($Button_Save, $GUI_DISABLE)
If FileExists(@DesktopDir&'\securety_report.txt') Then
MsgBox(4096, "securety report", 'securety_report.txt уже существует. Переменуйте' &@CRLF & 'его для предотвращения затирания информации!')
Else
$sData = GUICtrlRead($OS) & ' ' & GUICtrlRead($SP) & ' ' & GUICtrlRead($Bit) & ' ' &@CRLF& 'Антивирус: ' & GUICtrlRead($Antivirus) &@CRLF& 'Файрволл: ' & GUICtrlRead($Firewall)
$file = FileOpen(@DesktopDir&'\securety_report.txt',18)
FileWrite($file, $sData)
FileClose($file)
sleep(1000)
GUICtrlSetState($Button_Save, $GUI_ENABLE)
EndIf
EndFunc
Func _OSInfo()
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"
$OutputTitle = ""
$OutputOS = ""
$OutputSP = ""
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) Then
Local $Object_Flag = 0
For $objItem In $colItems
$Object_Flag = 1
$OutputOS &= $objItem.Caption
$OutputSP &= $objItem.CSDVersion
Next
If $Object_Flag = 0 Then
GUICtrlSetData($OS, "Система не определена!")
GUICtrlSetData($SP, "SP не определен!")
Else
GUICtrlSetData($OS, $OutputOS)
GUICtrlSetData($SP, $OutputSP)
$OutputOS = ""
$OutputSP = ""
EndIf
EndIf
EndFunc
Func _Antivir()
$OutputAnt = ""
$objWMIService = ObjGet("winmgmts:\\localhost\root\SecurityCenter")
$colItems = $objWMIService.ExecQuery("SELECT * FROM AntiVirusProduct", "WQL", 48)
If IsObj($colItems) Then
For $objItem In $colItems
$OutputAnt &= $objItem.DisplayName & " Version: " & $objItem.VersionNumber & ' '
Next
If $OutputAnt <> '' Then
GUICtrlSetData($Antivirus, StringTrimRight($OutputAnt, 2))
$OutputAnt = ""
Else
GUICtrlSetData($Antivirus, 'Антивирус отсутствует!')
EndIf
Endif
EndFunc
Func _Firewall()
$OutputFw = ""
$objWMIService = ObjGet("winmgmts:\\localhost\root\SecurityCenter")
$colItems = $objWMIService.ExecQuery("SELECT * FROM FireWallProduct", "WQL", 48)
If IsObj($colItems) Then
For $objItem In $colItems
$OutputFw &= $objItem.DisplayName & " Version: " & $objItem.VersionNumber & ' '
Next
If $OutputFw <> '' Then
GUICtrlSetData($Firewall, StringTrimRight($OutputFw, 2))
$OutputFw = ""
Else
GUICtrlSetData($Firewall, 'Файрволл отсутствует!')
EndIf
Endif
EndFunc
Func _ServiceExists($nService)
Local $objWMIService ; Main object
Local $objQueryCollection ; Result of query
Local $hObj ; Current selected Object in $objQueryCollection
If $DebugMode = 1 Then ConsoleWrite(@CR)
If $DebugMode = 1 Then ConsoleWrite("_ServiceExists($nService)" & @CR)
If $DebugMode = 1 Then ConsoleWrite("_ServiceExists($nService)= " & $nService & @CR)
$objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
If IsObj($objWMIService) Then
If $DebugMode = 1 Then ConsoleWrite("$objWMIService is an Object" & @CR)
$objQueryCollection = $objWMIService.ExecQuery("SELECT * FROM Win32_Service Where Name = '" & $nService & "'")
Else
Return 110
EndIf
If IsObj($objQueryCollection) then
If $DebugMode = 1 Then ConsoleWrite("Collection returned by Query on $objWMIService)" & @CR)
For $hObj In $objQueryCollection
If $hObj.Name = $nService Then Return 1 ;Service found, return 0
Next ;<== $objWMIService In $hObj
Else
Return 110 ;Obj error
EndIf
Return 0 ;Service not found, return -1
EndFunc
ссылка на готовый модуль http://ifolder.ru/19637962
PS в основу модуля легло предложение madmasles ( http://forum.oszone.net/post-1512083-11.html ) за что ему отдельное спасибо.
Итак, на 09102010 промежуточные итоги:
http://s49.radikal.ru/i124/1010/ca/017bb1004a40.jpg (http://www.radikal.ru)
1. Ваши антивирус и файрвол (название, версия)
2. определились или нет данным модулем
3. системные данные
Заранее спасибо всем за тестинг!
Код
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
Global $DebugMode = 0
Opt("GUIOnEventMode", 1)
$hMain_GUI = GUICreate("Проверка безопасности OS", 619, 182, 189, 122)
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSEClicked")
$Tab1 = GUICtrlCreateTab(8, 16, 601, 120)
$Security = GUICtrlCreateTabItem("Проверка на средства защиты OS")
GUICtrlCreateLabel('Ваша OS', 24, 52)
$OS = GUICtrlCreateInput('', 84, 50, 290, 20, BitOR($SS_LEFT, $ES_READONLY, $ES_AUTOHSCROLL))
GUICtrlCreateLabel('SP', 384, 52)
$SP = GUICtrlCreateInput('', 405, 50, 100, 20, BitOR($SS_LEFT, $ES_READONLY, $ES_AUTOHSCROLL))
GUICtrlCreateLabel('Bit', 515, 52)
$Bit = GUICtrlCreateInput(@OSArch , 535, 50, 50, 20, BitOR($SS_LEFT, $ES_READONLY, $ES_AUTOHSCROLL))
GUICtrlCreateLabel('Антивирус', 24, 75)
$Antivirus = GUICtrlCreateInput('', 84, 75, 500, 20, BitOR($SS_LEFT, $ES_READONLY, $ES_AUTOHSCROLL))
GUICtrlCreateLabel('Файрволл', 24, 100)
$Firewall = GUICtrlCreateInput('', 84, 100, 500, 20, BitOR($SS_LEFT, $ES_READONLY, $ES_AUTOHSCROLL))
If _ServiceExists('wscsvc') = 1 Then
_Antivir()
_Firewall()
Else
MsgBox(0, 'Уведомление', 'Для работы модуля необходимо активировать' &@CRLF &' в системе Центр Обеспечения Безопасности!')
EndIf
_OSInfo()
$Button_Save = GUICtrlCreateButton('Сохранить на РС', 501, 145, 100, 30)
GUICtrlSetOnEvent($Button_Save, "_Save")
GUICtrlCreateTabItem("")
GUISetState()
While 1
Sleep(100)
WEnd
Func CLOSEClicked()
Exit
EndFunc
Func _Save()
GUICtrlSetState($Button_Save, $GUI_DISABLE)
If FileExists(@DesktopDir&'\securety_report.txt') Then
MsgBox(4096, "securety report", 'securety_report.txt уже существует. Переменуйте' &@CRLF & 'его для предотвращения затирания информации!')
Else
$sData = GUICtrlRead($OS) & ' ' & GUICtrlRead($SP) & ' ' & GUICtrlRead($Bit) & ' ' &@CRLF& 'Антивирус: ' & GUICtrlRead($Antivirus) &@CRLF& 'Файрволл: ' & GUICtrlRead($Firewall)
$file = FileOpen(@DesktopDir&'\securety_report.txt',18)
FileWrite($file, $sData)
FileClose($file)
sleep(1000)
GUICtrlSetState($Button_Save, $GUI_ENABLE)
EndIf
EndFunc
Func _OSInfo()
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"
$OutputTitle = ""
$OutputOS = ""
$OutputSP = ""
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) Then
Local $Object_Flag = 0
For $objItem In $colItems
$Object_Flag = 1
$OutputOS &= $objItem.Caption
$OutputSP &= $objItem.CSDVersion
Next
If $Object_Flag = 0 Then
GUICtrlSetData($OS, "Система не определена!")
GUICtrlSetData($SP, "SP не определен!")
Else
GUICtrlSetData($OS, $OutputOS)
GUICtrlSetData($SP, $OutputSP)
$OutputOS = ""
$OutputSP = ""
EndIf
EndIf
EndFunc
Func _Antivir()
$OutputAnt = ""
$objWMIService = ObjGet("winmgmts:\\localhost\root\SecurityCenter")
$colItems = $objWMIService.ExecQuery("SELECT * FROM AntiVirusProduct", "WQL", 48)
If IsObj($colItems) Then
For $objItem In $colItems
$OutputAnt &= $objItem.DisplayName & " Version: " & $objItem.VersionNumber & ' '
Next
If $OutputAnt <> '' Then
GUICtrlSetData($Antivirus, StringTrimRight($OutputAnt, 2))
$OutputAnt = ""
Else
GUICtrlSetData($Antivirus, 'Антивирус отсутствует!')
EndIf
Endif
EndFunc
Func _Firewall()
$OutputFw = ""
$objWMIService = ObjGet("winmgmts:\\localhost\root\SecurityCenter")
$colItems = $objWMIService.ExecQuery("SELECT * FROM FireWallProduct", "WQL", 48)
If IsObj($colItems) Then
For $objItem In $colItems
$OutputFw &= $objItem.DisplayName & " Version: " & $objItem.VersionNumber & ' '
Next
If $OutputFw <> '' Then
GUICtrlSetData($Firewall, StringTrimRight($OutputFw, 2))
$OutputFw = ""
Else
GUICtrlSetData($Firewall, 'Файрволл отсутствует!')
EndIf
Endif
EndFunc
Func _ServiceExists($nService)
Local $objWMIService ; Main object
Local $objQueryCollection ; Result of query
Local $hObj ; Current selected Object in $objQueryCollection
If $DebugMode = 1 Then ConsoleWrite(@CR)
If $DebugMode = 1 Then ConsoleWrite("_ServiceExists($nService)" & @CR)
If $DebugMode = 1 Then ConsoleWrite("_ServiceExists($nService)= " & $nService & @CR)
$objWMIService = ObjGet("winmgmts:\\" & @ComputerName & "\root\CIMV2")
If IsObj($objWMIService) Then
If $DebugMode = 1 Then ConsoleWrite("$objWMIService is an Object" & @CR)
$objQueryCollection = $objWMIService.ExecQuery("SELECT * FROM Win32_Service Where Name = '" & $nService & "'")
Else
Return 110
EndIf
If IsObj($objQueryCollection) then
If $DebugMode = 1 Then ConsoleWrite("Collection returned by Query on $objWMIService)" & @CR)
For $hObj In $objQueryCollection
If $hObj.Name = $nService Then Return 1 ;Service found, return 0
Next ;<== $objWMIService In $hObj
Else
Return 110 ;Obj error
EndIf
Return 0 ;Service not found, return -1
EndFunc
ссылка на готовый модуль http://ifolder.ru/19637962
PS в основу модуля легло предложение madmasles ( http://forum.oszone.net/post-1512083-11.html ) за что ему отдельное спасибо.
Итак, на 09102010 промежуточные итоги:
http://s49.radikal.ru/i124/1010/ca/017bb1004a40.jpg (http://www.radikal.ru)