Вкл\Выкл свет
Доступ к WMI с помощью сервера сценариев
Управляющий элемент WMI

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

Итак, сервер сценариев Windows является объектно‑ориентированным языком. Иными словами, при написании сценариев в них можно подключать различные объекты (хранящие описания методов, реализующих различные возможности работы с операционной системой), а также моникеры (СОМ‑механизм для обеспечения привязки к СОМ‑объекту, например к базе данных WMI). Сценарии сервера сценариев можно писать на языке VBScript либо JScript. В данном случае для рассмотрения примеров будет использоваться язык VBScript.

Есть два способа запуска сценариев сервера сценариев Windows – либо с помощью двойного щелчка кнопкой мыши на файле (или с помощью команды wscript. exe), либо с помощью команды cscript. exe. Программа cscript. exe предназначена для работы со сценарием из командной строки, и ее плюсом является возможность указания параметров работы сценария (если он обрабатывает параметры). Приведенные ниже примеры, как правило, используют параметры командной строки, поэтому для их применения лучше обратиться к программе cscript. exe.

Включение и выключение SystemRestore для отдельных дисков

Рассмотрим первый пример тех возможностей, которые предоставляет администратору WMI. В этом примере воспользуемся классом SystemRestore, описанным в пространстве имен root /default для реализации возможности отключения или включения восстановления системы на отдельных дисках с помощью сервера сценариев Windows. Пример, кроме доступа к WMI, будет содержать описание реализации основных возможностей объектов сервера сценариев, а также подробное объяснение, для чего записывается та или иная строка сценария.

Листинг 11.1. Отключение или включение восстановления системы на отдельном диске

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

Заменить строкой

При этом вместо имени компьютера можно использовать точку. В этом случае вы опять будете подключаться к локальному компьютеру.

Напоследок несколько возможных команд запуска приведенного сценария:

■ cscript d: \sr. vbs – полностью отключить возможность восстановления системы (если диск C: является системным);

■ cscript d:\sr. vbs c:\ Y – полностью включить возможность восстановления системы (если диск C: является системным);

■ cscript d:\sr. vbs D:\ N – отключить SystemRestore только на диске D:.

Создание контрольной точки восстановления

Продолжим рассмотрение темы восстановления системы и опишем код для автоматического создания точки восстановления. На этот раз будет приведена только часть кода, отвечающая за работу WMI, а не весь код сценария, то есть обращение к моникеру winmgmts и работа с классом. Вы самостоятельно можете модифицировать приведенный выше код для того, чтобы он мог, например, автоматически включать работу SystemRestore, если возможность восстановления системы отключена, а потом уже выполнять создание контрольной точки восстановления.

Листинг 11.2 Создание контрольной точки восстановления
Энумерация содержимого ветви реестра

Стандартные методы объекта, предназначенные для доступа к системному реестру (WScript. CreateObject("Wscript. Shell") ), один из которых, позволяющий считывать значения параметров из реестра, был рассмотрен в примере сценария для включения/отключения восстановления системы на логических дисках компьютера, позволяют выполнить базовые операции с реестром.

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

ПРИМЕЧАНИЕ

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

За выполнение перечисления параметров, расположенных в ветви реестра, отвечает метод EnumValues, принадлежащий классу StdRegProv. Данный класс определяет методы для доступа к реестру Windows XP (более функциональный аналог стандартного объекта Windows, рассмотренного выше) и принадлежит к пространству имен Root\Default. Мы не будем создавать целый работоспособный сценарий для описания работы данного метода – лучше создадим отдельную процедуру, которая будет выполнять перечисление параметров указанной ветви реестра, а также проверим ее работу с помощью записи в файл журнала выводимых значений.

Листинг 11.3. Энумерация параметров ветви реестра

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

■ CreateKey – создает раздел в ветви реестра. Для его вызова необходимы следующие два параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), а также остальной путь к ветви реестра, которую нужно создать (в том числе и сам создаваемый раздел реестра).

ПРИМЕЧАНИЕ

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

■ DeleteKey – удаляет раздел в ветви реестра. Для его вызова также необходимы следующие два параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), а также остальной путь к ветви реестра, которую нужно удалить (в том числе и сам удаляемый раздел реестра).

■ EnumKey – в сценарии был рассмотрен метод для энумерации параметров указанной ветви реестра, этот же метод возвращает разделы, вложенные в указанную ветвь реестра. Для его работы необходимы следующие параметры: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, разделы которой нужно перечислить, а также переменная, используемая для хранения массива найденных в указанной ветви разделов (например, аналог переменной names нашего сценария).

