Приложение для инвентаризации рабочих станций ЛВСРефераты >> Коммуникации и связь >> Приложение для инвентаризации рабочих станций ЛВС
Количество и содержимое пространств имен зависит от операционной системы, а также от используемой версии WMI и установленных в системе приложений. Отметим при этом, что в любом варианте установки WMI имеются четыре предопределенных пространства имен, которые всегда находятся на один уровень ниже корневого пространства имен: CIMV2, Default, Security и WMI. Некоторые пространства имен содержат другие пространства. Например, в CIMV2 определены подпространства имен Applications и ms_409.
В операционных системах Windows Server 2003 и Windows XP репозиторий CIM физически располагается в четырех файлах каталога %System-Root%\System32\Wbem\ Repository\FS:
- index.btr (индексный файл);
- objects.data (репозиторий CIM, в котором хранятся описания управляемых ресурсов);
- index.map и object.map (файлы контроля над транзакциями).
В более ранних версиях Windows CIM представлена одним файлом cim.rep, который в случае Windows 2000/NT находится в каталоге %SystemRootr%\System32\Wbem\Repository, а в случае Windows 9х/Ме — в каталоге %WinDir%\ System\Wbem\Repository.
6.5 Путь к классам и объектам CIM
Все классы внутри одного пространства имен должны иметь уникальные имена (при этом имена классов из разных пространств могут совпадать), причем класс в одном пространстве имен не может иметь предка или потомка из другого пространства. Для идентификации классов и объектов внутри пространства имен в CIM нужно задавать путь к этим классам и объектам (object path), аналогично тому, как это делается, например, в пространства имен файловой системы. Напомним, что любой файл на диске однозначно определяется полным путем к нему следующим образом: нужно указать имя устройства, после которого следуют одно или несколько имен каталогов и непосредственно имя файла. Другими словами, в файловой системе используется иерархическая структура каталогов и файлов различной степени вложенности. В отличие от этого, у пространств имен CIM имеется только один уровень в глубину, а для идентификации объекта задействуются свойства объектов, которые рассматриваются как ключи. Другими словами, каждый экземпляр класса должен быть однозначно идентифицируемым по своим ключевым параметрам. Полный путь к хранящемуся в CIM классу или объекту-экземпляру класса (управляемому устройству) имеет следующую структуру:
[ \ \ComputerName] [ \Namespace] [ :ClassName] [ . KeyProperty1 = Value1
[, KeyProperty2=Value2 .] ]
Здесь \\ComputerName — это сетевое имя компьютера, на котором расположен нужный класс или объект (для задания имени локального компьютера можно использовать символ "."), \Namespace — название пространства имен, в котором находится этот класс или объект, ClassName — имя класса. Параметры KeyProperty1 и Value1, KeyProperty2 и Value2, задают список ключевых пар (свойство-значение) объекта. Например, следующий путь:
\\.\CIMV2:Win32_Process.Name="Notepad.exe"
определяет процесс (экземпляр класса Win32_Process из пространства имен CIMV2) с именем "Notepad.exe", который запущен на локальной машине.
Другой пример — построение пути к объекту WMI, соответствующему десятой записи в журнале событий приложений на компьютере с именем \\CPU3. В WMI для представления записей в журнале событий строятся объекты-экземпляры класса Win32_NTLogEvent. Этот класс хранится в пространстве имен CIMV2, а для идентификации конкретного экземпляра класса Win3 2_NTLogEvent используются два ключевых свойства символьного типа: LogFile (тип журнала событий) и RecordNumber (символьное представление порядкового номера записи в журнале). Поэтому полный путь к объекту в нашем примере будет иметь следующий вид:
WCPU3\CIMV2:Win32_NTLogEvent.LogFile^"Application",
RecordNumber="1"
6.6 Структура классов WMI
Напомним, что всякому ресурсу, управляемому с помощью WMI, соответствует специальный класс WMI; каждый класс имеет четко определенную структуру и содержит свойства, методы и квалификаторы (свои квалификаторы могут быть также у свойств и методов). Классы описываются с помощью специального языка MOF (Managed Object Format), который, в свою очередь, базируется на языке IDL (Interface Definition Language), применяемом для описания интерфейсов СОМ-объектов. После определения структуры класса с помощью MOF разработчик может добавить откомпилированное представление этого класса в репозиторий CIM с помощью стандартной утилиты mofcomp.exe.
6.6.1 Основные типы классов CIM
В CIM существует три основных типа классов, различающихся между собой по способу хранения информации об управляемых ресурсах:
- абстрактный класс (abstract class) — это шаблон, который служит исключительно для образования новых классов-потомков (абстрактных и неабстрактных). Абстрактный класс не может непосредственно использоваться для получения экземпляра управляемого ресурса;
- статический класс (static class) определяет данные, которые физически хранятся в репозитории CIM (к такому типу относятся, например, данные о собственных настройках WMI). Вследствие этого для доступа к экземплярам статических классов не нужно прибегать к помощи каких-либо провайдеров;
- динамический класс (dynamic class) моделирует управляемый ресурс, данные о котором соответствующий провайдер возвращает в динамическом режиме.
Кроме трех основных типов классов в CIM выделяется еще один специальный тип — ассоциативный класс (association class). Это абстрактный (статический или динамический класс), который описывает логическую связь между двумя классами или управляемыми ресурсами (например, ассоциативный класс Win32_SystemProcesses связывает класс Win32_Process, экземпляры которого соответствуют запущенным в системе процессам, с классом Win32_ComputerSystem, в котором представлены общие настройки компьютерной системы).
Кроме этого, все классы CIM можно разделить на четыре группы по принадлежности к различным информационным моделям:
- системные классы. Системными называются те классы, которые служат для задания конфигурации и выполнения внутренних функций WMI (определение пространств имен, обеспечение безопасности при работе с пространствами имен, регистрация провайдеров, подписка на события WMI и формирование сообщений о наступлении таких событий). Системные классы могут быть абстрактными или статическими. Системные классы можно легко отличить от других по названию — имена всех системных классов начинаются с символов " " (двойное подчеркивание), например, SystemClass, NAMESPACE, Provider ИЛИ Win32 Provider;
- классы модели ядра (основной модели) (core model). К этой модели относятся абстрактные классы, которые обеспечивают интерфейс со всеми областями управления. Названия таких классов начинаются с префикса " CIM _". Примерами классов модели ядра могут служить класс CIM_ManagedSystemEiement (свойства этого класса идентифицируют управляемые Компоненты системы) И его наследники CIM_LogicalElement (описание логического управляемого ресурса, например, файла или каталога) и CIM_PhysicalElement (описание физического управляемого ресурса, например, периферийного устройства);