如何在不成为域管理员的情况下更改当前用户的域密码?


10

我看过很多有关如何通过运行来重置用户密码的文档

net user <username> * /domain

或本地

net user <username> <new_password>

但是我不是当前域的域管理员,因此不允许通过net user <my_username> * /domain(拒绝访问)更改密码。

可以,虽然做的,是打CTRL+ ALT+ DEL,然后点击“更改密码”,在这里我必须重新输入我的当前密码并给予一个新的密码: 在此处输入图片说明

问题:如何编写脚本?我想通过命令行更改密码。可能?

奖励信息:我在Windows XP SP3计算机上。

注意:公司政策是让用户每两周更改一次密码。而且您不能使用最近的24个密码...因为我不想一直记住一个新密码,所以我只是手动遍历“ password1” ...“ password24”,最后我又回到了原来的密码。少量完成而不是手动执行此操作将是很棒的。


我很好奇。通过GUI如此简单时,为什么还要编写脚本?您多久更改一次密码?
John Gardeniers

公司政策是让用户每两周更改一次密码。而且您不能使用最近的24个密码...因为我不想一直记住一个新密码,所以我只是手动遍历“ password1” ...“ password24”,最后我又回到了原来的密码。少量完成而不是手动执行此操作将是很棒的。
丹尼斯·G

9
为什么霸道的密码策略实际上会使事情变得不那么安全的另一个例子:-)现在,这台计算机上存在一个带有所有可能的24个密码的未加密脚本的可能性,但是该域的管理员认为他做的很棒!哈!
理查德·韦斯特

@理查德完全正确。另外,我保留旧密码是“反对”要强制执行新密码的策略……最好使密码更加安全,而不是始终更改密码。“ password1”实际上将用作密码。还是“ letmein2” ...祝你好运hacking一些CEO密码在这里,打赌他们也不会更好;-)
Dennis G

@moontear最终,您的域管理员将继续前进,并且只允许用户每24小时更改一次密码
Jim B

Answers:


2

试试这个,我不知道这是否对您有用。它的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/zh-cn/library/cc780332%28WS.10%29.aspx域登录


我认为,出于安全原因,最好也询问(并验证当前密码
pconcepcion 2011年

1
好主意,但是即使通过使用,User.SetPassword我也会获得访问被拒绝的信息:“ *错误:常规访问被拒绝的错误,代码:80070005,源:Active Directory *”
Dennis G

听起来不好 看来您需要管理员权限。否则您的GroupPolicy不允许这样做。
MealstroM

1
当然可以...但是Windows如何使用ctrl + alt + del来完成此操作-更改密码。这有可能以某种方式;-)
丹尼斯摹

1
看起来GINA在ctrl alt del之后可用,或者您应该搜索可用于GINA.DLL的脚本
MealstroM 2011年

2

检查此https ://technet.microsoft.com/zh-cn/library/ee617261.aspx...。有-Oldpassword参数,可以与-Newpassword参数一起实现此目的。请记住,如果您不是域管理员,则需要知道旧的密码才能执行此操作。另外,当您使用-Oldpassword参数时,请勿使用-reset参数。


好主意,但是正如我写的那样,我使用的是Windows XP SP3。您建议使用的不是每台计算机都可用的Active Directory PowerShell cmdlet。我会尝试一下!
丹尼斯·G

1

不幸的是,我不再处于同一系统环境中,但是应该注意,Sysinternals更新了其工具PsPasswd

您可以使用PsPasswd更改本地或远程计算机上的本地或域帐户的密码。

也许这就是解决方案-我仍然不知道是否可以使用该工具更改密码。我可以通过CTRL + ALT + DELETE更改密码。



-1

这篇知识库文章表明您不能使用该net命令,也不能没有域管理员特权。您可能可以使用PowerShell cmdlet来执行此操作,但是可能会运行各种域策略(例如,密码历史记录),并且可能仍需要域管理员权限。我怀疑你不走运。


4
是的,我说这是不可能的net,我要求一种特定的解决方案来编写此脚本,而不是因为“您可能能够做到”-我知道,我可能会做到。
丹尼斯·G

-2

只需在命令提示符下执行此操作...

净用户域\用户名*

(请注意空格后最后的星号)

它将提示您输入新密码,而不必输入旧密码。

使用此信息,您可以创建脚本或批处理文件以及用于密码的csv文件。


如果您读了这个问题,您会发现他已经尝试过了。
吕克(Luc)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.