我已经看到很多关于如何通过运行重置用户密码的文档
net user <username> * /domain
或本地
net user <username> <new_password>
但我不是当前域的域管理员,因此我不允许通过net user <my_username> * /domain
(拒绝访问)更改密码。
我能不过,要做的就是点击++CTRL并单击“更改密码”,然后我必须重新输入当前密码并提供一个新密码: ALTDEL
问题:我该如何编写脚本?我想通过命令行更改密码。可以吗?
奖励信息:我在一台 Windows XP SP3 机器上。
笔记:公司政策是让用户每两周更改一次密码。而且您不能使用您最近的 24 个密码……由于我不想总是记住新密码,所以我只需手动遍历“密码 1”...“密码 24”,最后我就会回到我的旧密码。如果能用小批量而不是手动方式来做这件事就好了。
答案1
试试这个,我不知道这对你是否有用。这是 VB 脚本
Dim UserName
Dim UserDomain
UserDomain = InputBox("Enter the user's login domain name")
UserName = InputBox("Enter the user's login name")
Set User = GetObject("WinNT://"& UserDomain &"/"& UserName &"",user)
Dim NewPassword
NewPassword = InputBox("Enter new password")
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
检查一下http://technet.microsoft.com/en-us/library/cc780332%28WS.10%29.aspx!
答案2
检查一下https://technet.microsoft.com/en-us/library/ee617261.aspx.... 有 -Oldpassword 参数,它与 -Newpassword 参数一起可以实现这一点。请记住,如果您不是域管理员,那么您需要知道旧密码才能执行此操作。另外,当您使用 -Oldpassword 参数时,不要使用 -reset 参数。
答案3
不幸的是,我不再处于相同的系统环境中,但需要注意的是,Sysinternals 更新了他们的工具密码保护工具。
您可以使用 PsPasswd 更改本地或远程计算机上的本地或域帐户的密码。
也许这是解决方案 - 我仍然不知道是否可以使用该工具更改密码。我可以通过 CTRL+ALT+DELETE 更改密码。
答案4
@MealstroM 的回答要求管理员,否则您将被拒绝访问。而不是SetPassword
必须调用ChangePassword(old,new)
:
Dim wsn
Set wsn = CreateObject("WScript.Network")
Dim UserName
UserName = wsn.UserName
Dim UserDomain
UserDomain = wsn.UserDomain
UserDomain = InputBox("Enter the user's login domain name (or local computer name or dot)",,UserDomain)
UserName = InputBox("Enter the user's login name",,UserName)
Set User = GetObject("WinNT://"& UserDomain &"/"& UserName &"",user)
Dim OldPassword
OldPassword = InputBox("Enter old password")
Dim NewPassword
NewPassword = InputBox("Enter new password")
Call User.ChangePassword(OldPassword, NewPassword)
If err.number = 0 Then
Wscript.Echo "The password change was successful."
Else
Wscript.Echo "The password change failed!"
End if