*    Демонстрация прототипов устройств с USB 3.0 - 2008-11-21 11:49:49    *    Microsoft официально анонсировала Windows Azure - 2008-10-28 08:18:19    *    Тестеры получили первый билд Vista SP2 - 2008-10-28 08:14:07    *    NVIDIA Hybrid SLI: теперь и для платформы Intel - 2008-10-16 10:54:38    *    Быстрая DDR3-память опасна для процессоров Intel - 2008-10-05 08:01:03    *    Руководство по включению PhysX на ноутбуках с GPU NVIDIA - 2008-09-02 12:08:00    *    Ежедневно десять миллионов зомби распространяют спам и вредоносные коды - 2008-08-25 09:38:09    *    Поддельные инсталляторы Flash Player получили широкое распространение - 2008-08-07 11:40:35    **

             Обратная связь | Внести в избранное | Сделать домашней

Поиск по сайту



Вход
Имя

Пароль

Ещё не зарегистрировались?
Вы можете это сделать ЗДЕСЬ.

Содержание
 Главная

 Навигация
 Статьи
 Форум
 Файлы
 Ссылки
 Ваш Профайл
 Связь с автором
 Мировые новости
 Экзамены MCSE
 Обзор фильмов
 Самое популярное
 Фотогалерея
 Куплю-Продам
 Статьи
 Форум

 Профессиональное обслуживание компьютеров и сетей в России и в Израиле

 Учебники on-line
 Flash MX
 ISA Server
 Office XP
 PhotoShop 7
 Linux Red Hat
 Visual Basic. NET
 Visual Studio.NET
 Citrix Metaframe
 Citrix MetaFrame XP
 ВСЕ КНИГИ

Наполнение сайта
 Добавить файл
 Добавить статью
 Добавить ссылку

 Статьи по разделам
 MCSE 2000
 MCSE 2003
 Операционные Системы
 Новости Microsoft
 Безопасность
 Software
 Hardware
 Новости Интернета
 MCSE 2000 за 15 минут
 MCSE 2003 за 15 минут
 CISCO Systems


Реклама


Будьте с нами!
Кнопка на Ваш сайт

Скорая помощь для Ваших компьютеров и сетей!

Сделать стартовой
Связаться с автором


Реклама


  


MCSE 2003 за 15 минут...: Инструментальные средства управления средой Windows – использование WMI





Опубликовал michaeldmitriev Friday, July 16


Раздел: MCSE 2003 за 15 минут в неделю
Многие сетевые администраторы уже слышали об инструментальных средствах управления средой Windows (WMI, Windows Management Instrumentation). Говоря упрощенно, WMI представляет собой серьезное изменение способа, которым приложения взаимодействуют с операционными системами семейства Windows.


Инструментальные средства управления средой Windows – использование WMI

Автор: Кори Хайнс (Corey Hynes)

Что такое WMI?

Многие сетевые администраторы уже слышали об инструментальных средствах управления средой Windows (WMI, Windows Management Instrumentation). Говоря упрощенно, WMI представляет собой серьезное изменение способа, которым приложения взаимодействуют с операционными системами семейства Windows. В прошлом разработчикам требовалось писать сложный код для того, чтобы выполнить даже простейшие задачи или собрать основную информацию о компьютерах в сети. Это было достаточно трудной задачей даже для наиболее опытных программистов. WMI меняют подобный подход, упрощая его и делая более последовательным.

WMI являются уровнем программного обеспечения, работающего в качестве службы. Их назначение во многом похоже на то, что делает база данных. Серия провайдеров (provider) абстрагирует и представляет операционную систему. Эти провайдеры позволяют разработчикам ссылаться на множество классов. Эти классы представляют такие вещи, как сетевая конфигурация, выполняемые процессы, установленные службы, аппаратное обеспечение и программное обеспечение. Во многих случаях провайдеры предоставляют структуры данных, похожие на таблицы, делая код, взаимодействующий с ними, более простым и легким для написания.

WMI также важны для сетевых администраторов. Эта модель привела к созданию нового поколения утилит командной строки, управляющих приложений и сценариев. Такие команды, как EVENTQUERY, SC и TYPEPERF взаимодействуют с компьютером через WMI. Приложения, подобные Microsoft Operations Manager (MOM) и Systems Management Server (SMS) используют WMI для централизованного выполнения запросов и управления системами. WMI может использоваться даже во взаимодействии с групповой политикой на Windows Server 2003 и Windows XP Professional в качестве дополнительного фильтра при применении объекта групповая политика (GRO, Group Policy Object).

