![为什么我不能使用 ldifde 工具更改密码?](https://linux22.com/image/802423/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%88%91%E4%B8%8D%E8%83%BD%E4%BD%BF%E7%94%A8%20ldifde%20%E5%B7%A5%E5%85%B7%E6%9B%B4%E6%94%B9%E5%AF%86%E7%A0%81%EF%BC%9F.png)
我正在尝试使用 ldifde 工具通过以下命令更改用户密码:
ldifde -i -h -f .\password.ldf -J ./
以下是 password.ldf 文件中的一个条目:
dn: CN=pwtest,OU=Engineering,DC=MyDc,DC=com
changetype: modify
replace: unicodePwd
unicodePwd::Ik51bWJza3VsbDIxIg==
-
在此示例中,我更改了域和密码,但我确保我使用的密码符合密码策略。我通过将其中一个用户的密码重置为我尝试更新所有用户的密码来实现这一点。
我收到以下错误:
Add error on entry starting on line 2: Unwilling To Perform
The server side error is: 0x1f A device attached to the system is not functioning.
The extended server error is:
0000001F: SvcErr: DSID-031A129B, problem 5003 (WILL_NOT_PERFORM), data 0
我通过 RDP 以管理员身份登录到机器,并使用本地 powershell。我昨天使用此方法更新了密码,效果很好。据我所知,现在唯一不同的是,用户现在有密码,我正在尝试更改它们。此外,这是 Windows server 2012 Datacenter。
答案1
AD 需要 SSL 连接才能更改密码。尝试将 -t 636 添加到命令中。
例如 ldifde -i -h -t 636 -f .\password.ldf -J ./
您可能缺少其他依赖项,例如高加密包/等等。
从评论中添加:
这和你如何编码密码有关。你错过了一个关键步骤。这不仅仅是将文本转换为 base64。使用 www.rlmueller.net/Base64.htm 中的 PwdToBase64.txt 将其重命名为 .vbs,它就会正确地对其进行编码。