首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改PyAD搜索用户的方式

更改PyAD搜索用户的方式
EN

Stack Overflow用户
提问于 2022-08-08 15:16:38
回答 1查看 145关注 0票数 1

我正在创建一个python脚本,它可以连接到AD并搜索用户属性,比如(姓名、电子邮件、位置、电子邮件、扩展)。目前,我正在搜索用户通过CN找到他们的广告帐户。我遇到的问题是,有些用户的CN中有一个中间的首字母,但显示名称上却没有。是否可以通过显示名称或sAMAccount名称搜索用户,从而能够从他们的AD帐户中提取属性?

脚本在下面,在CN搜索时运行良好。

代码语言:javascript
复制
from tkinter import N
from pyad import*
from pyad import adquery
from pyad import aduser
from nameparser import HumanName
from nameparser.config import CONSTANTS

from StatesFun import StatesL

#connecting to AD
pyad.set_defaults (ldap_server="", Adminusername="", password="")
UserName = input("Please input the username of the user requesting a DAT account, (first lastname, not case sensitive)\n")

#Searching user in AD
user = pyad.aduser.ADUser.from_cn(UserName)

#searching for user attributes
#pop takes element out of list and converts to string 
nameAD = user.get_attribute("cn")
name = nameAD.pop(0)
emailAD = user.get_attribute("mail")
email = emailAD.pop(0)
stAD = user.get_attribute("st")
st = stAD.pop(0)
extAD = user.get_attribute("telephoneNumber")
ext = extAD.pop(0)

#Parses name for initials
def initials(full_name):
  initial=""
  if (len(full_name) == 0):
   return
    
  first_middle_last = full_name.split(" ")
  for name in first_middle_last:
    initial=initial+name[0].upper()+""
  return initial

#Splits First / Last Name into own text values
Hname = HumanName(name)
Hname = Hname

#Parses TQL Username from Email
DatUsrNameAD = (email.split('@'))
DatUsrName = DatUsrNameAD.pop(0)

print(DatUsrName)
print(Hname.first)
print(Hname.last)
print(initials(name))
print(StatesL(st))
print(ext)
print(email)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-12 19:19:53

您可以使用这样的东西进行SamAccountName搜索。只需更新base_dn即可与您公司的域设置匹配。

代码语言:javascript
复制
import pyad.adquery

q = pyad.adquery.ADQuery()

user = 'abc123'

q.execute_query(
    attributes = ["departmentNumber"],
    where_clause = f"SamAccountName = '{user}'",
    base_dn="DC=*,DC=*,DC=*"
)

for row in q.get_results():
    dept = row["departmentNumber"]
    print (dept)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73280238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档