Найти - Пользователи
Полная версия: Python и Active Directory
Начало » Python для экспертов » Python и Active Directory
1 2
well
Скажем у меня есть компы, имена которых можно получить следующим образом:

new =
for i in range (3):
new.append (i)
new =
for j in range (3):
pc = “pc-%d-%d” % (i, j) #Имя компа
new .append (pc)

Чтобы удобнее было разбить на потоки, я сделал вложенные списки.
Андрей Светлов
У меня - работает. Что-то странное.
well
Андрей Светлов
У меня - работает. Что-то странное.
Мистика какая-то, перезагрузил машину и все заработало. Спасибо огромное. А можно вопрос, почему мы при передаче параметров функции после первого параметра ставим запятую? Я про эту строку:

whoIs = threading.Thread (target = loggedOn, name = s, args = (new , ))
Андрей Светлов
Это - просто.
args подставляется в target как target(*args)
То есть трактуется как tuple.
Список разваливается на аргументы.
Когда пишешь (a,) - это tuple из одного аргумента. Соответственно - один параметр в функции.

Знаешь, как интерпретируется
def f(a, b, c, *args, **kwargs):
pass

и

f(1,'a', , *a, **kw)

?
well
Андрей Светлов
Это - просто.
args подставляется в target как target(*args)
То есть трактуется как tuple.
Список разваливается на аргументы.
Когда пишешь (a,) - это tuple из одного аргумента. Соответственно - один параметр в функции.

Знаешь, как интерпретируется
def f(a, b, c, *args, **kwargs):
pass

и

f(1,'a', , *a, **kw)

?
Ага, понял, не дочитал, что параметры передаются, как кортеж. Спасибо.
well
привет, у меня появилась следующая задача: пробежаться по всем пользователям в определенной оушке (учитывая её подкаталоги), и соответсвенно полю “Display name” загнать значение в поле “Pager” на вкладке “Telephones”. По оушке я пробегаю следующим макаром:
import pythoncom
import re
import win32com.client

domainArr = {}
startingPoint = “DC=lan/DC=local/OU=myou”

def domainGrab (startingPoint, level):
global domainArr
reg = re.compile (r“CN=(?P<need>.*)”)
adsi = win32com.client.GetObject(“LDAP://” + startingPoint)
for entry in adsi:
if (entry.Class == “user”):
tmp = reg.match (entry.Name)
name = tmp.group (“need”)
domainArr = startingPoint
domainGrab (startingPoint + ‘/’ + entry.Name.replace('/', ‘\\/’), level + 1)

Вот, а как мне получить значение поля “Display name” и загнать значение в поле “Pager” на вкладке “Telephones”? Есть идеи?
well
well
привет, у меня появилась следующая задача: пробежаться по всем пользователям в определенной оушке (учитывая её подкаталоги), и соответсвенно полю “Display name” загнать значение в поле “Pager” на вкладке “Telephones”. По оушке я пробегаю следующим макаром:
import pythoncom
import re
import win32com.client

domainArr = {}
startingPoint = “DC=lan/DC=local/OU=myou”

def domainGrab (startingPoint, level):
global domainArr
reg = re.compile (r“CN=(?P<need>.*)”)
adsi = win32com.client.GetObject(“LDAP://” + startingPoint)
for entry in adsi:
if (entry.Class == “user”):
tmp = reg.match (entry.Name)
name = tmp.group (“need”)
domainArr = startingPoint
domainGrab (startingPoint + ‘/’ + entry.Name.replace('/', ‘\\/’), level + 1)

Вот, а как мне получить значение поля “Display name” и загнать значение в поле “Pager” на вкладке “Telephones”? Есть идеи?
Задача, оказывается, решается просто.Считываем значения:

path = “LDAP://DC=lan/DC=local/OU=myou/CN=test_user”
GetObject = win32com.client.GetObject
obj = GetObject(path)
print obj.DisplayName

Заносим значения:

path = “LDAP://DC=lan/DC=local/OU=myou/CN=test_user”
GetObject = win32com.client.GetObject
obj = GetObject(path)
obj.Pager = “911”
obj.SetInfo ()
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB