Получение сведений о компьютере
Получение сведений о компьютере
С помощью базы данных CIMOM можно также определить конфигурацию операционной системы. Метод определения конфигурации подобен методу определения установленных на компьютере компонентов, поэтому будет рассмотрена лишь часть кода, с помощью которой выполняется обращение к базе данных.
Листинг 11.7. Получение сведений об операционной системе
set objWMIService = GetObject("winmgmts:" & "{impersonationLevel = impersonate}! rootcimv2")
set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
for each objOperatingSystem in colOS
objTextFile.WriteLine objOperatingSystem.Name
next
Именно так можно подключиться к базе данных сведений об операционной системе и записать их в файл. Но к каким столбцам таблицы можно получить доступ (кроме используемого в листинге столбца Name, который содержит имя операционной системы и путь к папке Windows)? Ниже перечислены некоторые из таких столбцов (в контексте инструментария управления WMI они называются свойствами).
? BootDevice — указывает имя тома, из которого загружается операционная система.
? CodeSet — указывает кодовую страницу, используемую операционной системой (как написано в MFL-файле, кодовая страница содержит таблицу символов, применяемую операционной системой для преобразования строк на различных языках).
? DataExecutionPrevention_Available — если данное свойство возвращает значение true, то оборудование, установленное на компьютере, поддерживает технологию предотвращения выполнения данных Windows (DEP). Более подробные сведения об этой технологии можно найти в файле cimwin32.mfl.
? LargeSystemCache — указывает, для каких операций выполняется оптимизация памяти. Если свойство возвращает значение 0, то оптимизация памяти выполняется для повышения производительности работающих программ. Если же возвращается значение 1, то оптимизация памяти выполняется для повышения производительности работы операционной системы.
ПРИМЕЧАНИЕ
Свойство использует для определения метода оптимизации уже рассмотренный ранее параметр реестра LargeSystemCache, расположенный в ветви HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management. Если его значение равно 1, то возвращается значение 1.
? Version — содержит номер версии операционной системы Windows.
? ServicePackMajorVersion — основная версия установленного пакета обновлений.
? ServicePackMinorVersion — дополнительная версия установленного пакета обновлений.
? Manufacturer — имя производителя операционной системы.
? WindowsDirectory — каталог Windows.
? Locale — код локализации (419 для русской версии, 409 для английской).
? FreePhysicalMemory — свободный объем жесткого диска.
? FreeVirtualMemory — свободный объем виртуальной памяти.
? TotalVirtualMemorySize — общий объем виртуальной памяти.
Здесь были рассмотрены лишь 13 свойств класса Win32_OperatingSystem, на самом же деле данный класс имеет 35 свойств. Не имеет смысла описывать остальные свойства, так как все они отлично описаны в стандартном файле cimwin32.mfl, расположенном в каталоге %systemroot%SYSTEM32wbem, а автор не брал на себя задачу создания книжного аналога данного файла. Поэтому за дополнительной информацией обращайтесь к файлу cimwin32.mfl (просто поищите в нем строку Win32_OperatingSystem).
Кроме Win32_OperatingSystem, для описания компьютера можно использовать следующие классы.
? Win32_ComputerSystem — содержит следующие свойства, описывающие работающий компьютер.
• AutomaticResetBootOption — если данное свойство возвращает значение false, то при возникновении аварийной остановки отображается «синий экран смерти» (BSOD). Если же значение равно true, то компьютер автоматически перезагружается.
• BootupState — определяет способ загрузки операционной системы. На пример, если данное свойство возвращает значение Normal Boot, то операционная система была загружена в обычном режиме. Возможны следующие значения: Normal boot, Fail-safe boot, Fail-safe with network boot.
• Name — имя компьютера.
• NumberOfProcessors — возвращает количество процессоров, установленных на данном компьютере.
• Manufacturer — имя компании, собиравшей компьютер.
• Model — модель BIOS компьютера (поддерживает ACPI или нет).
• CurrentTimeZone — идентификатор текущей зоны часового пояса.
• TotalPhysicalMemory — общий объем физической памяти.
ПРИМЕЧАНИЕ
Класс содержит 39 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%SYSTEM32wbem. Просто поищите в нем строку Win32_ComputerSystem.
? Win32_Processor — определяет один экземпляр процессора (для многопроцессорных систем существует несколько экземпляров данного класса) и содержит следующие свойства:
• Description — описание процессора, установленного на компьютере;
• Architecture — тип процессора, установленного на компьютере;
• CurrentVoltage — возвращает текущее напряжение, используемое процессором (определяется первыми 6 байтами, умноженными на 10);
• L2CacheSize — возвращает размер кэша второго уровня для данного процессора;
• LoadPercentage — возвращает среднюю величину загруженности процессора в течение одной секунды.
ПРИМЕЧАНИЕ
Класс содержит 16 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%SYSTEM32wbem. Просто поищите в нем строку Win32_Processor.
? Win32_BIOS — указывает атрибуты служб ввода/вывода, установленных на компьютере и содержит следующие свойства:
• Version — описание версии BIOS материнской платы;
• CurrentLanguage — возвращает имя текущего языка BIOS.
ПРИМЕЧАНИЕ
Класс содержит 11 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%SYSTEM3wbem.
? Win32_OSRecoveryConfiguration — определяет установленные настройки выполнения дампа памяти при аварийной остановке системы и содержит следующие свойства.
• DebugFilePath — возвращает путь к файлу дампа памяти, который будет создаваться при возникновении аварийной остановки.
• MiniDumpDirectory — возвращает каталог, который используется для хранения малых дампов памяти.
• WriteToSystemLog — указывает, будет ли выполняться запись в системный журнал событий при возникновении аварийной остановки. Если возвращает значение false, то не будет.
ПРИМЕЧАНИЕ
Класс содержит 11 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%SYSTEM3wbem.
? Win32_Process — указывает запущенные в данный момент на удаленном или локальном компьютере процессы и содержит следующие свойства, возвращающие:
• ExecutablePath — пути к исполняемым файлам процессов, запущенных в данный момент;
• MaximumWorkingSetSize — максимальный набор страниц памяти, доступных процессам;
• PageFaults — количество ошибок страниц, которые были допущены в течение всего времени работы процесса;
• PageFileUsage — объем файла подкачки, который используется процессом в данный момент;
• ProcessId — идентификатор процесса;
• QuotaPagedPoolUsage — размер используемой процессом в данный момент части выгружаемого пула;
• CommandLine — командную строку, которая использовалась для запуска данного процесса.
ПРИМЕЧАНИЕ
Класс содержит 30 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%SYSTEM3wbem.
? Win32_StartupCommand — определяет файлы, запускаемые при входе пользователя в систему. При этом возвращаются не только исполняемые файлы, но и файлы других типов (независимо от расширения файла, если исполняемая программа обращается к данному файлу, то класс считает, что файл запускается при входе пользователя в систему). Например, на компьютере автора данный класс вернул около 4582 файлов, которые запускаются при входе пользователя в систему. Класс содержит следующие свойства.
• Command — возвращает командную строку, с помощью которой запускаются исполняемые файлы, или имя файла, который запускается исполняемым.
• User — имя учетной записи пользователя, при входе которого запускается данный файл (так описание свойства определено в файле cimwin32.mfl, хотя возвращаемое значение больше похоже на имя учетной записи, с правами которой данный файл запускается).
• Name — название запускаемого файла (без расширения).
• Location — значение Startup, говорящее о том, что данный файл запускается с помощью папки Автозагрузка, или ветвь реестра, из которой выполняется запуск данного файла.
? Win32_NTEventlogFile — определяет параметры настройки системных журналов (рассмотренная оснастка Просмотр событий) и содержит следующие свойства:
• LogFileName — возвращает имя системного журнала;
• MaxFileSize — определяет предельный размер файла системного журнала;
• NumberOfRecords — возвращает количество записей, хранящихся в данный момент в системных журналах;
• OverwriteOutDated — количество дней, в течение которого запись может храниться в системном журнале.
? Win32_AccountSID — определяет учетные записи и группы, созданные на данном компьютере. Класс содержит следующие два свойства.
• Element — перечисляет все доступные на компьютере группы и учетные записи. При этом разница между данными объектами отображается в виде класса, к которому они принадлежат (формат вывода в текстовый файл таков: пространство имен WMI и класс, к которому принадлежит данная учетная запись или группа, а также название данной учетной записи или группы,например, \ME ootcimv2 :Win32_Group.Domain="ME",Name="Администраторы").
• Setting — перечисляет SID учетных записей и групп, созданных на данном компьютере.
Это далеко не все возможные классы и их свойства. Автор не брал на себя ответственность по полному их описанию. Тем не менее уже по описанным свойствам можно понять, что инструментарий управления WMI позволяет получить описание если не всех параметров работы компьютера и установленных на нем приложений, то большинства из них. А если учитывать, что WMI постоянно развивается, то скоро от ее глаз не скроется ни одна мелочь в работе компьютера.