对于使用Python的本地用户,如何在Windows XP上将密码过期修改为“never”?我有PyWIN和WMI模块,但没有解决方案.我设法通过WMI(基于Win32_UserAccount类)查询当前设置,但是如何修改它?
解决方法:
如果您使用ActvePython针对Active Directory运行python脚本,那么您可以使用以下内容:
import win32com.client
ads = win32com.client.dispatch('ADsNameSpaces')
user = ads.getobject("", "WinNT://DOMAIN/username,user")
user.Getinfo()
user.Put('userAccountControl', 65536 | user.Get('userAccountControl'))
user.Setinfo()
但是如果你的python在unix下运行,你需要两件事来与Active Directory对话:Kerberos和LDAP.获得与Active Directory服务器的SASL(GSSAPI(KRB5))经过身份验证的LDAP连接后,即可访问目标用户的“userAccountControl”属性.
userAccountControl是一个整数属性,被视为位字段,您必须在其上设置DONT EXPIRE PASSWORD位.有关位值,请参见this KB article.