Pull to refresh

Получение информации из Active Directory и Firebird

Reading time2 min
Views3.5K
Всем доброго времени суток. Возникла задача получить информацию из Active Direcoty (в частности о принадлежности пользователей определенным группам прав) и базы данных Firebird. Хотел бы реализовать что-то подобное на Python. Но не представляю как. Перерыл кучу материалов, но систематизировать их затрудняюсь. Было бы рад оказанной помощи в этом вопросе.

Возможное решение


Решение для получение информации из Active Directory нашел здесь. Поставил модули для Python active_directory, win32api. Но после выполнения скрипотов выдает ошибку

UnicodeEncodeError: 'ascii' codec can't encode characters in position 10-18: ordinal not in range(128)

Что-то с кодировкой, но как решить проблему не знаю. Help!

Есть еще примеры с использоованием ldap модуля, как советовал уважаемый ctrlok.



Вот рабочий пример получающий из Active Directory количество текущих пользователей и их список

# -*- coding: cp1251 -*-
import codecs, sys
ctrl = 'domain_name'
outf = codecs.getwriter('cp1251')(sys.stdout, errors='replace')
sys.stdout = outf

import win32com.client

def get_all_users_in_domain():
conn = win32com.client.Dispatch("ADODB.Connection")
conn.Provider = "ADSDSOObject"
conn.Open("Active Directory Provider")
query = "SELECT ADsPath FROM 'LDAP://DC="+ctrl+"' WHERE objectClass='user' AND objectCategory='person'"
rs = conn.Execute(query)[0]
users = []
while not rs.EOF:
obj = win32com.client.GetObject(rs.Fields(0).Value)
users.append(obj)
rs.MoveNext()
conn.Close()
return (users)

def get_enabled_user_in_domain(users):
enabled_users = []
for x in range(len(users)):
if users[x].AccountDisabled:
enabled_users.append(users[x])
return (enabled_users)

def print_user (users):
print u"Число пользователей %d \n" %(len(users))
for x in range(0, len(users)):
print users[x].Name.replace(u'CN=','')

users = get_all_users_in_domain()
enabled_users = get_enabled_user_in_domain(users)
print_user(enabled_users)


Теперь вопрос, как сюда добавить группы к которым каждый пользователь принадлежит…
Tags:
Hubs:
Rating0
Comments3

Articles