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

Секреты Windows: статьи о реестре, rundll32.exe, программах Недокументированные возможности Windows XP. MMC. Часть 6


Продолжение, начало в выпусках: 1 2 3 4 5

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

оцените: 1 2 3 4 5

Книга "Недокументированные возможности Windows XP. Библиотека пользователя", Глава 3. Консоль управления Microsoft. Часть 6. Оснастки Windows XP: Управляющий элемент WMI, окончание.

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

Листинг 3.04. Получение сведений об операционной системе
set objWMIService = GetObject("winmgmts:" & "{impersonationLevel = impersonate}!\root\cimv2")
set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")
for each objOperatingSystem in colOS
objTextFile.WriteLine objOperatingSystem.Name
next

Именно так можно подключиться к базе данных сведений об операционной системе и записать в файл сведения об операционной системе, но к каким столбам таблицы можно получить доступ (кроме используемого в листинге столбца 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%\SYSTEM32\wbem.

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

  • DEBUGFILEPATH — возвращает путь к файлу дампа памяти, который будет создаваться при возникновении аварийного останова.
  • MINIDUMPDIRECTORY — возвращает каталог, который используется для хранения малых дампов памяти.
  • WRITETOSYSTEMLOG — указывает, будет ли выполняться запись в системный журнал событий при возникновении аварийного останова. Если возвращает значение FALSE, тогда не будет.

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

WIN32_PROCESS Определяет запущенные в данный момент на удаленном или локальном компьютере процессы и содержит следующие свойства.

  • EXECUTABLEPATH — возвращает пути к исполняемым файлам процессов, запущенных в данный момент.
  • MAXIMUMWORKINGSETSIZE — возвращает максимальный набор страниц памяти, доступных процессам.
  • PAGEFAULTS — возвращает число ошибок страниц, которые были допущены в течение всего времени работы процесса.
  • PAGEFILEUSAGE — возвращает объем файла подкачки, который используется процессом в данный момент.
  • PROCESSID — возвращает идентификатор процесса.
  • QUOTAPAGEDPOOLUSAGE — возвращает размер используемой процессом в данный момент части выгружаемого пула.
  • COMMANDLINE — возвращает командную строку, которая использовалась для запуска данного процесса.

Данный класс содержит 30 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM32\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.

Листинг 3.05. Описание класса SystemRestore в файле sr.mof
[Dynamic, Provider ("SystemRestoreProv")] 
class SystemRestore
{
    [read, write]
    String Description;
    [read, write]
    uint32 RestorePointType;
    [read, write]
    uint32 EventType;
    [read, write, key]
    uint32 SequenceNumber;
    [read, write]
    String CreationTime;
    
    [Implemented, static, Description(
    "The CreateRestorePoint method creates a restore point."
    "It returns a COM error code.")]
    uint32 CreateRestorePoint([In] String Description, 
    [In] uint32 RestorePointType, [In] uint32 EventType );

    [Implemented, static, Description(
    "The Enable method enables SR on a drive."
    "It returns a COM error code.")]
    uint32 Enable([In] String Drive, [In] Boolean WaitTillEnabled);

    [Implemented, static, Description(
    "The Disable method disables SR on a drive."
    "It returns a COM error code.")]
    uint32 Disable([In] String Drive);

    [Implemented, static, Description(
    "The Restore method restores the system to a specified restore point."
    "It returns a COM error code.")]
    uint32 Restore([In] uint32 SequenceNumber);

    [Implemented, static, Description(
    "Returns the status (0=fail, 1=success, 2=interrupted) of the last restore.")]
    uint32 GetLastRestoreStatus();
    
};

Как можно заметить из данной вырезки, также с помощью класса 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 Предназначен для подключения и отключения TCP-порта принтера.

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

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

Оригинал статьи: http://www.onestyle.com.ua/txt.php?u=148

В избранное