|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Скрипт для проверки версии ОС |
|
|
[решено] Скрипт для проверки версии ОС
|
Пользователь Сообщения: 144 |
Добрый день!
Народ, помогите написать функцию для чтения информации о версии ос из wmi. Я пробовал написать, но не знаю синтаксиса, у меня выдаются пустые значения... |
|
Отправлено: 15:57, 30-01-2012 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата HFShak:
И куски кода следует заключать в соответствующий тег. |
|
------- Отправлено: 17:43, 30-01-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 144
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
|
|
Отправлено: 09:09, 31-01-2012 | #3 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать HFShak,
; Generated by AutoIt ScriptOMatic $wbemFlagReturnImmediately = 0x10 $wbemFlagForwardOnly = 0x20 $colItems = "" $strComputer = "localhost" $OutputTitle = "" $Output = "" $OutputTitle &= "Computer: " & $strComputer & @CRLF $OutputTitle &= "==========================================" & @CRLF $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 $Output &= "BootDevice: " & $objItem.BootDevice & @CRLF $Output &= "BuildNumber: " & $objItem.BuildNumber & @CRLF $Output &= "BuildType: " & $objItem.BuildType & @CRLF $Output &= "Caption: " & $objItem.Caption & @CRLF $Output &= "CodeSet: " & $objItem.CodeSet & @CRLF $Output &= "CountryCode: " & $objItem.CountryCode & @CRLF $Output &= "CreationClassName: " & $objItem.CreationClassName & @CRLF $Output &= "CSCreationClassName: " & $objItem.CSCreationClassName & @CRLF $Output &= "CSDVersion: " & $objItem.CSDVersion & @CRLF $Output &= "CSName: " & $objItem.CSName & @CRLF $Output &= "CurrentTimeZone: " & $objItem.CurrentTimeZone & @CRLF $Output &= "DataExecutionPrevention_32BitApplications: " & $objItem.DataExecutionPrevention_32BitApplications & @CRLF $Output &= "DataExecutionPrevention_Available: " & $objItem.DataExecutionPrevention_Available & @CRLF $Output &= "DataExecutionPrevention_Drivers: " & $objItem.DataExecutionPrevention_Drivers & @CRLF $Output &= "DataExecutionPrevention_SupportPolicy: " & $objItem.DataExecutionPrevention_SupportPolicy & @CRLF $Output &= "Debug: " & $objItem.Debug & @CRLF $Output &= "Description: " & $objItem.Description & @CRLF $Output &= "Distributed: " & $objItem.Distributed & @CRLF $Output &= "EncryptionLevel: " & $objItem.EncryptionLevel & @CRLF $Output &= "ForegroundApplicationBoost: " & $objItem.ForegroundApplicationBoost & @CRLF $Output &= "FreePhysicalMemory: " & $objItem.FreePhysicalMemory & @CRLF $Output &= "FreeSpaceInPagingFiles: " & $objItem.FreeSpaceInPagingFiles & @CRLF $Output &= "FreeVirtualMemory: " & $objItem.FreeVirtualMemory & @CRLF $Output &= "InstallDate: " & WMIDateStringToDate($objItem.InstallDate) & @CRLF $Output &= "LargeSystemCache: " & $objItem.LargeSystemCache & @CRLF $Output &= "LastBootUpTime: " & WMIDateStringToDate($objItem.LastBootUpTime) & @CRLF $Output &= "LocalDateTime: " & WMIDateStringToDate($objItem.LocalDateTime) & @CRLF $Output &= "Locale: " & $objItem.Locale & @CRLF $Output &= "Manufacturer: " & $objItem.Manufacturer & @CRLF $Output &= "MaxNumberOfProcesses: " & $objItem.MaxNumberOfProcesses & @CRLF $Output &= "MaxProcessMemorySize: " & $objItem.MaxProcessMemorySize & @CRLF $Output &= "Name: " & $objItem.Name & @CRLF $Output &= "NumberOfLicensedUsers: " & $objItem.NumberOfLicensedUsers & @CRLF $Output &= "NumberOfProcesses: " & $objItem.NumberOfProcesses & @CRLF $Output &= "NumberOfUsers: " & $objItem.NumberOfUsers & @CRLF $Output &= "Organization: " & $objItem.Organization & @CRLF $Output &= "OSLanguage: " & $objItem.OSLanguage & @CRLF $Output &= "OSProductSuite: " & $objItem.OSProductSuite & @CRLF $Output &= "OSType: " & $objItem.OSType & @CRLF $Output &= "OtherTypeDescription: " & $objItem.OtherTypeDescription & @CRLF $Output &= "PlusProductID: " & $objItem.PlusProductID & @CRLF $Output &= "PlusVersionNumber: " & $objItem.PlusVersionNumber & @CRLF $Output &= "Primary: " & $objItem.Primary & @CRLF $Output &= "ProductType: " & $objItem.ProductType & @CRLF $Output &= "QuantumLength: " & $objItem.QuantumLength & @CRLF $Output &= "QuantumType: " & $objItem.QuantumType & @CRLF $Output &= "RegisteredUser: " & $objItem.RegisteredUser & @CRLF $Output &= "SerialNumber: " & $objItem.SerialNumber & @CRLF $Output &= "ServicePackMajorVersion: " & $objItem.ServicePackMajorVersion & @CRLF $Output &= "ServicePackMinorVersion: " & $objItem.ServicePackMinorVersion & @CRLF $Output &= "SizeStoredInPagingFiles: " & $objItem.SizeStoredInPagingFiles & @CRLF $Output &= "Status: " & $objItem.Status & @CRLF $Output &= "SuiteMask: " & $objItem.SuiteMask & @CRLF $Output &= "SystemDevice: " & $objItem.SystemDevice & @CRLF $Output &= "SystemDirectory: " & $objItem.SystemDirectory & @CRLF $Output &= "SystemDrive: " & $objItem.SystemDrive & @CRLF $Output &= "TotalSwapSpaceSize: " & $objItem.TotalSwapSpaceSize & @CRLF $Output &= "TotalVirtualMemorySize: " & $objItem.TotalVirtualMemorySize & @CRLF $Output &= "TotalVisibleMemorySize: " & $objItem.TotalVisibleMemorySize & @CRLF $Output &= "Version: " & $objItem.Version & @CRLF $Output &= "WindowsDirectory: " & $objItem.WindowsDirectory & @CRLF If MsgBox(1, "WMI Output", $Output) = 2 Then ExitLoop $Output = "" Next If $Object_Flag = 0 Then MsgBox(1, "WMI Output", $OutputTitle) Else MsgBox(0, "WMI Output", "No WMI Objects Found for class: " & "Win32_OperatingSystem") EndIf Func WMIDateStringToDate($dtmDate) Return (StringMid($dtmDate, 5, 2) & "/" & _ StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _ & " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate, 13, 2)) EndFunc ;==>WMIDateStringToDate |
Отправлено: 12:56, 31-01-2012 | #4 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата HFShak:
|
||
------- Отправлено: 13:56, 31-01-2012 | #5 |
Пользователь Сообщения: 144
|
Профиль | Отправить PM | Цитировать Спасибо, очень полезный скрипт.
Скажите, а что это за переменные: $wbemFlagReturnImmediately = 0x10 $wbemFlagForwardOnly = 0x20 И что означает: Цитата madmasles:
В частоности, что делает "ExecQuery", что такое "WQL" и почему складываются две переменные? |
|
Отправлено: 14:13, 31-01-2012 | #6 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать |
Отправлено: 15:07, 31-01-2012 | #7 |
Пользователь Сообщения: 144
|
Профиль | Отправить PM | Цитировать Отличная ссылка. Читаю...
Вот пример: http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx Почему в C++ или в vbs запрос выглядет так: objWbemObjectSet = SWbemServices.ExecQuery( _ ByVal strQuery, _ [ ByVal strQueryLanguage ], _ [ ByVal iFlags ], _ [ ByVal objWbemNamedValueSet ] _ ) А в autoit так : colItems = $objWMIService.ExecNotificationQuery("SELECT * FROM Win32_OperatingSystem", "WQL", _ $wbemFlagReturnImmediately + $wbemFlagForwardOnly) Есть где нибудь описание именно для autoit типа: .ExecQuery ( ...) .Get ( ... ) |
Отправлено: 15:19, 31-01-2012 | #8 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать HFShak, что для WSH, что для AutoIt данный запрос абсолютно одинаков.
|
Отправлено: 15:40, 31-01-2012 | #9 |
Пользователь Сообщения: 144
|
Профиль | Отправить PM | Цитировать Почему может возникать вот такая ошибка?
Запуская скрип выше (ScriptOmatic.au3), на одном ПК работает нормально, на другом пишет: (13) : ==> Variable must be of type "Object".: $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_OperatingSystem", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly) $colItems = $objWMIService^ ERROR |
Отправлено: 17:43, 31-01-2012 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Скрипт для проверки пинга | Hunterus | Скриптовые языки администрирования Windows | 9 | 28-12-2011 12:19 | |
CMD/BAT - Нужна помошь:скрипт для проверки изменения размера папки, с перезапуском программы | abezze | Скриптовые языки администрирования Windows | 0 | 20-12-2011 16:43 | |
CMD/BAT - Скрипт для проверки почты | spartak-21rus | Скриптовые языки администрирования Windows | 1 | 29-03-2010 10:30 | |
Скрипт для проверки списка пользователей и их удаление из AD | alex_frog | Microsoft Windows NT/2000/2003 | 0 | 22-07-2009 13:16 | |
Скрипт для проверки пользователя ($) | Mike-os | Вебмастеру | 7 | 25-11-2005 18:27 |
|