■ DeleteValue – удаляет указанный параметр из ветви реестра. Для его работы необходимо указать следующие три параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, содержащей удаляемый параметр, а также название удаляемого параметра (если название не указано, то будет удалено значение параметра (По умолчанию) ).

■ SetDWORDValue – создает или изменяет указанный параметр DWORD‑типа в ветви реестра. Для его работы необходимо указать следующие четыре параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, содержащей изменяемый параметр, название изменяемого параметра (или создаваемого), а также новое значение, которое необходимо присвоить указанному параметру. Если название изменяемого параметра указано не будет, то нужно изменить значение параметра (По умолчанию) данной ветви реестра.

■ CheckAccess – определяет, разрешен ли пользователю доступ к указанной ветви реестра. Если метод выполнился успешно, то он возвратит значение 0, иначе – любое другое значение. Для его работы необходимы следующие четыре параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, права на которую необходимо проверить, флаг для определения проверяемых прав, а также переменная, в которую будет помещен результат выполнения метода. Если значение этой переменной будет равно true, то пользователь обладает нужными правами на данную ветвь реестра, иначе возвращается значение false.

Флаг для определения проверяемых прав является битовой маской, значения которой определены в файле Winnt. h. Этот флаг может содержать следующие значения:

■ 0X0001 – KEY_QUERY_VALUE (разрешено запрашивать значения из дочерних разделов вашей ветви реестра);

■ 0X0002 – KEY_SET_VALUE (разрешено создание, удаление и установка значений параметров вашей ветви реестра);

■ 0X0004 – KEY_CREATE_SUB_KEY (разрешено создание и удаление дочерних разделов вашей ветви реестра);

■ 0X0008 – KEY_ENUMERATE_SUB_KEYS (разрешена энумерация дочерних разделов вашей ветви реестра);

■ 0X0010 – KEY_NOTIFY (разрешен вывод подтверждения на запрос изменения параметров или дочерних разделов вашей ветви реестра);

■ 0X0020 – KEY_CREATE_LINK (используется системой);

■ 0x00010000 – DELETE (разрешено удаление);

■ 0x00020000 – READ_CONTROL (разрешено управление чтением);

■ 0X00040000– WRITE_DAC (разрешен избирательный контроль над доступом к записи);

■ 0X00080000 – WRITE_OWNER (разрешено изменение владельца ветви).

В классе StdRegProv также описаны методы SetBinaryValue, SetExpandedStringValue, SetMultiStringValue, SetStringValue, но мы их описывать не будем, так как их вызов аналогичен вызову описанного выше метода SetDWORDValue.

ПРИМЕЧАНИЕ

Подробнее о классе StdRegProv можно узнать из стандартного файла Windows XP regevent. mfl, расположенного в каталоге %systemroot%\SYSTEM32\wbem.

Создание, завершение и просмотр учетной записи процесса

К другим основным возможностям инструментария управления WMI относятся возможности работы с процессами, запущенными на удаленном или локальном компьютере. При этом инструментарий предоставляет возможности не только по запуску или завершению процесса, но и по определению учетной записи, от имени которой запущен определенный процесс. Для работы с процессами используется класс Win32_Process, принадлежащий к пространству имен root\cimv2. Рассмотрим маленький пример по созданию нового процесса с использованием метода Create.

Листинг 11.4. Создание нового процесса

Действительно, маленький пример. Теперь подробнее рассмотрим методы класса Win32_Process, направленные на работу с процессами.

■ Create – как уже известно, данный метод используется для создания процесса. При этом после своего выполнения метод возвращает следующие значения (это не все):

• 0 – успешное завершение;

• 2 – пользователь не имеет доступа к запрашиваемым данным;

• 3 – у пользователя нет достаточных привилегий;

• 8 – неизвестная ошибка;

• 9 – пользователь не имеет необходимых привилегий;

• 21 – указан недопустимый параметр.

