如何在Windows中使用Python修改密码到期?

我怎样才能修改密码过期到“从不”在Windows XP上本地用户与Python? 我有船上的PyWIN和WMI模块,但没有解决scheme。 我设法通过WMI(基于Win32_UserAccount类)查询当前的设置,但如何修改它?

如果你正在使用ActvePython来运行你的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位。 有关位值,请参阅此知识库文章 。

该更改将需要管理员权限,这可能(或不可能)导致PyWin32内部的问题。 我没有看到从Python脚本做出这种改变的直接方式,但是我确定这可以使用不同的方法来自动化。

这MSFN线程似乎有信息,将帮助你,或至少是一个开始:

http://www.msfn.org/board/Password-Expires-Chang-t115757.html

您可能需要管理员权限才能执行此操作,请查看提升当前进程或启动具有更多特权的新进程。 (即像Vista的UAC,但在XP上)

虽然不能帮助细节。 : – /