Свойства классов WMI
Свойства классов используются для однозначной идентификации экземпляра класса, представляющего конкретный управляемый ресурс, а также для описания текущего состояния этого ресурса. Рассмотрим два простых примера — классы из пространства имен CIMV2, являющиеся шаблонами для служб и процессов Windows.
Напомним, что для просмотра списка всех служб, установленных на компьютере, можно воспользоваться оснасткой Службы (Services) консоли управления MMC (рис. 11.1).
Рис. 11.1.Службы, зарегистрированные на локальном компьютере
Параметры определенной службы можно просматривать и изменять с помощью диалогового окна с несколькими вкладками, которое появляется после выбора этой службы в правом окне консоли (рис. 11.2).
Рис. 11.2.Параметры службы Журнал событий (Event Log)
Службам Windows в WMI соответствуют экземпляры класса Win32_Service; основные свойства этого класса приведены в табл. 11.1.
Таблица 11.1. Некоторые свойства класса Win32_Service | |
Свойство | Описание |
AcceptPause | Свойство логического типа, значение которого равно True, если службу можно приостановить, и равно False в противном случае |
AcceptStop | Свойство логического типа, значение которого равно True, если службу можно остановить, и равно False в противном случае |
Caption | Краткое описание службы |
Description | Полное описание службы |
DesktopInteract | Свойство логического типа, значение которого равно True, если служба может взаимодействовать с рабочим столом пользователей, и равно False в противном случае |
DisplayName | Имя службы, которое выводится в списке служб |
ErrorControl | Строка, задающая действие программы загрузки, которое будет выполнено в случае возникновения сбоя при запуске службы во время загрузки операционной системы: Ignore — пользователю не будет выведено никаких сообщений о сбое, Normal — будет выведено сообщение о сбое при запуске службы, Critical — система попытается автоматически произвести перезагрузку в хорошей конфигурации, Unknown — действие для подобного типа ошибок не определено |
Name | Имя службы |
PathName | Полный путь к бинарному файлу, соответствующему службе |
ProcessId | Уникальный идентификатор службы |
ServiceType | Строка, описывающая тип службы: Kernel Driver, File System Driver, Adapter, Recognizer Driver, Own Process, Share Process, Interactive Process |
Started | Свойство логического типа, значение которого равно True, если служба была запущена, и равно False в противном случае |
StartMode | Строка, описывающая способ загрузки службы: Boot (применяется только при загрузке служб для драйверов), System(применяется только при загрузке служб для драйверов), Auto (служба загружается автоматически), Manual (служба может быть запущена вручную), Disabled (службу запустить нельзя) |
StartName | Учетная запись, от имени которой запускается служба |
State | Текущее состояние службы: Stopped (остановлена), Start Pending (стартует), Stop Pending (останавливается), Running (запущена), Continue Pending (возвращается в активное состояние), Pause Pending (приостанавливается), Paused (приостановлена), Unknown (состояние службы определить не удалось) |
WaitHint | Примерное время (в миллисекундах), необходимое для выполнения операций приостановки, остановки или запуска службы |
Как мы видим, многие свойства класса Win32_Service соответствуют элементам ввода в диалоговом окне свойств службы. Например, для экземпляра класса Win32_Service, который представляет службу Журнал событий (Event Viewer) свойства Name, DisplayName, Description и StartMode равны соответственно Eventlog, Журнал событий, Обеспечивает поддержку сообщений журналов событий, выдаваемых Windows-программами и компонентами системы, и просмотр этих сообщений. Эта служба не может быть остановлена и Авто (см. рис. 11.2).
Рассмотрим теперь класс Win32_Process, экземпляры которого соответствуют запущенным в операционной системе процессам. Напомним, что информацию о всех процессах можно получить с помощью Диспетчера задач (Task Manager), запускаемого нажатием клавиш <Ctrl>+<Alt>+<Del> (рис. 11.3).
Рис. 11.3.Процессы, запущенные на локальном компьютере
Количество выводимых на экран параметров для процессов зависит от настроек Диспетчера задач (Task Manager): выбрав в меню Вид (View) пункт Выбрать столбцы (Choose columns), можно отметить интересующие нас параметры (рис. 11.4).
Рис. 11.4.Настройка выводимых параметров для процессов
Параметрам запущенного процесса соответствуют свойства класса Win32_Process ; некоторые из этих свойств приведены в табл. 11.2.
Таблица 11.2. Некоторые свойства класса Win32_Process | |
Свойство | Описание |
Caption | Короткое текстовое описание процесса |
CommandLine | Командная строка, используемая для запуска процесса |
CreationDate | Время начала выполнения процесса |
Description | Полное описание процесса |
ExecutablePath | Полный путь к исполняемому файлу процесса |
HandleCount | Общее количество дескрипторов, открытых в настоящее время процессом (равно общему количеству дескрипторов, открытых каждым потоком в процессе) |
MaximumWorkingSetSize | Максимально возможный размер рабочего набора процесса (рабочий набор процесса — это набор страниц, доступных процессу в физической оперативной памяти) |
MinimumWorkingSetSize | Минимально возможный размер рабочего набора процесса |
Name | Имя процесса |
OtherOperationCount | Число выполненных операций ввода/вывода, отличных от операции чтения или записи |
OtherTransferCount | Размер данных, переданных в процессе выполнения операций, отличных от операции чтения или записи |
PageFileUsage | Размер части файла подкачки, которая используется процессом в настоящее время |
ParentProcessID | Уникальный идентификатор родительского процесса, создавшего данный процесс |
PeakPageFileUsage | Максимальный размер части файла подкачки, которая использовалась процессом за все время его работы |
PeakVirtualSize | Максимальное значение размера виртуального адресного пространства, которое использовалось процессом единовременно |
PeakWorkingSetSize | Максимальное значение размера рабочего набора процесса за все время работы |
Priority | Приоритет процесса (минимальному приоритету соответствует значение 0, максимальному — 31) |
ProcessID | Уникальный идентификатор процесса. Значение этого свойства актуально с момента создания процесса до окончания его работы |
ReadOperationCount | Число выполненных процессом операций чтения |
ReadTransferCount | Размер прочитанных данных |
ThreadCount | Число активных потоков в процессе |
VirtualSize | Текущий размер виртуального адресного пространства в байтах, используемого процессом |
WorkingSetSize | Размер памяти в байтах, необходимый для успешного выполнения процесса в операционной системе, использующей страничную организацию памяти |
WriteOperationCount | Число выполненных процессом операций записи |
WriteTransferCount | Размер записанных данных |
Отметим, что в основном в WMI свойства классов доступны только для чтения, однако значения определенных свойств в экземплярах некоторых классов можно изменять напрямую (для этого применяется специальный метод Put_() ). Например, в экземплярах класса Win32_LogicalDisk, которые соответствуют логическим дискам, можно изменять свойство VolumeName, где хранится метка соответствующего диска.
Замечание
Количество свойств, значения которых можно изменять, зависит от операционной системы. Например, в Windows 2000 для записи доступны только 39 свойств, а в Windows XP — 145 свойств.
Для того чтобы узнать, является ли определенное свойство доступным для записи, нужно проверить значение квалификатора Write этого свойства.
Методы классов WMI
Методы класса позволяют выполнять те или иные действия над управляемым ресурсом, которому соответствует этот класс (так как не над каждым ресурсом можно производить какие-либо операции, то не у всякого класса есть методы). В табл. 11.3 и 11.4 описаны, например, методы, которые имеются у классов Win32_Service (службы Windows) и Win32_Process (процессы Windows).
Таблица 11.3. Методы класса Win32_Service | |
Метод | Описание |
StartService() | Запускает службу |
StopService() | Остановливает службу |
PauseService() | Приостановливает службу |
ResumeService() | Возобновляет работу службы |
UserControlService(n) | Посылает службе заданный пользователем код n (число от 128 до 255) |
Create(Name, DisplayName, PathName, ServiceType, ErrorControl, StartMode, DesktopInteract, StartName, StartPassword, LoadOrderGroup, LoadOrderGroupDependencies, ServiceDependencies) | Создает службу |
Change(DisplayName, PathName, ServiceType, ErrorControl, StartMode, DesktopInteract, StartName, StartPassword, LoadOrderGroup, LoadOrderGroupDependencies, ServiceDependencies) | Изменяет параметры службы |
ChangeStartMode(StartMode) | Изменяет тип загрузки службы. Символьный параметр StartMode может принимать следующие значения: Boot (применяется только при загрузке служб для драйверов), System (применяется только при загрузке служб для драйверов), Auto (служба загружается автоматически), Manual (служба может быть запущена вручную), Disabled (службу запустить нельзя) |
Delete() | Удаляет существующую службу |
Таким образом, методы класса Win32_Service позволяют изменять значения некоторых свойств этого класса и выполнять манипуляции над конкретной службой: запускать ее, приостанавливать, останавливать и т. д.
Перейдем к рассмотрению методов класса Win32_Process, которые описаны в табл. 11.4.
Таблица 11.4. Методы класса Win32_Process | |
Метод | Описание |
AttachDebugger() | Запускает отладчик, установленный в системе по умолчанию, для отладки процесса |
Create(CommandLine, CurrentDirectory, ProcessStartupInformation, ProcessId) | Создает новый не интерактивный процесс |
GetOwner(User,Domain) | После выполнения этого метода в переменной User будет записано имя пользователя, создавшего процесс (владельца процесса), а в переменной Domain — имя домена, в котором запущен этот процесс |
GetOwnerSid(Sid) | Позволяет получить в переменной Sid идентификатор безопасности (Security IDentifier, SID) владельца процесса |
SetPriority(Priority) | Устанавливает приоритет процесса. Числовой параметр Priority определяет требуемый приоритет и может принимать следующие значения: 64 (низкий), 16 384 (ниже среднего), 32 (средний), 32 768 (выше среднего), 128 (высокий), 256 (процесс выполняется в реальном времени) |
Terminate(Reason) | Завершает процесс и все его потоки. Числовой параметр Reason задает код выхода, который будет сообщен операционной системе после завершения процесса |
Таким образом, методы класса Win32_Process позволяют выполнять над процессами те же действия, которые можно осуществить в Диспетчере задач Windows с помощью контекстного меню, появляющегося после щелчка правой кнопкой мыши над выделенным процессом в списке (см. рис. 11.5), и кнопки Завершить процесс (Terminate process).
Рис. 11.5.Контекстное меню, позволяющее выполнять действия над определенным процессом
Дата добавления: 2018-03-01; просмотров: 745;