Несмотря на то, что при вызове данного метода был использован только один параметр, на самом деле для работы с ним нужны четыре параметра. Во‑первых, это путь к файлу, который будет вызван (в данном случае применялся только этот параметр). Во‑вторых, это путь к каталогу, который должен использовать‑ся вызываемым процессом (если он не задан, то будет использоваться каталог, в котором находится запускаемый файл). В‑третьих, это строка начальной конфигурации процесса (если она не задана, то будет применяться пустая строка (\"\")). В‑четвертых, это переменная, которой будет присвоен идентификатор созданного процесса.

■ Terminate – прекращает процесс и все его дочерние процессы.

■ GetOwner – возвращает учетную запись пользователя, от имени которого был запущен процесс, а также домен, к которому он принадлежит.

■ GetOwnerSid – возвращает SID пользователя, от имени которого был запущен процесс.

■ SetPriority – устанавливает приоритет выполнения определенного процесса.

■ AttachDebugger – вызывает отладчик данного процесса.

ПРИМЕЧАНИЕ

За более детальной информацией обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM32\wbem.

Выключение, перезагрузка компьютера, завершение сеанса пользователя

С помощью инструментария WMI можно выключить удаленный или локальный компьютер, перезагрузить его или завершить сеанс текущего пользователя. Рассмотрим пример завершения сеанса текущего пользователя на локальном компьютере (если у вас есть удаленный компьютер, то при подключении к пространству имен вместо точки необходимо указать его имя). Особенность данного примера состоит в другом способе подключения к классу – с помощью базы данных CIMOM.

Листинг 11.5. Завершение сеанса пользователя компьютера

Как правило, администраторы локального компьютера обладают правами на завершение сеанса. Другие же действия по умолчанию возможны от имени системы.

Кроме метода Win32 Shutdown, класс Win32_OperatingSystem описывает еще три метода. Если вызывающий процесс обладает правом SE_SHUTDOWN_NAME, то выполняются следующие действия.

■ Reboot – компьютер будет перезагружен. Метод не имеет параметров, но при успешном выполнении возвращает 0.

■ Shutdown – компьютер будет выключен. Метод не имеет параметров, но при успешном выполнении возвращает 0.

■ SetDateTime – будет установлено системное время компьютера. Данный метод для своей работы требует один параметр, определяющий новое время, которое нужно установить (имеет тип DateTime, имеющий довольно странный формат, например установка параметра равным "00000000000000.000000:000" обнуляет время).

Получение сведений об установленных на компьютере программах

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

Листинг 11.6. Создание списка установленных на компьютере программ

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

■ objSoftware. IdentifyiungNumber – серийный номер программы;

■ objSoftware. InstallLocation – каталог, в который установлена программа;

■ objSoftware. Name – название программы, как правило, не отличается от objSoftware. Caption;

■ objSoftware. Vendor – производитель программы;

■ objSoftware. Version – версия программы.

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

С помощью базы данных CIMOM можно также определить конфигурацию операционной системы. Метод определения конфигурации подобен методу определения установленных на компьютере компонентов, поэтому будет рассмотрена лишь часть кода, с помощью которой выполняется обращение к базе данных.

Листинг 11.7. Получение сведений об операционной системе

Именно так можно подключиться к базе данных сведений об операционной системе и записать их в файл. Но к каким столбцам таблицы можно получить доступ (кроме используемого в листинге столбца Name, который содержит имя операционной системы и путь к папке Windows)? Ниже перечислены некоторые из таких столбцов (в контексте инструментария управления WMI они называются свойствами).

■ BootDevice – указывает имя тома, из которого загружается операционная система.

■ CodeSet – указывает кодовую страницу, используемую операционной системой (как написано в MFL‑файле, кодовая страница содержит таблицу символов, применяемую операционной системой для преобразования строк на различных языках).

■ DataExecutionPrevention_Available – если данное свойство возвращает значение true, то оборудование, установленное на компьютере, поддерживает технологию предотвращения выполнения данных Windows (DEP). Более подробные сведения об этой технологии можно найти в файле cimwin32.mfl.

■ LargeSystemCache – указывает, для каких операций выполняется оптимизация памяти. Если свойство возвращает значение 0, то оптимизация памяти выполняется для повышения производительности работающих программ. Если же возвращается значение 1, то оптимизация памяти выполняется для повышения производительности работы операционной системы.

ПРИМЕЧАНИЕ

Свойство использует для определения метода оптимизации уже рассмотренный ранее параметр реестра LargeSystemCache, расположенный в ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management. Если его значение равно 1, то возвращается значение 1.

■ Version – содержит номер версии операционной системы Windows.

■ ServicePackMajorVersion – основная версия установленного пакета обновлений.

■ ServicePackMinorVersion – дополнительная версия установленного пакета обновлений.

■ Manufacturer – имя производителя операционной системы.

■ WindowsDirectory – каталог Windows.

■ Locale – код локализации (419 для русской версии, 409 для английской).

■ FreePhysicalMemory – свободный объем жесткого диска.

■ FreeVirtualMemory – свободный объем виртуальной памяти.

■ TotalVirtualMemorySize – общий объем виртуальной памяти.

Здесь были рассмотрены лишь 13 свойств класса Win32_OperatingSystem, на самом же деле данный класс имеет 35 свойств. Не имеет смысла описывать остальные свойства, так как все они отлично описаны в стандартном файле cimwin32.mfl, расположенном в каталоге %systemroot%\SYSTEM32\wbem, а автор не брал на себя задачу создания книжного аналога данного файла. Поэтому за дополнительной информацией обращайтесь к файлу cimwin32.mfl (просто поищите в нем строку Win32_OperatingSystem).

Кроме Win32_OperatingSystem, для описания компьютера можно использовать следующие классы.

■ Win32_ComputerSystem – содержит следующие свойства, описывающие работающий компьютер.

• AutomaticResetBootOption – если данное свойство возвращает значение false, то при возникновении аварийной остановки отображается «синий экран смерти» (BSOD). Если же значение равно true, то компьютер автоматически перезагружается.

• BootupState – определяет способ загрузки операционной системы. На пример, если данное свойство возвращает значение Normal Boot, то операционная система была загружена в обычном режиме. Возможны следующие значения: Normal boot, Fail‑safe boot, Fail‑safe with network boot.

• Name – имя компьютера.

• NumberOfProcessors – возвращает количество процессоров, установленных на данном компьютере.

• Manufacturer – имя компании, собиравшей компьютер.

• Model – модель BIOS компьютера (поддерживает ACPI или нет).

• CurrentTimeZone – идентификатор текущей зоны часового пояса.

• TotalPhysicalMemory – общий объем физической памяти.

ПРИМЕЧАНИЕ

Класс содержит 39 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM32\wbem. Просто поищите в нем строку Win32_ComputerSystem.

■ Win32_Processor – определяет один экземпляр процессора (для многопроцессорных систем существует несколько экземпляров данного класса) и содержит следующие свойства:

• Description – описание процессора, установленного на компьютере;

• Architecture – тип процессора, установленного на компьютере;

• CurrentVoltage – возвращает текущее напряжение, используемое процессором (определяется первыми 6 байтами, умноженными на 10);

• L2CacheSize – возвращает размер кэша второго уровня для данного процессора;

• LoadPercentage – возвращает среднюю величину загруженности процессора в течение одной секунды.

ПРИМЕЧАНИЕ

Класс содержит 16 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM32\wbem. Просто поищите в нем строку Win32_Processor.

■ Win32_BIOS – указывает атрибуты служб ввода/вывода, установленных на компьютере и содержит следующие свойства:

• Version – описание версии BIOS материнской платы;

• CurrentLanguage – возвращает имя текущего языка BIOS.

ПРИМЕЧАНИЕ

Класс содержит 11 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM3\wbem.

■ Win32_OSRecoveryConfiguration – определяет установленные настройки выполнения дампа памяти при аварийной остановке системы и содержит следующие свойства.

• DebugFilePath – возвращает путь к файлу дампа памяти, который будет создаваться при возникновении аварийной остановки.

• MiniDumpDirectory – возвращает каталог, который используется для хранения малых дампов памяти.

• WriteToSystemLog – указывает, будет ли выполняться запись в системный журнал событий при возникновении аварийной остановки. Если возвращает значение false, то не будет.

ПРИМЕЧАНИЕ

Класс содержит 11 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM3\wbem.

■ Win32_Process – указывает запущенные в данный момент на удаленном или локальном компьютере процессы и содержит следующие свойства, возвращающие:

• ExecutablePath – пути к исполняемым файлам процессов, запущенных в данный момент;

• MaximumWorkingSetSize – максимальный набор страниц памяти, доступных процессам;

• PageFaults – количество ошибок страниц, которые были допущены в течение всего времени работы процесса;

• PageFileUsage – объем файла подкачки, который используется процессом в данный момент;

• ProcessId – идентификатор процесса;

• QuotaPagedPoolUsage – размер используемой процессом в данный момент части выгружаемого пула;

• CommandLine – командную строку, которая использовалась для запуска данного процесса.

ПРИМЕЧАНИЕ

Класс содержит 30 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM3\wbem.

■ Win32_StartupCommand – определяет файлы, запускаемые при входе пользователя в систему. При этом возвращаются не только исполняемые файлы, но и файлы других типов (независимо от расширения файла, если исполняемая программа обращается к данному файлу, то класс считает, что файл запускается при входе пользователя в систему). Например, на компьютере автора данный класс вернул около 4582 файлов, которые запускаются при входе пользователя в систему. Класс содержит следующие свойства.

• Command – возвращает командную строку, с помощью которой запускаются исполняемые файлы, или имя файла, который запускается исполняемым.

• User – имя учетной записи пользователя, при входе которого запускается данный файл (так описание свойства определено в файле cimwin32.mfl, хотя возвращаемое значение больше похоже на имя учетной записи, с правами которой данный файл запускается).

• Name – название запускаемого файла (без расширения).

• Location – значение Startup, говорящее о том, что данный файл запускается с помощью папки Автозагрузка, или ветвь реестра, из которой выполняется запуск данного файла.

■ Win32_NTEventlogFile – определяет параметры настройки системных журналов (рассмотренная оснастка Просмотр событий) и содержит следующие свойства:

• LogFileName – возвращает имя системного журнала;

• MaxFileSize – определяет предельный размер файла системного журнала;

• NumberOfRecords – возвращает количество записей, хранящихся в данный момент в системных журналах;

• OverwriteOutDated – количество дней, в течение которого запись может храниться в системном журнале.

■ Win32_AccountSID – определяет учетные записи и группы, созданные на данном компьютере. Класс содержит следующие два свойства.

• Element – перечисляет все доступные на компьютере группы и учетные записи. При этом разница между данными объектами отображается в виде класса, к которому они принадлежат (формат вывода в текстовый файл таков: пространство имен WMI и класс, к которому принадлежит данная учетная запись или группа, а также название данной учетной записи или группы, например, \\ME\root\cimv2 :Win32_Group. Domain="ME",Name="Администраторы").

• Setting – перечисляет SID учетных записей и групп, созданных на данном компьютере.

Это далеко не все возможные классы и их свойства. Автор не брал на себя ответственность по полному их описанию. Тем не менее уже по описанным свойствам можно понять, что инструментарий управления WMI позволяет получить описание если не всех параметров работы компьютера и установленных на нем приложений, то большинства из них. А если учитывать, что WMI постоянно развивается, то скоро от ее глаз не скроется ни одна мелочь в работе компьютера.

Другие классы и функции пространств имен WMI

WMI является неисчерпаемой темой для обсуждения, так как содержит просто огромное количество классов, не говоря уже о количестве функций, реализованных в этих классах. Для рассмотрения всех функций WMI (не говоря уже об объектах сервера сценариев Windows для доступа к файловой системе и реестру и их методах) необходимо писать отдельную книгу страниц где‑то на 1000. Поэтому в контексте данной книги мы закончим обсуждение базы данных CIMOM и пространств имен WMI. Если же приведенных выше сценариев для вас мало, то в Интернете можно найти множество уже готовых сценариев работы с WMI. Кроме того, список всех классов, их функций, а также краткое описание работы этих функций можно найти в самой Windows XP. Краткие сведения обо всех функциях пространств имен WMI содержатся в файлах с расширениями MOF и MFL (в файлах с расширением MOF хранится описание функций на английском языке, а в файлах с расширением MFL – на русском), расположенных в каталоге %systemroot%\system32\wbem. Например, среди данных файлов можно найти файл sr. mof. В нем содержится описание всех классов, которые предназначены для работы с SystemRestore. Например, вот небольшая вырезка из файла, описывающая рассмотренный выше класс SystemRestore.

Листинг 11.8. Описание класса SystemRestore в файле sr. mof

Как заметно из данной вырезки, с помощью класса SystemRestore можно определить, была ли успешной предыдущая попытка восстановления системы из контрольной точки, а также можно автоматически восстановить систему на основе указанной контрольной точки. К сожалению, не существует файла sr. mfl, хранящего описание на русском языке. Зато в каталоге %systemroot%\system32\wbem есть файл cimwin32.mfl, содержащий описание всех функций и классов пространства имен Root\CIMV2 на русском языке. В каталоге %systemroot%\ system32\wbem также находятся следующие интересные файлы.

■ regevent. mfl – описывает работу с реестром Windows XP.

■ licwmi. mfl – хранит свойства и методы для работы с функцией активизации Windows XP. В частности, метод для автоматической активизации операционной системы через Интернет.

■ Msi. mfl – описывает свойства и методы для работы с пакетами установки Windows. Некоторые свойства из этого файла (класс Win32_Product) были рассмотрены ранее. Методы же, которые он поддерживает, позволяют удаленно установить пакет установщика Windows с правами системы.

■ ntevt. mfl – хранит свойства и методы для работы с системными файлами журналов. В частности, методы очистки системных журналов или их копирования.

■ rsop. mfl – описывает свойства и методы для работы с результирующей политикой (RSoP).

■ secrcw32.mfl – хранит свойства и методы для работы с учетными записями компьютера, а также списками ACL и другими объектами безопасности компьютера.

■ smtpcons. mfl – описывает свойства для работы с почтовыми сообщениями smtp‑сервера.

Стандартные сценарии сервера сценариев

Напоследок хотелось бы описать стандартные сценарии сервера сценариев Windows XP (поставляются вместе с Windows XP Professional). Все они расположены в каталоге %systemroot%\system32.

■ Eventquery. vbs – предназначен для работы с системными журналами событий (оснастка Просмотр событий) и при запуске без параметров, например cscript. exe C:\WINDOWS\SYSTEM32\eventquery. vbs, перечисляет все события, записанные в локальном журнале Система. Чтобы просмотреть возможные параметры работы данного сценария, необходимо ввести команду cscript. exe C:\WINDOWS\SYSTEM32\eventquery. vbs /?. Честно сказать, количество параметров впечатляет. Можно подключаться к удаленному компьютеру, для этого указать учетную запись и пароль, настроить фильтр выводимых записей событий, способ вывода событий и т. д. Сценарий хорошо описан, да к тому же еще и на русском языке, а также содержит набор примеров, поэтому его использование сложности не представляет.

Его также хорошо использовать для изучения работы инструментария управления WMI, так как данный сценарий написан на его основе, хотя размер сценария в 2080 строк не вдохновляет на изучение.

■ Pagefileconfig. vbs – используется для работы с файлом подкачки как локального, так и удаленного компьютера. При вызове без параметров отображает сведения о локальном файле подкачки: диск, на котором он расположен, путь и его имя, исходный размер файла подкачки, максимальный размер, а также размер файла подкачки на данный момент. Определяет количество свободного места на логическом диске.

Можно также выполнить команду cscript. exe C:\WINDOWS\SYSTEM32\ pagefileconfig. vbs /? для вывода описания возможных параметров данного сценария. Эти параметры объединены в группы, описание которых можно вызвать с помощью следующих команд.

• cscript C:\WINDOWS\SYSTEM32\pagefileconfig. vbs /change /? – описывает функции для изменения размера файла подкачки на локальном или удаленном компьютере.

• cscript C:\WINDOWS\SYSTEM32\pagefileconfig. vbs /create /? – создать или добавить новый файл подкачки на логическом диске локального или удаленного компьютера.

• cscript C:\WINDOWS\SYSTEM32\pagefileconfig. vbs /delete /? – удалить файл подкачки на логическом диске локального или удаленного компьютера.

• cscript C:\WINDOWS\SYSTEM32\pagefileconfig. vbs /query /? – отобразить текущие параметры файла подкачки на удаленном или локальном компьютере (если на локальном, то данная функция эквивалентна вызову сценария без параметров).

Сценарий написан при помощи инструментария управления WMI, но его размер в 3302 строчки также не способствует изучению.

■ Prncnfg. vbs – предназначен для выполнения конфигурации принтера, установленного на локальном компьютере: изменения его имени, порта, приоритета и многих других параметров.

■ Prndrvr. vbs – используется для выполнения настройки драйверов принтера, установленного на локальном компьютере: удаление, добавление, перечисление драйверов.

■ Prnjobs. vbs – предназначен для работы с заданиями принтера: просмотр всех заданий, приостановка и продолжение выполнения задания, а также отмена выполнения задания.

■ Prnmngr. vbs – используется для подключения и отключения принтеров (установленных на удаленном компьютере).

■ Prnport. vbs – предназначен для подключения и отключения ТСР‑порта принтера.

■ Prnqctl. vbs – позволяет выполнить пробную печать на данном принтере, а также приостановить работу принтера.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Всего комментариев: 0
Имя *:
Email *:
Код *: