python查询AD域信息的方法总结

Python011

python查询AD域信息的方法总结,第1张

很多公司都在使用AD域来管理用户及组织架构,我们可以使用Python来进行自动化运维。网上很多资料不全而且都很古老,特地根据最近的代码编写经历,编写了如下通过python查询AD域信息方法总结:

环境:

原理汇总

通过LDAP协议来连接及访问AD域服务,可以把AD域理解成某种类型数据库,我们通过AD账号和密码来访问其中存储数据库字段信息。为了更好地了解其中字段及含义,建议下载一个ADExplorer.exe绿色工具软件,直接去微软官网下载免费的绿色软件,以下是下载链接(查看左边的菜单Networking Utilities中包含的Active Directory Explorer):

https://docs.microsoft.com/en-us/sysinternals/

通过这个软件,我们可以很方便地查看各种字段信息,为后面的连接获取足够的前提信息 。

#建立和关闭域连接

以上代码把连接和关闭连接分开,是为了避免在一个程序中需要频繁调用连接时,避免经常关闭,可以节省大量的资源和时间,可以在程序开头建立连接,在程序退出时才关闭即可

#模糊查询组信息

#模糊查询域中的workstation信息

查询到所需信息以后,还可以直接调用pandas,保存为excel文件

#-*- coding: utf-8 -*-

import MySQLdb, datetime, time

#code数字含义

code_mean = {10:"开始下载(10)",

11:"下载完成(11)",

12:"安装界面(12)",

13:"安装成功(13)",

14:"启动游戏(14)",

16:"更新开始(16)"}

#Networktype数字含义

network_type_mean = {1:"3G 网络",

2:"2G 网络",

3:"WIFI网络"}

#当前测试人员拥有手机

phonelist = {1:"0049990********", 2:"8689430********", 3:"3558680********"}

#当前系统时间

nowtime = (datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S'))

print "当前时间:" + nowtime

today = str(nowtime).split()[0]

#去除日期

HMS = nowtime.split()[1]

print "目前测试人员拥有的手机如下:"

print "HTC *** :1"

print "HTC **** :2"

print "HUAWEI ***** :3"

phont_imei = raw_input("请选择你要查询的手机,输入上列手机对应的数字即可:")

time_start = raw_input("请输入需要查询的起始时间(格式如后:" + HMS + ",默认日期为今天): ")

imei = phonelist[int(phont_imei)]#-*- coding: utf-8 -*-

import MySQLdb, datetime, time

#code数字含义

code_mean = {10:"开始下载(10)",

11:"下载完成(11)",

12:"安装界面(12)",

13:"安装成功(13)",

14:"启动游戏(14)",

16:"更新开始(16)"}

#Networktype数字含义

network_type_mean = {1:"3G 网络",

2:"2G 网络",

3:"WIFI网络"}

#当前测试人员拥有手机

phonelist = {1:"0049990********", 2:"8689430********", 3:"3558680********"}

#当前系统时间

nowtime = (datetime.datetime.fromtimestamp(time.time()).strftime('%Y-%m-%d %H:%M:%S'))

print "当前时间:" + nowtime

today = str(nowtime).split()[0]

#去除日期

HMS = nowtime.split()[1]

print "目前测试人员拥有的手机如下:"

print "HTC *** :1"

print "HTC **** :2"

print "HUAWEI ***** :3"

phont_imei = raw_input("请选择你要查询的手机,输入上列手机对应的数字即可:")

time_start = raw_input("请输入需要查询的起始时间(格式如后:" + HMS + ",默认日期为今天): ")

imei = phonelist[int(phont_imei)]