Komandny_interpretator_cmd_exe_222.pptx [восста..
- Количество слайдов: 20
Архитектура и состав ядра WMI Выполнил: Золотов Вадим
WMI (Windows Management Instrumentarium) - это реализация Microsoft инициативы WBEM (Web. Based Enterprise Management), объявленной консорциумом фирм и направленной на снижение общей стоимости владения сетью. WMI используется для создания скриптов для полного управления Windows, в том числе: o самой операционной системой; o системными устройствами; o реестром; o счетчиками производительности; o файловой системой и т. п. WMI поставляется в составе Windows 2000, Windows XP и Windows Server 2003, на Windows 98, ME и NT его нужно предварительно устанавливать (дистрибутивы - на Web-сайте Microsoft).
Архитектура WMI состоит 4 главных компонентов. Первый компонент – управляющие приложения. Как правило, это приложения или службы Windows, которые получают данные от WMI. Обычно они обеспечивают возможность взаимодействия пользователя с WMI. В нашей ситуации роль управляющих приложений будут играть скрипты. Стандартные управляющие приложения – SMS, MOM, Tivoli, набор инструментов, входящих в состав WMI SDK и т. п. Второй компонент – управляемые объекты, то есть те объекты, доступ к которым можно получить при помощи WMI. Разнообразие управляемых объектов очень велико – от вентилятора, установленного в системного корпусе, до, например, SQL Server со всеми установленными базами данных. Третий компонент – провайдеры WMI, то есть драйверы WMI, которые позволяют получить доступ к какому-либо классу объектов. Например, в стандартной поставке Windows присутствуют драйверы WMI для работы с реестром, журналом событий, аппаратными устройствами и т. п. Четвертый компонент – Программное обеспечение WMI (WMI software, winmgmt. exe) и репозитарий CIM (Common Information Model). Оба этих компонента отвечают за предоставление запрашиваемой средствами WMI информации и реакцию на вызов методов, однако у них существует разделение обязанностей: WMI software отвечает за динамическую информацию WMI (то, что непосредственно берется от операционной системы, оборудования и т. п. ), а репозитарий CIM – за статическую информацию (грубо говоря, настройки WMI на данном компьютере). Физически этот репозитарий расположен в файле CIM. REP в каталоге C: WINNTsystem 32wbemRepository.
Основной набор стандартных средств для работы с WMI поставляется вместе с WMI SDK. В состав SDK (Software Development Kit) входят: • WMI CIM Studio – основная графическая утилита, предназначенная для просмотра пространств имен WMI, классов, их свойств и методов. Можно использовать также для выполнения WQL-запросов; • WMI Event Registration и WMI Event Viewer – эти средства можно использовать для регистрации событий WMI и просмотра происшедших событий (аналогично тому, как это реализовано, например, в Performance Monitor); • WMI Object Browser – выделенная в отдельное средство часть WMI CIM Studio. Используется для просмотра классов WMI, их свойств и методов. Работать необходимо осторожно – если обратиться к большому набору экземпляров какого-либо класса (например, информации о службах), такой запрос будет выполняться очень долго, а прерывать выполнение аварийно трудно. • Утилита mofcomp – она позволяет компилировать файлы MOF (Managed Object Format) из текстового в двоичный формат, а также добавлять их в репозитарий CIM. Используется, например, для того, чтобы обеспечить возможность обращения средствами WMI к вашему приложению. Еще одно средство для работы с WMI – консоль WMI Control. Она доступна, например, из Computer Management и предназначена в основном для администрирования службы WMI (резервное копирование и восстановление репозитария, настройки системы безопасности и т. п. )
Очень удобная возможность – установить ODBC-драйвер для WMI и получить возможность работать с WMI как с большой базой данных со значительным количеством таблиц. Драйвер ODBC лежит на дистрибутиве Windows 2000 Advanced Server в каталоге D: VALUEADDMSFTMGMTWBEMODBC. После установки у вас появится системный источник данных под названием WBEM Source и справка по нему в виде файла Wbemdr 32. chm. Главное – не заполнять имя пользователя и пароль для подключения, потому что при подключении возникнет ошибка. Если вы хотите подключиться к локальному компьютеру, экран свойств подключения из Access должен выглядеть так, как указано на рисунке: Рис 1. Конфигурация подключения к ЛК
Способ подключения выглядит следующим образом: 1) вначале получаем объект Swbem. Locator: Dim o. Locator Set o. Locator = Create. Object("wbem. Scripting. Swbemlocator") 2) далее вызываем метод Connect. Server, который возвращает нам объект SWbem. Services: Dim o. Services Set o. Services = o. Locator. Connect. Server("LONDON", "CIMV 2") Если мы собираемся подключиться к пространству имен по умолчанию (настраивается из консоли Computer Management, по умолчанию CIMV 2) на локальном компьютере, то вызов метода может выглядеть так: Set o. Services = o. Locator. Connect. Server() 3) полученный объект SWbem. Services можно использовать для выполнения запросов WQL, получения ссылок на объекты WMI и т. п.
Свойства классов WMI Свойства классов используются для однозначной идентификации экземпляра класса, представляющего конкретный управляемый ресурс, а также для описания текущего состояния этого ресурса. Рассмотрим два простых примера — классы из пространства имен CIMV 2, являющиеся шаблонами для служб и процессов Windows. Напомним, что для просмотра списка всех служб, установленных на компьютере, можно воспользоваться оснасткой Службы (Services) консоли управления MMC Рис 2. Службы, зарегистрированные на локальном компьютере
Параметры определенной службы можно просматривать и изменять с помощью диалогового окна с несколькими вкладками, которое появляется после выбора этой службы в правом окне консоли Рис 3. Параметры службы Журнал событий (Event Log)
Службам Windows в WMI соответствуют экземпляры класса Win 32_Service; основные свойства этого класса приведены ниже в таблице: Свойство Описание Accept. Pa use Свойство логического типа, значение которого равно True, если службу можно приостановить, и равно False в противном случае Accept. St op Свойство логического типа, значение которого равно True, если службу можно остановить, и равно. False в противном случае Caption Краткое описание службы Descript ion Полное описание службы Desktop. I nteract Свойство логического типа, значение которого равно True, если служба может взаимодействовать с рабочим столом пользователей, и равно False в противном случае Display. N ame Имя службы, которое выводится в списке служб Error. Con trol Строка, задающая действие программы загрузки, которое будет выполнено в случае возникновения сбоя при запуске службы во время загрузки операционной системы: Ignore — пользователю не будет выведено никаких сообщений о сбое, Normal — будет выведено сообщение о сбое при запуске службы, Critical — система попытается автоматически произвести перезагрузку в хорошей конфигурации, Unknown — действие для подобного типа ошибок не определено
Name Имя службы Path. Na me Полный путь к бинарному файлу, соответствующему службе Proces s. Id Уникальный идентификатор службы Servic e. Type Строка, описывающая тип службы: Kernel Driver, File System Driver, Adapter, Recognizer Driver, Own Process, Share Process, Interactive Process Starte d Свойство логического типа, значение которого равно True, если служба была запущена, и равно. False в противном случае Start. M ode Строка, описывающая способ загрузки службы: Boot (применяется только при загрузке служб для драйверов), System (применяется только при загрузке служб для драйверов), Auto (служба загружается автоматически), Manual (служба может быть запущена вручную), Disabled (службу запустить нельзя) Start. N ame Учетная запись, от имени которой запускается служба State Текущее состояние службы: Stopped (остановлена), Start Pending (стартует), Stop Pending(останавливается), Running (запущена), Continue Pending (возвращается в активное состояние), Pause Pending (приостанавливается), Paused (приостановлена), Unknown (состояние службы определить не удалось) Wait. Hi nt Примерное время (в миллисекундах), необходимое для выполнения операций приостановки, остановки или запуска службы Таблица 1. Некоторые свойства класса Win 32_Service
Как мы видим, многие свойства класса Win 32_Service соответствуют элементам ввода в диалоговом окне свойств службы. Например, для экземпляра класса Win 32_Service, который представляет службу Журнал событий (Event Viewer) свойства. Name, Display. Name, Description и Start. Mode равны соответственно Eventlog, Журнал событий, Обеспечивает поддержку сообщений журналов событий, выдаваемых Windows-программами и компонентами системы, и просмотр этих сообщений. Эта служба не может быть остановлена. Рассмотрим теперь класс Win 32_Process, экземпляры которого соответствуют запущенным в операционной системе процессам. Напомним, что информацию о всех процессах можно получить с помощью Диспетчера задач (Task Manager), запускаемого нажатием клавиш Рис 4. Процессы, запущенные на локальном компьютере
Количество выводимых на экран параметров для процессов зависит от настроек Диспетчера задач (Task Manager): выбрав в меню Вид (View) пункт Выбрать столбцы (Choose columns), можно отметить интересующие нас параметры Рис 5. Настройка выводимых параметров для процессов
Параметрам запущенного процесса соответствуют свойства класса Win 32_Process ; некоторые из этих свойств приведены в таблице. Свойство Описание Caption Короткое текстовое описание процесса Command. Line Командная строка, используемая для запуска процесса Creation. Date Время начала выполнения процесса Description Полное описание процесса Executable. Pa th Полный путь к исполняемому файлу процесса Handle. Count Общее количество дескрипторов, открытых в настоящее время процессом (равно общему количеству дескрипторов, открытых каждым потоком в процессе) Maximum. Worki ng. Set. Size Максимально возможный размер рабочего набора процесса (рабочий набор процесса — это набор страниц, доступных процессу в физической оперативной памяти) Minimum. Worki ng. Set. Size Минимально возможный размер рабочего набора процесса Name Имя процесса Other. Operati on. Count Число выполненных операций ввода/вывода, отличных от операции чтения или записи Other. Transfe r. Count Размер данных, переданных в процессе выполнения операций, отличных от операции чтения или записи Page. File. Usag e Размер части файла подкачки, которая используется процессом в настоящее время Parent. Proces s. ID Уникальный идентификатор родительского процесса , создавшего данный процесс Peak. Page. File Usage Максимальный размер части файла подкачки, которая использовалась процессом за все время его работы
Peak. Virtual. S ize Максимальное значение размера виртуального адресного пространства, которое использовалось процессом единовременно Peak. Working. S et. Size Максимальное значение размера рабочего набора процесса за все время работы Priority Приоритет процесса (минимальному приоритету соответствует значение 0, максимальному — 31) Process. ID Уникальный идентификатор процесса. Значение этого свойства актуально с момента создания процесса до окончания его работы Read. Operatio n. Count Число выполненных процессом операций чтения Read. Transfer Count Размер прочитанных данных Thread. Count Число активных потоков в процессе Virtual. Size Текущий размер виртуального адресного пространства в байтах, используемого процессом Working. Set. Si ze Размер памяти в байтах, необходимый для успешного выполнения процесса в операционной системе, использующей страничную организацию памяти Write. Operati on. Count Число выполненных процессом операций записи Write. Transfe r. Count Размер записанных данных Таблица 2. Некоторые свойства класса Win 32_Process
Отметим, что в основном в WMI свойства классов доступны только для чтения, однако значения определенных свойств в экземплярах некоторых классов можно изменять напрямую (для этого применяется специальный метод Put_() ). Например, в экземплярах класса Win 32_Logical. Disk, которые соответствуют логическим дискам, можно изменять свойство. Volume. Name, где хранится метка соответствующего диска. Замечание Количество свойств, значения которых можно изменять, зависит от операционной системы. Например, в Windows 2000 для записи доступны только 39 свойств, а в Windows XP — 145 свойств. Для того чтобы узнать, является ли определенное свойство доступным для записи, нужно проверить значение квалификатора Write этого свойства.
Ядро WMI составляют провайдеры WMI, менеджер объектов CIM и репозиторий CIM. Рассмотрим эти компоненты более подробно. Провайдеры WMI обеспечивают связь между менеджером объектов CIM и управляемыми ресурсами: провайдеры предоставляют для CIMOM данные об управляемом объекте, обрабатывают запросы от управляющих программ и генерируют сообщения о наступлении определенных событий. При этом провайдер WMI общается с управляемым объектом с помощью специфического API этого объекта, а с CIMOM — посредством стандартного интерфейса прикладного программирования WMI (WMI API). Таким образом, провайдеры скрывают детали внутренней реализации управляемых объектов, позволяя CIMOM обращаться к этим объектам единообразно, используя один и тот же WMI API. Фактически провайдеры WMI являются серверами COM или DCOM, которые представлены динамическими библиотеками (DLL), находящимися чаще всего в каталоге %System. Root%System 32Wbem. WMI включает в себя множество встроенных (стандартных) провайдеров для операционных систем Windows 2000, Windows XP и Windows Server 2003, которые предназначены для получения данных из известных системных источников таких, как подсистема Win 32, журналы событий, системный реестр, системные счетчики производительности.
В таблице приведено описание некоторых стандартных провайдеров, которые присутствуют во всех ранее перечисленных операционных системах. Провайдер DLL-файл Описание Провайдер каталога Active Directory(Active Directory provider) Dsprov. dll Позволяет обращаться к объектам Active Directory как к объектам WMI Провайдер журнала событий (Event Log provider) Ntevt. dll Обеспечивает управление журналом событий (выборка по определенному критерию записей для чтения, создание резервных копий и очистка журнала, изменениенастроек и т. д. ). Также этот провайдер позволяет обрабатывать события, генерируемые журналом (например, добавление в журнал записи определенного типа) Провайдер системных счетчиков производительности (Perfomance Counter provider) Wbemperf. d ll Обеспечивает доступ к счетчикам производительности, т. е. к данным, позволяющим численно оценивать производительность системы Провайдер реестра (Registry provider) Stdprov. dll Позволяет читать данные из реестра, создавать и модифицировать там ключи и разделы. Кроме этого, провайдер обеспечивает генерацию события WMI при изменении определенного ключа или ветви реестра Провайдер SNMP-устройств (SNMP provider) Snmpincl. dll Является шлюзом для доступа к системам и устройствам, которые управляются с помощью протокола SNMP (Simple Network Management Protocol) Провайдер драйверов устройств (WDMprovider) Wmiprov. dll Позволяет получить доступ к информации низкого уровня о драйверах устройств Windows Driver Model (WDM); в качестве таких устройств могут выступать, например, порты ввода/вывода или сетевые платы Провайдер подсистемы Win 32 (Win 32 provider) Cimwin 32. d ll Обеспечивает доступ к информации о компьютере, операционной системе, подсистеме безопасности, дисках, периферийных устройствах, файловых системах, файлах, папках, сетевых ресурсах, принтерах, процессах, сервисах и т. п. Провайдер инсталлированных программных продуктов (Windows Installer provider) Msiprov. dll Позволяет получить информацию об инсталлированном программном обеспечении Таблица 3. Некоторые стандартные провайдеры WMI
Технология WMI позволяет также создавать и устанавливать провайдеры сторонних поставщиков, с помощью которых можно будет, скажем, через WMI получать информацию о каких-то специфических устройствах или службах. Отметим, что свои провайдеры WMI имеются в таких продуктах Microsoft, как Application Center, Operations Manager, Systems Management Server, Internet Information Server, Exchange Server, SQL Server.
Scriptomatic WMI Code Creator Инструмент Scriptomatic предствляет из себя HTA-приложение, которое генерирует код, использующий WMI, на VBSScript, JScript, Perl и Python. Сам по себе WMI может оказаться трудным для изучения, поэтому рекомендуется использовать Scriptomatic для освоения классов WMI, а также для быстрого создания шаблонов обращения к ресерсум WMI. Scriptomatic позволяет выбрать интересующий объект WMI, а затем генерирует код на указанном языке программирования. Полученный код можно выполнить непосредственно в оболочке программы, а результаты вывести в консоль, текстовый файл, HTML, Excel или XML. Программа WMI Code Creator представляет из себя генератор кода, который использует WMI для получения информации и для осуществления задач упраления компьютерами. Программа может помочь научиться использовать WMI-скрипты и WMIприложения для управления как локальным, так и удаленным компьютером. Данные программы можно скачать по ссылке: http: //www. sysengineering. ru/administrationusingwmi. aspx
Заключение Итак, Windows Management Instrumentation - это мощный инструмент для администрирования операционных систем семейства Windows с помощью скриптов. С помощью WMI можно управлять устройствами, учетными записями, сервисами, процессами, сетевыми интерфейсами и другими программами, которые расширяют базовую структуру WMI своими классами. Помимо скриптов WMI может применяться и в полноценных программах, то есть программисты могут внедрять запросы к WMI в исполняемый код, завязывая свою программу с работой WMI, благодаря чему программа становится проще и легче, но зависимой от правильности работы Windows Management Instrumentation. Интересно, что новая командная оболочка Windows Power. Shell связана с WMI как технической точки зрения, так и с точки зрения создания запросов - утилита Wmic. exe функционирует в некотором смысле аналогичным образом. В Windows Power. Shell поддержка WMI, представлена в точно таком же согласованном объектном виде, как и другие возможности данной оболочки, поэтому при изучении этой оболочки применение WMI не становится такой сложной задачей, как это было в VBScript - не нужно изучать синтаксис и механизмы языка, отличного от языка скрипта.