Инструменты управления Windows: помощник системного администратора
HashFlare
 
Главная HI-TECH Форум Поиск Книги Авторам Новости партнёров Реклама
Новостей на сайте: 10263
Программы  
  Система
  Безопасность
  Интернет и сети
  Текст
  Графика и дизайн
  Мультимедиа
  Программирование
  Бизнес
  Образование
  Дом, семья, хобби
  Игры и развлечения
 
Рассылка
 
HashFlare
 
Рейтинг программ...    
    Ф2Мастер Банк (138316)
    Коллекция руссификаторов O-S (34783)
    Товар версия 1.10 (25294)
    Коллекция софта № 13 (24861)
    NetGraf 1.0 (23986)
    New_Profile v3.4 (400) (23923)
    Revolter Commander 3.9 beta 8 (16378)
    Коллекция софта № 14 (15730)
    Net Transport 2.22 (15390)
    Intel Sound MAX 4.0 Ac' 97 5.12.01 (15207)
 

[!] Знаете ли Вы, что на сайте проходит опрос по поводу создания галереи с logon-screens, boot-screens, темами и обоями? Пожалуйста, выскажите своё мнение здесь.


Windows NT/2000 Статьи
Инструменты управления Windows: помощник системного администратора

В предыдущих статьях я уже рассказывал о нескольких сценариях WMI (Windows Management Instrumentation), которые дают некоторое представление о мощности библиотеки сценариев WMI. В №4(7) Windows 2000 Magazine/RE за 2000 г. в статье «Файлы Windows Script в действии» приводился пример анализатора журнала событий (т. е. eventlog.wsf и library.vbs). Библиотека WMI предоставляет разнообразные возможности для обработки журнала событий (Event Log), и один из способов обработки журнала показан в eventlog.wsf.

Для дополнительного изучения возможностей сценариев WMI рекомендую обратиться к Microsoft Windows 2000 Professional Resource Kit или Microsoft Windows 2000 Server Resource Kit. Там можно найти более 50 сценариев WMI для управления или создания отчетов о чем угодно, начиная с параметров загрузки компьютера и заканчивая учетными записями пользователей. Файлы VBScript (.vbs) можно просмотреть в каталоге, куда установлен Resource Kit, но для того, чтобы освоить WMI, нужно изучить внутренний механизм работы сценариев.

WMI-сценарии 101
Сценарии WMI – это библиотека интерфейсов автоматизации, которые располагаются над Common Information Model Object Manager (CIMOM). COM-совместимые языки сценариев (например, Windows Script, WS, ActivePerl) используют интерфейсы автоматизации для доступа к инфраструктуре WMI. Библиотека Wbemdisp.dll наследует WMI объекты автоматизации, методы и свойства.

Для доступа к WMI через библиотеку сценариев WMI нужно сделать три шага, которые являются общими для большинства сценариев WMI. Первое – необходимо подключиться к службе Windows Management service, второе – получить экземпляры управляемых объектов WMI, третье – вызвать метод или получить доступ к свойствам управляемого объекта. После знакомства с интерфейсами, которые используются для выполнения этих трех шагов, гораздо увереннее чувствуешь себя на пути к вершине искусства написания сценариев.

Рассмотрим WMI-сценарий, демонстрирующий все три шага в действии. В Листинге 1 приведен WMI-сценарий Winmgmts.vbs.

Сценарий инициализирует две строковые переменные – strComputer и strProcsToKill. Имя целевого компьютера находится в переменной strComputer, а переменной strProcsToKill присвоено имя процесса, которое используется в сценарии для обнаружения и остановки всех текущих процессов с таким именем. В приведенном примере имя текущего процесса notepad.exe.

