Как я могу работать с Active Directory из Perl? - PullRequest
4 голосов
/ 06 октября 2009

Я рассматриваю возможность написания некоторых скриптов Perl, которые взаимодействуют с Active Directory. Будучи новичком в Perl, мне было интересно, есть ли какие-нибудь конкретные модули, инструменты, методы и т. Д., Которые кто-нибудь посоветует мне использовать. На данный момент я только собираю информацию о пользователе для обработки сценарием.

Ответы [ 2 ]

6 голосов
/ 06 октября 2009

Лучший источник кода примера Active Directory в Perl доступен здесь . Это от Робби Аллена, соавтора превосходной поваренной книги Active Directory .

.

Вот пример из их кода поваренной книги:

# This Perl code finds all disabled user accounts in a domain.

# ---------------------------------------------------------------
# Adapted from VBScript code contained in the book:
#      "Active Directory Cookbook" by Robbie Allen
# ISBN: 0-596-00466-4
# ---------------------------------------------------------------

# ------ SCRIPT CONFIGURATION ------
my $strDomainDN = "<DomainDN>";    # e.g. dc=rallencorp,dc=com
# ------ END CONFIGURATION ---------
use Win32::OLE;
$Win32::OLE::Warn = 3;
my $strBase   =  "<LDAP://" . $strDomainDN . ">;";
my $strFilter = "(&(objectclass=user)(objectcategory=person)" . 
                "(useraccountcontrol:1.2.840.113556.1.4.803:=2));";
my $strAttrs  = "name;";
my $strScope  = "subtree";

my $objConn = Win32::OLE->CreateObject("ADODB.Connection");
$objConn->{Provider} = "ADsDSOObject";
$objConn->Open;
my $objRS = $objConn->Execute($strBase . $strFilter . $strAttrs . $strScope);
$objRS->MoveFirst;
while (not $objRS->EOF) {
    print $objRS->Fields(0)->Value,"\n";
    $objRS->MoveNext;
}
1 голос
/ 06 октября 2009

Из того, что я понимаю, есть два варианта:

  • Win32 :: OLE модуль
  • Запускать внешние инструменты (такие как DSQuery, DSGet и т. Д.) И анализировать выходные данные.

У меня нет большого опыта работы с Win32 :: Ole, может быть, кто-то еще может немного прояснить это.

...