自己在公司 的虚拟机上用samba4搭了一个AD域控,用python (pyqt4, ldap)写个不入域直接修改域用户密码的客户端 ,window和linux中都能用 ,包括3个python文件.
练习之作,以后要加个设置功能,这样别人也能用。 windows 下用pyinstall 打包成单独exe文件有13M大!
1. 主程序maincontrol.py
# -*- coding: utf-8 -*-
from PyQt4 import QtCore, QtGui
from mainview import Ui_mainView
import sys
from change_passwd import ChangeADPasswd
class mainControl(QtGui.QMainWindow):
def __init__(self, host, base, bind_user, bind_pwd, parent=None):
self.host = host
self.base = base
self.bind_user = bind_user
self.bind_pwd = bind_pwd
QtGui.QWidget.__init__(self, parent)
self.ui = Ui_mainView()
self.ui.setupUi(self)
QtCore.QObject.connect(self.ui.pushButton, QtCore.SIGNAL("clicked()"), self.changeAction)
def changeAction(self):
if self.ui.newPasswd1.text() != self.ui.newPasswd2.text() :
self.ui.messageArea.setText("New Passwords are not indentical!")
else:
# self.ui.messageArea.setText("New Passwords are indentical!")
username = self.ui.userName.text()
oldpasswd = self.ui.oldPasswd.text()
newpasswd = self.ui.newPasswd1.text()
changePasswd = ChangeADPasswd(self.host, self.base, self.bind_user, self.bind_pwd)
outputmessage = changePasswd.changepasswd(username, oldpasswd, newpasswd)
print(outputmessage)
self.ui.messageArea.setText(outputmessage)
if __name__ == '__main__':
app = QtGui.QApplication(sys.argv)
myapp = mainControl('192.168.1.100:636', 'CN=Users,dc=samba,dc=ddd,dc=com', 'test@samba.ddd.com&