Bunu yapmanın daha doğrudan yolu, Active Directory'yi sorgulamaktır. Kullanıcı üzerinde bir arama yaparsınız ve ardından displayName
özniteliği alırsınız . (Bu Full Name
, Windows'ta görüntülenenle eşleşir.)
Burada iki seçeneğiniz var:
Python AD kütüphanesi kullanma, örneğin pyad
Bu çok Windows'a özgüdür ve pywin32
kütüphaneyi gerektirir . ADSI API'lerine dayanmaktadır, bu nedenle yalnızca Windows'ta çalışacaktır.
from pyad import aduser
user = aduser.ADUser.from_cn(username)
print user.get_attribute("displayName")
Kullanıcı adını nasıl elde edeceğiniz size kalmış. Sen kullanabilirsiniz getpass.getuser()
, os.environ["USERNAME"]
(Windows için), vs.
Bir Python LDAP kütüphanesi kullanmak, örneğin ldap3
Bu, saf bir Python uygulamasıyla standart LDAP protokolünü izler, bu nedenle herhangi bir istemci işletim sisteminden çalışmalıdır.
Ham LDAP sorgularını kullanmak, ADSI soyutlamalarından çok daha fazla söz konusudur. Dokümanları okumanızı (iyi dersler içeren) ve ldap3 üzerinden Microsoft AD ile etkileşime girme konusunda daha fazla ders aramanızı öneririm.
Olası bir sorunun, kullanıcı adıyla (CN) tek başına arama yapmanın yanlış nesneyi alabileceğine dikkat et. Birden fazla OU'da aynı CN ile birden fazla nesneye sahip olmak mümkündür. Daha kesin olmak istiyorsanız, SID gibi benzersiz bir tanımlayıcı kullanmak isteyebilirsiniz.