![由于密码过于复杂,用户无法更改密码](https://linux22.com/image/697011/%E7%94%B1%E4%BA%8E%E5%AF%86%E7%A0%81%E8%BF%87%E4%BA%8E%E5%A4%8D%E6%9D%82%EF%BC%8C%E7%94%A8%E6%88%B7%E6%97%A0%E6%B3%95%E6%9B%B4%E6%94%B9%E5%AF%86%E7%A0%81.png)
在我的一个客户的子域中,他遇到了一个问题,即由于“复杂性等等”,许多(看起来)随机用户无法更改密码。然而,事实并非如此,因为:
a) 管理员重置新密码或
b)用户有标记“登录时必须重置密码”
我到目前为止尝试过的:
GPO:只有默认域策略,其中包含密码设置。设置如下:
- 长度 10
- 启用复杂性
- 历史记录设置为 5,但在这种情况下不相关(尝试了不同的密码)
- 其余均为未定义或 0
PDC 上的密码提供程序:我读到您可以通过注册表使用自定义密码提供程序。我使用一切正常的域检查了它。它似乎是默认的。我看到的唯一东西就是设置
EveryoneIncludesAnonymous = 0
。在我为用户创建了 PSO 后,该用户仍然无法更改其密码,配置应该可以正常工作。似乎这些配置没有应用。
PDC 可用
Set-ADAccountPassword
在域控制器上也不起作用。用户帐户的安全描述符看起来还不错。每个人都有权更改密码。
在 ADUC 中,用户属性正常。用户无法更改密码 = $false,等等。
输出net user /domain Myuser
User name cardm004
Full Name Cardman, Michael
Comment Test User
User's comment
Country/region code 000 (System Default)
Account active Yes
Account expires Never
Password last set 16.01.2017 13:14:58
Password expires Never
Password changeable 15.02.2017 13:14:58
Password required Yes
User may change password Yes
Workstations allowed All
Logon script login.cmd
User profile
Home directory
Last logon 18.01.2017 08:14:01
Logon hours allowed All
Local Group Memberships
Global Group memberships *Domain Users
The command completed successfully.
输出net accounts
Force user logoff how long after time expires?: Never
Minimum password age (days): 0
Maximum password age (days): 37201
Minimum password length: 10
Length of password history maintained: 5
Lockout threshold: Never
Lockout duration (minutes): 30
Lockout observation window (minutes): 30
Computer role: Workstation
我现在没有主意了。我该尝试什么来找出用户无法更改密码的原因?
更新
我发现,组策略建模对不同的用户显示不同的配置。对于无法更改密码的用户,不会显示“密码设置”和“帐户锁定策略”部分。因此,我假设域控制器上可能存在复制问题。我检查了复制状态repadmin /showrepl
,结果正常。我检查了所有 3 个域控制器上的 sysvol 中的文件内容,发现它们完全相同。因此,不知何故,DC 是最新的,但计算机没有获得配置。
GPUpdate /force
和GPResult /r
,还是GPResult /h file.html
很好看,没有显示任何错误。重启后GPUpdate /force
错误没有改变。
GPResult /r
显示正确的站点,并且显示快速连接,Default Domain Policy
(设置完成的地方)显示为已应用。
更新 2
我创建了一个附加 GPO 来设置密码设置。为此,我创建了一个 OU,我将计算机和用户帐户移到该 OU,并将该 GPO 链接到enforced = $true
该 OU。GPResult /h
显示正确的应用配置,Net user /domain testuser
但未显示。本地策略设置与 GPO 相同。
问题仍然存在。
更新 3
客户向微软提交了一张票。他们还没有解决方案,但发现 GP 似乎存在问题:用户及其设备被移至单独的 OU 进行测试,并且禁用了继承。他们为其应用了新的 GPO,并设置了多个密码。GPResult
显示了更新后的设置,但用户仍然无法更改密码。
然后,他们删除了 GP-link 并再次启用继承,测试 GPO 的设置仍保留在系统中。默认域策略并未应用(它们低于测试 GPO),并且用户仍然无法更改密码。
我会随时向您更新最新情况,也许你们中的一个人有一天会遇到这个问题,或者在微软之前找到解决方案。
答案1
IIRC 该错误是任何密码更改问题的一般错误。
根据您的评论:
然而,在以下情况下,情况就不一样了:
a) 管理员重置新密码或
b)用户有“登录时必须重置密码”标志
我想说的是,问题在于你的密码策略针对其中之一或两者进行了设置Minimum Password Age
。Enforce Password History
很可能第一个是罪魁祸首。
编辑:
根据您的最新更新,您可以看到:
Password changeable 15.02.2017 13:14:58
显示该密码30天内不可更改。
现在,您声明您的最低密码年龄设置为 0。
这让我得出两个可能的结论:
帐户或 OU 阻止了策略的继承……尽管它显示了带有“净帐户”的正确策略,但特定用户似乎并未应用该策略。
有些 DC 阻止继承并且未获取正确的设置。请参见此处:https://community.spiceworks.com/topic/1838052-minimum-password-age-password-changeable
检查并确认 GPMC 中没有进行任何 GPO 阻止。然后检查并确保用户进行身份验证的 DC、其计算机和其用户帐户...所有 3 个都具有“包括可从此对象的父级继承的权限”。
答案2
您的命令输出net user /domain Myuser
目前反映密码的最低使用期限为 31 天。看来您需要修改此用户的 PSO,并在该对象中将密码最低使用期限设置为 0。
另外,您是否已确认 PSO 已成功应用于用户或组?如果是,您应该会看到msDS-ResultantPSO
在用户的 AD 帐户中填充了属性。您可以使用属性选项卡上的 ADUC 或通过运行以下 PowerShell 命令轻松检查这一点:
Import-Module ActiveDirectory
Get-ADUser cardm004 -Properties msDS-ResultantPSO | FL
顺便提一下,运行net accounts
将返回以下设置本地计算机帐户. 本地帐户设置与域帐户设置是分开配置的。
答案3
愚蠢的建议,但是您是否已经验证用户的密码是否符合要求:
- 密码不得包含用户的完整萨姆账户名(帐户名称)值或整个显示名称(全名)值。 两项检查均不区分大小写:
- 这萨姆账户名仅检查其是否是密码的一部分。如果萨姆账户名长度少于三个字符,则跳过此检查。
- 这显示名称解析分隔符:逗号、句号、破折号或连字符、下划线、空格、磅号和制表符。如果发现任何这些分隔符,则显示名称被拆分,并确认所有解析的部分(标记)不包含在密码中。长度少于三个字符的标记将被忽略,并且不会检查标记的子字符串。例如,名称“Erin M. Hagens”被拆分为三个标记:“Erin”、“M”和“Hagens”。由于第二个标记只有一个字符长,因此将被忽略。因此,此用户的密码中不能包含“erin”或“hagens”作为子字符串。
- 密码必须包含以下五类字符中的三类字符:
- 欧洲语言的大写字符(A至Z、带变音符号、希腊文和西里尔文字符)
- 欧洲语言的小写字符(a至z、尖音符号 s、带变音符号、希腊文和西里尔文字符)
- 十进制数字 (0至9)
- 非字母数字字符:~!@#$%^&*_-+=`|\(){}[]:;"',.?/
- 任何被归类为字母字符但非大写或小写的 Unicode 字符。这包括亚洲语言的 Unicode 字符
根据:https://technet.microsoft.com/en-us/library/cc786468%28v=ws.10%29.aspx
答案4
说实话,这听起来像是您遇到了通过本地 GPO 编辑设置的辅助产品策略。类似于 ScriptLogic(又名 Desktop Authority)。
您会在旧电脑上看到以下一些症状:
- PC 上的 system32 或 C: 根目录中存在 SLStart 或 wKiX32。
- 如果它之前存在并被删除,您会看到电脑上所有之前安装的程序都不会出现在添加/删除程序中。
已经……几年了。知道最终解决办法是什么吗?