В Листинге 1 (см. код, выделенный меткой A) для подключения к WMI на целевом компьютере и доступа ко всем экземплярам класса Win32_Process используется WMI-моникер (moniker) winmgmts. (Моникер – специальный COM-объект, который отыскивает в сети или создает и инициализирует экземпляр объекта и возвращает клиенту указатель на него.) Для повышения безопасности WMI моникер использует встроенные средства аутентификации, а также позволяет устанавливать дополнительные маршруты к объектам. (Более подробно с синтаксисом WMI-моникера можно ознакомиться на http://msdn.microsoft.com/library/psdk/wmisdk/ scintro_6tpv.htm.)

Сценарий возвращает каждый экземпляр Win32_ Process как SWbemObject из коллекции SwbemObjectSet. SWbemObjectSet и SWbemObject – это лишь два из нескольких интерфейсов, которые предоставляет библиотека сценариев WMI. Так как SWbemObjectSet является коллекцией, то доступ к ее элементам можно организовать при помощи конструкции For...Each языка сценариев VBScript (см. Листинг 1, метка B).

Меткой B выделена часть сценария, которая выполняет последний шаг для доступа к WMI. Внутри цикла For...Each организован доступ к двум свойствам и одному методу, которые определены в классе Win32_Process. Сначала, при выполнении сценария, для каждого экземпляра Win32_ Process выводятся его идентификатор процесса ProcessID и имя Name. Затем имя текущего экземпляра процесса Win32_Process Name сравнивается со значением переменной strProcsToKill. Если эти значения совпадают, то в сценарии вызывается определенный в классе Win32_ Process метод уничтожения текущего экземпляра процесса.

В Листинге 1 демонстрируются два различных набора методов и свойств. Первый набор состоит из методов и свойств, которые предоставляют интерфейсы библиотеки WMI для того, чтобы подключиться к WMI, извлечь экземпляры классов и подписаться на события. Второй набор состоит из методов и свойств, предоставляемых классами Win32 Common Information Model (CIM) (например, Win32_ Process, Win32_NTEventLog).

Чтобы понять, как работают свойства и методы более чем 300 классов, входящих в CIM Win32, рассмотрим свойства и методы класса Win32_ Process. Напомню, что класс – это шаблон, который определяет свойства и поведение каждого экземпляра класса. CIM содержит все определения классов для управляемого окружения. В winmgmts.vbs каждый экземпляр процесса использует методы и свойства класса Win32_Process, как собственные, так и унаследованные. Это справедливо для всех классов, определенных в CIM. Исследовать классы, определенные в CIM, достаточно просто при помощи программы wbemtest.exe. Информацию о классах можно найти в документации WMI SDK.

Модель объектов WMI
На Рисунке 1 модели объектов WMI показаны основные объекты библиотеки сценариев WMI. Объекты модели предоставляют методы и свойства, использующиеся в сценариях для доступа и извлечения объектов WMI. Рассмотрим по шагам, как winmgmts.vbs использует объекты, которые предоставляет данная модель.


Рисунок 1. Модель объектов сценариев WMI.

Шаг 1: подключение к WMI. Для подключения к WMI в сценарии применяется моникер winmgmts. Он возвращает объект SwbemServices. Вместо создания ссылки на объект Swbem Services в сценарии немедленно вызывается метод InstancesOf объекта SwbemServices.

Шаг 2: выборка экземпляров класса. Метод SwbemServices InstancesOf возвращает экземпляры указанного класса. В Листинге 1 метод SWbemServices InstancesOf возвращает экземпляры Win32_Process в SwbemObjectSet. Отношения между объектами показаны на Рисунке 1. В сценарии инициализируется переменная-ссылка wbemObject Set для указания на коллекцию SWbemObjectSet, которую возвращает метод SWbem Services InstancesOf.

Шаг 3: доступ к методам и свойствам класса. Коллекция SwbemObjectSet содержит экземпляры класса CIM, представленные SwbemObject. Для доступа к каждому экземпляру Win32_Process, который является членом коллекции SwbemObjectSet, можно использовать цикл For...Each. При каждом проходе цикла (см. Листинг 1 , метка B) переменная-ссылка wbemObject связывается с очередным экземпляром Win32_Process в коллекции. SwbemObject используется для доступа к методам и свойствам экземпляра класса CIM.

В Таблице 1 приведено краткое описание каждого объекта модели WMI Scripting Object Model и указаны ссылки на Web-сайт Microsoft, где можно найти подробную информацию о методах и свойствах соответствующего объекта.

В Листинге 2 приведен сценарий locator.vbs, который выполняет ту же задачу, что и winmgmts.vbs. Основное различие между двумя примерами в том, что locator.vbs для доступа к объекту SwbemServices использует объект SwbemLocator, а не WMI-моникер. Это объясняет, почему locator.vbs применяет VBScript-функцию CreateObject, в то время как winmgmts.vbs использует функцию GetObject. Winmgmts.vbs использует GetObject для работы с моникерами. Программный идентификатор Wbem Scripting.SWbemLocator в locator.vbs указывает функции CreateObject, что необходимо создать объект SWbem sLocator.

Хотя сценарии, приведенные в Листингах 1 и 2, функционально одинаковы, они демонстрируют действие различных механизмов, заложенных в библиотеке WMI. Новичкам может показаться, что синтаксис моникера излишне запутан, поэтому вначале они могут поработать с SWbem Locator. С точки зрения функциональности метод Connect Server, который предоставляет SWbemLocator, позволяет распределять полномочия, необходимые для проведения аутентификации WMI соединения. Синтаксис моникера предоставляет возможность выполнения нескольких действий в одной строке кода.

Объекты, которые предоставляет библиотека сценариев WMI, позволяют основательно подойти к разработке данных WMI. В следующей статье я планирую рассмотреть объекты библиотеки WMI с еще более богатой функциональностью. А пока я хотел бы предложить читателям в качестве тренировки модифицировать любой из двух листингов так, чтобы извлечь другие классы Win32. Подсказка: помимо изменения имени класса, которое передается методу InstancesOf, необходимо модифицировать тело цикла For... Each так, чтобы применяемые в цикле методы и свойства совпадали с методами и свойствами выбранного класса.

Источник: http://networkdoc.ru


Ссылки по теме:
Безопасность компьютера под управлением windows 2000 в локальной сети и Интернет
Как заставить Windows 2000 работать на старом компьютере
Терминальные службы Windows 2000
Windows 2000 - курс молодого администратора. Часть 2
Служба Терминалов в Windows 2000 (Terminal Services)



 
Статьи    
  Windows 10
  Windows 8
  Windows 7
  Windows Vista
  Windows XP/2003
  Windows NT/2000
  Безопасность
  Windows 9x/ME
  Hardware
  Software
  Интернет
  BIOS
  Сеть
  Разное
 
Рекомендуем
 
 
Рейтинг статей...    
    Предел входящих подключений в Windows (128683)
    Как установить Windows XP на ноутбук или как добавить SATA-драйвер в дистрибутив Windows XP (69550)
    Из дома в офис - быстро, надежно и безопасно (55393)
    Всё, что надо начинающему хакеру (50404)
    Восстановление реестра Windows XP (23281)
    Второй сервис-пак для Windows XP: личный опыт (23152)
    Вызываем синий экран смерти Windows (18429)
    Настройка удаленного подключения между Windows 7 и Linux с помощью TightVNC (17427)
    Информация о proxy серверах (17281)
    Как устроена защита Windows Vista (17126)
 
 
Programmed by Ventura
 

 

Яндекс цитирования