Что такое WMIC

WMI командной строки (WMIC, WMI command-line) является упрощенным интерфейсом командной строки для работы с WMI. Используя WMI, вы можете управлять несколькими компьютерами, работающими под различными версиями Microsoft Windows. WMIC представляет собой неблокирующий интерфейс, что позволяет использовать его в сценариях и пакетных файлах. Вот некоторые из возможностей WMIС:

  • Команды, основанные на псевдонимах, ускоряют и упрощают выполнение общих задач.
  • Возможна работа с локальным компьютером, удаленным компьютером или набором удаленных компьютеров.
  • Выходной формат и псевдонимы могут настраиваться.
  • Может использоваться для управления любыми компьютерами, на которых запущены WMI.

Использование WMIC

Перед тем, как начать работать с WMIС, вам необходимо настроить вашу командную строку, чтобы обеспечить лучшее представление получаемых результатов. Некоторые команды WMIС приводят к выводу очень больших результирующих наборов, чтение которых бывает затруднено. Существует две настройки, рекомендуемые мною, находящиеся в окне свойств командной строки. Просто настройте ваше окно командной строки, как показано ниже.


Рисунок 1: Настройка размера шрифта



Рисунок 2: Настройка размера буфера экрана

Используя WMIС, вы должны представлять себе, как работает этот инструмент. WMIМС включает серию «предварительно заготовленных» WMI-запросов, известных как псевдонимы. Вы можете просмотреть содержание любого псевдонима, просто набрав в командной строке «WMIС», а следом имя этого псевдонима. Например, «WMIC QFE» выведет список всех «заплаток» и пакетов обновлений, установленных на компьютере. Полный список всех псевдонимов может быть выведен с помощью набора следующей команды «WMIC /?». Таблица, приведенная ниже, перечисляет некоторые из наиболее часто используемых псевдонимов.

Псевдоним Используется для получения…
Computersystem … информации, находящейся в свойствах системы, таких как имя компьютера, модель и текущий пользователь.
Csproduct … информации о компьютере. Содержит универсальный уникальный идентификатор (UUID) компьютера, который может быть использован для таких решений по развертыванию, как служба удаленной установки (RIS).
Pagefile и Pagefileset <… информации о текущем размере и использовании файла подкачки.
Memphysical … информации о емкости памяти компьютера и текущей физической конфигурации оперативной памяти.
Product … информации об установленных программных продуктах.
Sysaccount … встроенной системной информации об учетной записи пользователя, идентификаторах безопасности (SID) и информации о статусе.
Process … детализированной информации о выполняемых процессах.
Service … детализированной информации обо всех установленных службах.

Псевдонимы по умолчанию включаю в себя два формата вывода. Формат по умолчанию заключается в выводе полного перечня всех значений. Также вы можете получить сокращенное представление, содержащее только наиболее значимую информацию, введя в командную строку следующую команду:
WMIC alias LIST BRIEF

Стоит заметить, что хотя укороченный список является настраиваемым, его очень трудно изменить. Наиболее практичный подход заключается в создании индивидуального списка только той информации, которая вам нужна, с помощью конструкции GET. Простым примером может служить создание списка конфигурации при запуске для каждой службы на вашем компьютере. Полный список псевдонимов SERVICE включает около 15 столбцов. Из этих 15 для создания отчета о типе запуска всех служб вам необходимы только 4. Вам требуются столбцы CAPTION, NAME и STARTMODE. Вы можете также включить столбец STATE, чтобы сравнить службы, которые уже запущены с теми, которые запущены не были. Этот запрос будет выглядеть следующим образом:
Wmic service get caption, name, startmode, state

Обратите внимание на использование ключевого слова GET для создания списка столбцов. Это будет работать для любого столбца, включенного в псевдоним.

Другой опцией для ограничения выходных данных большой команды WMIC является фильтрация строк возвращаемой информации. В примере, приведенном выше, может потребоваться получение отчета только о тех службах, которые уже запущены. Это может быть достигнуто с помощью включения в этот запрос конструкции WHERE. Конструкция WHERE содержит простое фильтрующее выражение. Вы определяете столбец, который хотите отфильтровать и значение для сравнения. Текстовый значение заключается в кавычки (например “server”), а числовое значение - нет (например < 80). Вот запрос на создание отчета только о запущенных службах:
Wmic service where (state=”running”) get caption, name, startmode, state

