Python использует pyad для отображения атрибутов, не получая logonHours - PullRequest
0 голосов
/ 09 ноября 2018

Я пытался отобразить logonHours при использовании pyad в Python 3.7 . Когда я иду к отображению logonHours, в качестве вывода он дает мне memory at 0x0000000003049708 и т. Д.

Не уверен, как отобразить эти данные. Все остальные атрибуты отображаются правильно.

from pyad import *
q = pyad.adsearch.ADQuery()
q.execute_query(
    attributes= ["distinguishedName", "givenName", "userWorkstations","homeDirectory", "homeDrive", "logonHours"],
    where_clause = "objectClass = '*'",
    base_dn = "OU=Graphic Design Students, DC=someplace, DC=com"
)
adoutput = []
for row in q.get_results():
    adoutput.append(row["distinguishedName"])
    adoutput.append(row["givenName"])
    adoutput.append(row["userWorkstations"])
    adoutput.append(row["homeDirectory"])
    adoutput.append(row["homeDrive"])
    adoutput.append(row["logonHours"])
adoutput = [x for x in adoutput if x != None]

print(adoutput)

мой вывод выглядит так:

<memory at 0x0000000003049708>
<memory at 0x00000000030497C8>
<memory at 0x0000000003049888>
<memory at 0x0000000003049948>
<memory at 0x0000000003049A08>
<memory at 0x0000000003049AC8>

1 Ответ

0 голосов
/ 10 ноября 2018

Использование

row["logonHours"].tobytes() 

чтобы получить значение байта - вы увидите ту же довольно загадочную вещь, которую ADSIEdit показывает для значения атрибута.

Трюк превращает его во что-то не загадочное. Там есть хорошее объяснение того, как значение закодировано в https://social.technet.microsoft.com/Forums/exchange/en-US/545552d4-8daf-4dd8-8291-6f088f35c2a4/how-is-the-logon-hours-attribute-set-in-active-directory-windows-server-2008-r2-?forum=winserverDS

...