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

Работа со службами NT/2000 через ADSI



Работа со службами NT/2000 через ADSI

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

Для получения списка служб на машине и их состояний можно использовать такую программу:

us о w.l п32 : . ol& 1 г П эта таблица получена из раздела

Я 'Active Directory Service Interfaces 2.5->ADSI fieference->

И ADSI Interfaces->Dynamic Object Inter 'acec

» IADsServiceOperatio:iS Proper*.> Methods' AC/SI

%status =

(0x00000001 => 'STOPPED'. 0x00000002= START_PEMDIHG',

0x00000003 => 'STGP_PENDING'. 0x00000004=:- RUNNING',

0x00000005 => 'CONTINUE_PENDING' .0x00000006 => ' PAUSE_PEtJDING '.

0x00000007 => 'PAUSED'. 0x00000008 => 'ERROR'):

SADsPath = "W]nNT://DomainNarr,e/ConiputerNa!ne, computer":

$C = Win32: :OLE->GctObj'oct($ADsPath) or die "Невозможно получить $ADsPatn\;i":



foreach $adsobj (in $c){ print Sadsobj^tDisplayNarr.

if ($adsobj->{Class) eq "Service"); }

Для запуска, остановки, приостановки или продолжения работы службы вызываются очевидные методы (Star t(), Stop() и т. д.). Вот как можно запустить службу Network Time на машине с Windows 2000, если ранее она была остановлена:

use Win32::OLE;

SADsPath = "WinNT://DomainName/ComputerName/W32Tirne, service";

$s = Win32::OLE->GetObject($ADsPath) or die "Невозможно получить $ADsPath\n";

$s->Start();

tf можно в этом месте проверять в цикле состояние

пока служба не будет запущена

Во избежание потенциальных конфликтов имен пользователей и компьютеров, можно переписать предыдущий пример:

use Win32::OLE;

$d = Win32: :OLE->GetObject("WinNT://Do(r'ain");

$c = $d->GetObiect( "Computer". Scornputername):

$s = $c->GetOb]ect("Service". "W32Tiiie"):

$s->Start():

Эти примеры должны подсказать вам, какой контроль над системой можно получить при помощи ADSI из Perl. Службы каталогов и их интерфейсы могут быть весьма могущественной частью вашей компьютерной инфраструктуры.



Содержание раздела