Когда конструкции WHERE и GET используются в одном запросе, WHERE всегда идет перед GET.

Другой опцией является перенаправление выходных данных в файл для просмотра. Это достигается с помощью функции командной строки, уже известной со времен операционной системы DOS. Форматом выходных данных по умолчанию является TSV (tab separated values – значения, разделенные табуляцией) формат. Этот формат понимается большинством продуктов баз данных и табличных вычислений. Можно перенаправить отчет о запущенных службах в файл, используя следующую команду:
Wmic service where (state=”running”) get caption, name, startmode, state > output.tsv

Когда этот файл будет открыт в Microsoft Excel, он будет выглядеть следующим образом:


Рисунок 3: TSV-отчет в Microsoft Excel 

По ту сторону составления отчетов

WMI имеют возможность идти дальше простого составления отчетов. Используя WMI, можно также управлять компьютерами, работающими под управлением ОС Windows. Существует несколько терминов, которые должны быть усвоены перед тем, как мы продолжим.

Класс (Class) – Класс – это определение чего-либо. Например, класс процесс (process) определяет все характеристики любого процесса, но не ссылается на какой-либо конкретный процесс.

Объект (Object) – Иногда называется экземпляром (instance); объект является определенным проявлением (случаем) класса. В нашем примере он создает новый объект процесс, представляющий собой копию программы notepad, запущенной на вашем компьютере.

Действие (Action) – Разработчиками называется методом (method). Действие – это некоторая операция, которую мы можете попросить выполнить класс или объект. Например, одним из действий, связанных с классом процесс является создание нового процесса. Другим действием – завершение процесса.

Давайте представим, что вы хотите создать экземпляр процесса на вашем компьютере. Первым шагом будет определение информации, необходимой для создания нового экземпляра процесса. Это выполняется с помощью встроенной помощи утилиты WMIC, используя следующую команду:
Wmic process /?

Очевидно, вы заметите, что полученный результат содержит ключевое слово CALL. Это ключевое слово используется для вызова действия. Каждый класс (мы будем работать с классом процесс) будет иметь различный набор действий, которые могут быть вызваны. Некоторые действия будут довольно простыми, такими как create (создать) и terminate (завершить). Вы можете просмотреть список возможных действий, напечатав следующую команду:
Wmic process call /?

В этом списке вы заметите действие create. Вы можете теперь вывести список того, что требуется для создания нового процесса, напечатав:
Wmic process call create /?

