2009-10-06 4 views
4

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

+1

AD является LDAP. Поговорите с AD, как с сервером LDAP. – jrockway

ответ

1

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

  • Win32 :: OLE модуль
  • Выполнить внешние инструменты (suchs Dsquery, Dsget, и т.д.) и разобрать вывод.

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

6

Лучший источник Active Directory example code in Perl is available here. Это от Робби Аллена, соавтора O'Reilly's отлично Active Directory Cookbook.

Here is an example от их кулинарного кода:

# 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; 
} 
+0

@ Мик не публикуйте партнерские ссылки, чтобы избежать ответа на ваш спам. –

+0

Плохо, я не понимал, что это так. Я просто схватил их ссылку Amazon со своего сайта, не задумываясь. Спасибо за исправление! – Mick

+0

Я получаю сообщение об ошибке («Таблица не существует») с использованием этого кода. Я попытался заменить $ strDomainDN тем, что, по моему мнению, подходит для моей компании, но это должно быть неправильно. Как узнать DN? – jimtut

Смежные вопросы