如何更改我的DC密码

时间:2011-10-16 10:07:26

标签: windows

我已使用Windows 7登录该域。

我想以编程方式更改用户的密码。

我试图做“网络用户/域名”但我已经拒绝访问。

我不想手动更改它(CTRL + ALT + DELETE,更改密码......)。

我很乐意在命令行,python,c ++或c#中找到答案。

谢谢,

玛坦

2 个答案:

答案 0 :(得分:1)

您可以使用简单的VB脚本(名为changepass.vbs):

Dim UserDomain
Dim UserName
Dim NewPassword

UserDomain = WScript.Arguments.Item(0)
UserName = WScript.Arguments.Item(1)
NewPassword = WScript.Arguments.Item(2)

Set User = GetObject("WinNT://"& UserDomain &"/"& UserName & "")

Call User.SetPassword(NewPassword)
If err.number = 0 Then
    Wscript.Echo "The password change was successful."
Else
    Wscript.Echo "The password change failed!"
End if

它接受3个参数:域名,用户名和新密码。当前用户必须具有更改密码的权限。如果要在本地计算机上更改密码,请提供“。”作为域名。例如:

cscript changepass.vbs "YOUR_DOMAIN" "user1" "qw23442q"

答案 1 :(得分:1)

不确定如何将其包含在C#中,但是Netapi32.dll库包含NetUserChangePassword函数。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa370650%28v=vs.85%29.aspx

在python中,有两种简单的方法可以做到这一点。使用ctypes,您可以通过键入以下内容来包含它:

from ctypes.wintypes import windll
ChangePassword = windll.Netapi32.NetUserChangePassword

然后输入以下命令更改密码:

ChangePassword(domainname, username, oldpass, newpass)
如果要在当前登录域上分配密码,

“domainname”可能为零。 但是,如果您已经有用于python的Windows工具,那么您可以使用win32net来更改密码:

import win32net
win32net.NetUserChangePassword(domainname, username, oldpass, newpass)

同样,可以使用0代替域名。