Полученный результат будет содержать четыре куска информации. Каждый параметр будет иметь направление ((IN или OUT), имя и тип данных. Как и прежде, для типа данных string заключайте параметр в кавычки, а для numeric – не делайте этого. К счастью не все из этих параметров являются необходимыми. 

Наша команда для создания нового экземпляра notepad будет теперь выглядеть следующим образом:
Wmic process call create “c:windows otepad.exe”

Теперь Notepad должен быть запущен на вашем компьютере. Это простой пример, но он иллюстрирует силу и простоту WMI. Другим примером может служить завершение процесса notepad. Это достигается с помощью действия terminate класса процесс. Помощь по этому действию можно получить, набрав следующую команду:
Wmic process call terminate /?

Все экземпляры notepad могут быть завершены после ввода следующей команды:
Wmic process where (caption=”notepad.exe”) call terminate

Будьте осторожны, включая какой-либо фильтр при использовании действия terminate. Если вы завершили все процессы, то ваш компьютер будет автоматически перезагружен.

Использование WMIC для управления несколькими компьютерами

Если вы управляете только одним сервером, тогда WMIC предлагает множество способов выполнения простых задач, которые могут быть выполнены быстрее с использованием обычного графического пользовательского интерфейса. Но положение дел меняется, если вам нужно управлять несколькими серверами. Тогда мощность инструмента WMIC становится очевидной.

Прежде всего, давайте посмотрим, как команды WMIC могут быть направлены сразу на несколько серверов. Это достигается с помощью ключа /NODE команды WMIC. Ключ /NODE использует либо список имен компьютеров, либо файл, содержащий список всех компьютеров. Список имен компьютеров в команде WMIC определяется, например, с помощью следующей команды:
Wmic /node:server1,server2 process list brief

Если вы хотите выполнить запрос к нескольким компьютерам, имена которых хранятся в файле, то вам необходимо создать подобный файл. Этот файл может содержать список имен серверов, либо разделенных запятыми, либо напечатанных в отдельных строках. Имя файла должно начинаться с символа @. Следующий пример будет создавать список всех компьютеров леса и сохранит результаты в файле с именем @computers.txt.
dsquery * forestroot -scope subtree -filter objectcategory=computer -attr name –l > @computers.txt

Команда DSQuery включена в Windows Server 2003 и может запрашивать любые объекты в Active Directory. Если вы хотите исследовать только один домен, то просто запустите этот запрос на любом контроллере домена в этом домене. Замените опцию forestroot на domainroot.

Теперь вы можете использовать этот файл для того, чтобы «убить» все экземпляры notepad в вашем лесу:
Wmic /node:@computers.txt process where (caption=”notepad.exe”) call terminate

Еще одно важное замечание заключается в том, что если все компьютеры, перечисленные в этом файле, являются недоступными, то выполнение всей команды провалится. Вы можете обойти это ограничение, запрашивая только те компьютеры, которые доступны. Это достигается с помощью ключа FAILFAST. Когда failfast имеет значение ON, каждый сервер «пингуется» перед тем, как будет запущена команда WMIC. Если сервер не ответит на ping, тогда он пропускается. Обратите внимание, что WMI транспортируются с помощью модели DCOM, использующей протокол RPC. Если брандмауэр препятствует передаче ICMP (ping), тогда сервер не получит эту команду. Также, если сервер разрешает ICMP, но запрещает RPC, тогда выполнение команды также проваливается. Ключ FAILFAST может использоваться следующим способом:
Wmic /fastfail:on /node:@computers.txt process where (caption=”notepad.exe”) call terminate

Дополнительные темы

Пока мы не слишком углубились в функциональные возможности, включенные в WMIC. Имеющиеся в распоряжении псевдонимы представляют основной круг задач и информации, в которой могут быть заинтересованы системные администраторы. Однако это еще не все, что можно сделать, используя WMIC. WMIC могут быть также использованы для прямых запросов к WMI-схеме. Это дает вам доступ ко всем имеющимся классам, а не только к тем, которые предоставляются с помощью псевдонимов.

Полная ссылка на все классы WMI может быть найдена в Microsoft Developer Network по ссылке: .

Классы организованы в то, что принято называть пространствами имен (namespace). Различные пространства имен представляют различные коллекции классов, имеющих общие функции. Пространства имен, содержащие классы, полезные для администраторов – это ootcimv2. В этом пространстве имен существуют несколько групп классов. Для лучшего понимания того, как соотносятся псевдонимы и классы, введите следующую команду:
Wmic alias list brief

Крайний справа столбец содержит оператор, известный как запрос. Этот запрос написан на языке WMI Query Language (WQL). Этот язык очень похож на SQL. Вы можете напрямую запрашивать какой-либо из классов, используя следующую команду:
Wmic /namespace:rootcimv2 class Win32_Service

Результатом выполнения этой команды будет XML-документ, содержащий описание всех свойств класса Win32_Service, но не действительную информацию о сервере. Для того чтобы просмотреть действительную информацию о сервере, вы должны запросить экземпляр Win32_Service, а не сам класс Win32_Service. Это может быть выполнено с помощью замены ключевого слова CLASS на ключевое слово PATH . Вот пример подобной команды:
Wmic /namespace:rootcimv2 path Win32_Service

WMIC поддерживает и фильтрацию и действия при прямых запросах WMI-схемы.

Исчерпывающую помощь по WMIC можно найти также в справочных системах Windows XP Professional и Windows Server 2003, а также в центрах поддержки.

Кори Хайнс (Corey Hynes)

 



Комментарии к статье
Ваше имя: Неизвестный [ Новый пользователь ]

Тема:

Комментарий:




Идея и воплощение: Михаил Дмитриев
Страница оптимирована под разрешение от 1024х768 для IE 5.0+
Copyright © 2001-2008 by Michael Dmitriev - Создание и поддержка сайтов

Сайт работает на домашнем компьютере. OS Windows Server 2003. Находится в Израиле.


Web site engine's code is Copyright © 2003 by . Время создания страницы - 4.632 сек. и 45 запрос (а,ов) к базе данных