Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 9, 2009 12:56:26

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает users[x].Name.replace(u'SN=','')

в скрипте

# -*- coding: utf-8 -*-
import codecs, sys
"""
codepage = 'cp866'
outf = codecs.getwriter(codepage)(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 * FROM 'LDAP://DC=corp,DC=ru' 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_disabled_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 "Count user %d"%(len(users))
for x in range(0, len(users)):
print users[x].Name.replace(u'SN=','')

users = get_all_users_in_domain()
enabled_users = get_enabled_user_in_domain(users)
print_user(enabled_users)
не работает
print users[x].Name.replace(u'SN=','')
Мне нужно чтобы я получал имя пользователя без SN=!
Кто нибудь подскажет?



Офлайн

#2 Июнь 9, 2009 14:49:21

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

не работает users[x].Name.replace(u'SN=','')

Скорее всего проблема кодировок. Строка для замены - юникод, а сама запись имени - нет.

Офлайн

#3 Июнь 10, 2009 08:00:29

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает users[x].Name.replace(u'SN=','')

Ferroman
Скорее всего проблема кодировок. Строка для замены - юникод, а сама запись имени - нет.
Пробовал и в юникоде и без, все равно не работает!



Отредактировано (Июнь 10, 2009 08:01:54)

Офлайн

#4 Июнь 10, 2009 12:55:12

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

не работает users[x].Name.replace(u'SN=','')

qman
Надо точно узнать в какой кодировке возвращаются записи из базы.
Оттуда и плясать.

Офлайн

#5 Июнь 10, 2009 19:41:45

qman
От:
Зарегистрирован: 2007-07-02
Сообщения: 444
Репутация: +  0  -
Профиль   Отправить e-mail  

не работает users[x].Name.replace(u'SN=','')

извините за вопрос на вопрос,
“А как это сделать,” как узнать в какой кодировке возвращаются данные из Active Directory?



Офлайн

#6 Июнь 10, 2009 20:09:13

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

не работает users[x].Name.replace(u'SN=','')

Понятия не имею.
Посмотреть в документацию?
Сохранить полученные данные?
Воспользоваться дебагом?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version