Python >> Tutoriel Python >  >> Python Tag >> Windows

Nom complet du nom d'utilisateur Windows (dans le domaine) en utilisant Python

La manière la plus directe de procéder consiste à interroger Active Directory. Vous effectueriez une recherche sur l'utilisateur, puis vous obtiendriez le displayName attribut. (Ceci correspond au Full Name affiché dans Windows.)

Vous avez deux options ici :

À l'aide d'une bibliothèque Python AD, par ex. pyade

Ceci est très spécifique à Windows et nécessite le pywin32 bibliothèque. Il s'appuie sur les API ADSI et ne fonctionnera donc que sous Windows.

from pyad import aduser
user = aduser.ADUser.from_cn(username)
print user.get_attribute("displayName")

La façon dont vous obtenez le nom d'utilisateur dépend de vous. Vous pouvez utiliser getpass.getuser() , os.environ["USERNAME"] (Windows uniquement), etc.

À l'aide d'une bibliothèque Python LDAP, par ex. ldap3

Cela suit le protocole LDAP standard, avec une implémentation Python pure, et devrait donc fonctionner à partir de n'importe quel système d'exploitation client.

L'utilisation de requêtes LDAP brutes est plutôt plus compliquée que les abstractions ADSI. Je vous suggère de lire la documentation (qui contient des didacticiels décents) et de rechercher d'autres didacticiels sur l'interaction avec Microsoft AD via ldap3.

Notez qu'un problème possible est que la recherche par nom d'utilisateur (CN) seul peut vous donner le mauvais objet. Il est possible d'avoir plusieurs objets avec le même CN dans plusieurs unités d'organisation. Si vous voulez être plus précis, vous pouvez utiliser un identifiant unique comme le SID.