Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Секреты Windows: статьи о реестре, rundll32.exe, программах


Приложение B. Работа с WMI - Использование классов репозитария CIM
Дата: 10 июня 2009, среда

У вас возникли вопросы по Windows? Задайте их нам на Форуме (http://www.onestyle.com.ua/q.php). Вам достаточно просто зарегистрироваться!

В конец записи

Перед тем, как описать способы работы с репозитарием CIM при помощи сервера сценариев Windows, давайте рассмотрим несколько простых способов работы с инструментарием управления Windows, чтобы вы смогли вспомнить, что это такое, и с чем его едят.

Программа WMIC

В стандартную поставку операционной системы Windows Vista входит программа командной строки wmic.exe, расположенная в каталоге %systemroot%\SYSTEM32\wbem. С ее помощью можно получить доступ к репозитарию CIM, даже не зная основ работы с инструментарием управления Windows.

Опции программы

При первом запуске программы выполняется ее установка в системе, после чего будет выведена командная строка wmic. Программа wmic.exe поддерживает множество опций, но мы рассмотрим лишь некоторые из них. Весь же список команд можно просмотреть при помощи команды wmic /?.

  • /NAMESPACE:«пространство имен». Определяет пространство имен, в котором будет выполнен поиск псевдонима.
  • /NODE:«компьютер». Определяет компьютер, к репозитарию которого будет отправлен запрос WQL.
  • /USER:«пользователь». Определяет пользователя, от имени которого будет выполнен запрос. Если вы выполняете запрос на локальном компьютере, тогда указывать пользователя нельзя (можно выполнять запрос только от текущего пользователя).
  • /PASSWORD:«пароль». Определяет пароль для учетной записи пользователя, от имени которого будет выполняться запрос к репозитарию.
  • /ROLE:«пространство имен». Определяет пространство имен, содержащее в себе описание доступных псевдонимов. По умолчанию значение данной опции равно \\root\cli.
  • /LOCALE:«язык». Определяет идентификатор языка, к пространству имен которого будет выполнен запрос.
  • CONTEXT. Данная опция указывается без косой черты (и без псевдонима). Она отображает список значений всех опций, используемых в программе wmic.exe.

Доступные в программе псевдонимы

Кроме опций программа wmic.exe также поддерживает набор псевдонимов (ключевые слова, ассоциированные с конкретным запросом WQL). Список доступных программе псевдонимов можно также просмотреть при помощи команды wmic.exe /?. Наиболее интересные из них описаны ниже.

  • BASEBOARD. Возвращает сведения о материнской плате, установленной на компьютере: модель, производителя, описание. Эти сведения хранятся в классе Win32_BaseBoard.
  • BIOS. Возвращает сведения о версии BIOS материнской платы: основную и дополнительную версию, производителя, название, язык, описание, дату установки, является ли данная версия BIOS основной. Эти сведения хранятся в классе Win32_BIOS.
  • BOOTCONFIG. Возвращает сведения о настройках загрузочного меню компьютера.
  • COMPUTERSYSTEM. Возвращает сведения об операционной системе компьютера. Эти сведения хранятся в классе Win32_ComputerSystem репозитария CIM.
  • GROUP. Возвращает сведения о группах учетных записей, зарегистрированных в системе: SID, присвоенный группе, название группы, ее описание. Эти сведения хранятся в классе Win32_Group.
  • LOGICALDISK. Возвращает сведения о логических дисках компьютера: метке диска, букве, серийном номере, описании, размере, включена ли квота, используется ли программное сжатие. Эти сведения хранятся в классе Win32_LogicalDisk.
  • OS. Возвращает сведения об операционной системе, установленной на компьютере: системный каталог, версию, сервис пак, язык операционной системы, размер виртуальной памяти, размер оперативной памяти, количество процессоров, количество запущенных в данный момент процессов, регистрационные данные пользователя. Эти сведения хранятся в классе Win32_OperatingSystem.
  • PAGEFILESET. Возвращает сведения о конфигурации файла подкачки: путь к нему, максимальный размер, используемый в данный момент размер. Эти сведения хранятся в классе Win32_PageFileSetting.
  • PARTITION. Возвращает сведения о партициях, имеющихся на жестком диске: является ли активной, размер кластера партиции, общее количество блоков, описание партиции. Эти сведения хранятся в классе Win32_DiskPartition.
  • PRINTER. Возвращает описание настроек принтеров, установленных на компьютере: название принтера, производителя, приоритет, номер порта, поддерживаемая бумага. Эти сведения хранятся в классе Win32_Printer.
  • PROCESS. Возвращает описание запущенных на компьютере в данный момент процессов: название процесса, PID, командную строку, вызвавшую процесс, учетную запись, от имени которой работает процесс, размер используемой оперативной памяти, виртуальной памяти. Эти сведения хранятся в классе Win32_Process.
  • SHARE. Возвращает описание расшаренных папок Windows: название, описание, тип. Эти сведения хранятся в классе Win32_Share.
  • STARTUP. Возвращает сведения обо всех программах запускаемых вместе с операционной системой, а также о файлах, которые они, в свою очередь, запускают. Эти сведения хранятся в классе Win32_StartupCommand.

Таким образом, программа wmic.exe имеет следующий синтаксис: wmic.exe «опции» «псевдоним». Если же вы вошли в оболочку программы, тогда достаточно указывать только опции и псевдоним, без названия программы.

Примеры работы с программой

И напоследок давайте рассмотрим несколько примеров работы с данной программой.

  • wmic OS Get DataExecutionPrevention_Available. Данная команда отображает, используется ли механизм DEP на данный момент в операционной системе.
  • wmic /OUTPUT:C:\cpu_settings.txt CPU GET /VALUE. Создает на диске C:\ файл cpu_settings.txt, который будет содержать в себе описание процессора, установленного на вашем компьютере.
  • wmic PROCESS WHERE Name="cmd.exe" CALL Terminate. Данная команда завершает работу процесса с именем cmd.exe.
  • wmic PROCESS CALL Create calc.exe. Данная команда запускает процесс calc.exe.
  • wmic SERVICE WHERE Name="browser" LIST. Данная команда отображает сведения о настройках службы обозревателя компьютеров.

Программа WBEMTEST.exe

Также получить доступ к репозитарию CIM можно с помощью программы wbemtest.exe, имеющей графический интерфейс. Эта программа также расположена в каталоге %systemroot%\SYSTEM32\wbem.

Программа wbemtest.exe позволяет перечислять, открывать и создавать классы или экземпляры этих классов, а также выполнять WQL запросы к репозитарию CIM (представляют собой разновидность SQL-запросов), либо выполнять методы классов.

Для работы с данной программой необходимо знать названия классов, свойств и методов, реализуемых в этих классах. Названия новых классов и свойств, доступных в операционной системе Windows Vista, а также перечень основных свойств некоторых из уже существовавших в предыдущих операционных системах классов, были описаны ранее на страницах данной книги.

Подключаемся к пространству имен

Перед тем, как начать работу с программой wbemtest.exe, необходимо подключиться к нужному вам пространству имен. Для этого в окне программы нужно нажать на кнопку CONNECT…. После этого перед вами отобразится диалоговое окно, в котором нужно указать пространство имен, к которому выполняется подключение, а также логин пользователя и пароль (если логин пользователя и пароль не указаны, тогда будет выполнено подключение от имени текущего пользователя).

После того, как вы введете необходимые данные, перед вами опять отобразится начальное окно программы, но теперь все ее кнопки будут активны.

Использование запросов WQL для получения экземпляров классов

Обратите внимание на кнопку QUERY основного окна программы wbemtest.exe. С помощью данной кнопки можно отобразить диалог, позволяющий вводить WQL-запросы к репозитарию CIM и получать экземпляры классов, хранящиеся в нем.

После того, как вы введете WQL-запрос, перед вами отобразится диалоговое окно, содержащее в себе список всех найденных экземпляров, удовлетворяющих введенному вами запросу. Если вы дважды щелкните мышкой по какому-нибудь из экземпляров, тогда перед вами отобразится список всех доступных в этом экземпляре свойств, а также их значения.

Синтаксис запроса данных WQL Запросы WQL делятся на три типа: запросы данных, запросы схем и запросы событий. На страницах данной книги мы с вами рассмотрим только синтаксис запросов данных. Запросы данных предназначены для получения экземпляров класса, а также их ассоциаций.

  • Самым простым запросом данных является следующий запрос: Select * From «класс». С его помощью можно отобразить список всех экземпляров указанного класса, доступных на компьютере.

    Например, попробуйте ввести запрос для вывода экземпляров класса Win32_OperatingSystem.

  • Если же вам необходимо просмотреть значения не всех свойств класса, а лишь некоторых из них, тогда можно воспользоваться более конкретным запросом: Select «список свойств, значения которых нужно вывести» From «класс».

    Например, если вы введете запрос select SystemDevice, LargeSystemCache, EncryptionLevel from Win32_OperatingSystem, тогда сможете просмотреть значения только этих свойств класса.

  • Также можно воспользоваться запросом вида select «свойства» from «класс» where «свойство»=«значение». Данный запрос применяется в том случае, когда нужно отобразить только те экземпляры класса, свойства которых имеют указанные в запросе значения. При этом можно использовать операторы AND, NOT или OR, чтобы указать значения сразу нескольких свойств. Например select SystemDevice, EncryptionLevel from Win32_OperatingSystem where Primary=“TRUE” AND EncryptionLevel>40.
  • Также ключевое слово where может содержать в себе ключевое слово __CLASS. С его помощью можно ограничить вывод WQL-запроса только одним классом. Например, чтобы ограничить список выводимых экземпляров только классом Win32_Service, нужно воспользоваться запросом вида select * from Win32_BaseService where __CLASS=" Win32_Service ".

Давайте обобщим схему запроса данных WQL: select «свойства»|* from «класс» [where [__CLASS="класс"] [AND|OR] [«свойство»=«значение»]].

Выполнение методов классов

Если же вам нужно выполнить метод, который описан в одном из классов соответствующего пространства имен, тогда вам необходимо воспользоваться кнопкой EXECUTE METHOD…. После нажатия на данную кнопку программа попросит вас ввести название класса, в котором находится нужный вам метод. После того, как вы это сделаете, перед вами отобразится список методов данного класса, среди которых вам нужно выбрать нужный метод.

Если метод, который вы хотите вызвать, не требует ввода никаких входящих параметров, тогда после его выбора просто нажмите на кнопку EXECUTE!. В противном случае перед нажатием на данную кнопку также нужно нажать на кнопку EDIT IN PARAMETERS. После этого, в появившемся диалоге OBJECT EDITOR FOR _PARAMETERS, дважды щелкнуть по каждому параметру, значение которого нужно изменить (вызвав тем самым диалог PROPERTY EDITOR), а потом, изменить значение параметра, нажать на кнопку SAVE PROPERTY.

Если метод, который вы выполнили, возвращает какие-либо значения, их можно просмотреть после выполнения метода, просто нажав на кнопку EDIT OUT PARAMETERS.

Продолжение следует

Рейтинг: 5.00 [ 1 ] 
Оцените: 1 2 3 4 5
moemesto.ru bobrdobr.ru - добавить в социальные закладки
В начало записи
Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=550

В избранное