Perl для системного администрирования




Управление процессами в NT/2000 - часть 14


  • Всегда держите под рукой копию WMI SDK. Его документация и примеры кода на VBscript очень полезны.
  • Чаще используйте броузер объектов WMI в WMI SDK. Он поможет вам разобраться со структурой.
  • Теперь перейдем к Perl. Первоначальная наша задача - определить, какую информацию о процессах в Win32 можно получить и как ее использовать.

    Сначала нужно установить соединение с пространством имен (names расе) WMI. Пространство имен определяется в WMI SDK как «единица для группировки классов и экземпляров для управления их областью действия и видимостью». Нам необходимо соединение с корнем стандартного пространства имен cimv2, в котором содержатся все интересующие нас данные.

    Кроме того, потребуется установить соединение с соответствующим уровнем привилегий. Программа должна иметь право отлаживать процесс и представлять нас; другими словами, она должна выполняться от имени пользователя, запустившего сценарий. Установленное соединение позволит получить объект Win32_Procoss (как это определяется в схеме Win32).

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

    use Win32::OLE('in1);

    Sserver = ''; 8 соединение с локальной машиной

    Я получаем объект SWbemLocator

    $lob] = Win32: :OLE->new

    ( 'WbemScripting, SWoe:riLocat:or')

    or die "Невозможно создать объект локатор: ' .Win32: :CLE->LasTf.-"rori

    и определяем, что сценарий выполняется с празам!'

    # используем зю для пслуче^'р объекта bWbe;rServ:c»^ Ssobj = $iol". ->

    or oie M^acjMcvhc создать ооье^.т сеов-' ".Win32 :OLt-.>LastErrcr (). \:V ,

    и получаем объект схемы

    Sprocschm = $sobj->Get('Win32_Process');

    Сложный способ включает в себя:

  • Получение объекта локатора, используемого для нахождения соединения с объектом-сервером
  • Установку прав, т. е. программа будет выполняться с нашими привилегиями
  • Использование этого объекта для получения соединения с ci/w2-пространством имен WMI



  • Содержание  Назад  Вперед