SceCli 0x57 密码策略事件 1202

SceCli 0x57 密码策略事件 1202

介绍一下背景。我有一个由 10 台计算机(2 个 DC 和 8 台笔记本电脑)组成的小型网络。当安全部门实施新政策时,DC 崩溃了,我们不得不重建它们。我们不得不将笔记本电脑重新加入它们并重建我们的 GPO。我的密码策略出现错误。

我在 GPO 上的设置中收到此错误。我的密码策略显示一条错误,指出

策略“密码”导致以下错误:尝试打开数据库时发生未知错误

我检查了我的事件日志,它给出了一个事件 1202,错误为 0x57,我检查了 winlogon.log,得到了以下内容:

Start processing undo values for 7 settings.
There is already an undo value for group policy setting <MinimumPasswordLength>.
There is already an undo value for group policy setting <PasswordHistorySize>
There is already an undo value for group policy setting <MaximumPasswordAge>.
There is already an undo value for group policy setting <MinimumPasswordAge>.
There is already an undo value for group policy setting <PasswordComplexity>.
There is already an undo value for group policy setting <RequireLogonToChangePassword>.
There is already an undo value for group policy setting <ClearTestPassword>.
Error 87: The parameter is incorrect.

整个密码策略显示带有 X 的红色圆圈。我检查并更改了默认域策略,使其与我的密码 GPO 相同,但它仍然显示红色 X。我们的安全检查器显示密码最小长度为 7,这是本地 GPEDIT 设置。在实践测试中,密码策略设置为 14(密码 GPO 设置)。所以我很困惑。所以我猜本地策略在某处控制密码设置?但实际上并非如此。在注册表中的哪里我可以检查实际设置并验证 GPO 是否设置正确。

如果有必要,请将此问题移至 ServerFault。

答案1

发生这种情况的原因有两个。一是 RequireLogonToChangePassword,二是最小密码长度大于 14。

Microsoft 在 Windows 2003 和 Windows 2008 R2 之间删除了 RequireLogonToChangePassword 选项。看来这个问题会影响以前有此标志的旧域,例如我们的域,它已有 18 年历史。

尽管我们的默认域策略的 GPTTMPL.inf 文件不再包含“RequireLogonToChangePassword”条目,但错误仍然发生。不仅每个成员服务器都记住了设置的撤消值(如下所示),而且我发现我们的“默认域策略”在密码策略中存在“歪曲”的设置。

如果启用 SciCli 的调试(注册表项 ExtensionDebugLevel=2),则以下内容显示 C:\Windows\Security\logs\winlogon.log 中的错误:

----Configure Security Policy...
        Start processing undo values for 7 settings.
        There is already an undo value for group policy setting <MinimumPasswordLength>.
        Undo value for the undefined group policy setting <PasswordHistorySize> wasn't reset successfully (87).  Undo value was not removed.
        There is already an undo value for group policy setting <MaximumPasswordAge>.
        There is already an undo value for group policy setting <MinimumPasswordAge>.
        There is already an undo value for group policy setting <PasswordComplexity>.
        Undo value for the undefined group policy setting <RequireLogonToChangePassword> wasn't reset successfully (87).  Undo value was not removed.
        There is already an undo value for group policy setting <ClearTextPassword>.
Error 87: The parameter is incorrect.

重置撤消值时出错。以下是我们的修复方法:

  1. 登录域控制器并从“组策略管理编辑器”编辑“默认域策略”GPO。
  2. 导航到计算机配置->策略->Windows 设置->安全设置->帐户策略->密码策略。
  3. 单击右侧窗格中的六个策略设置中的每一个并更改其设置,单击“应用”,然后将设置改回,再次单击“应用”。
  4. 如果最小密码长度超过 14,则将其设置为 14。
  5. 让域同步并从您正在测试的域成员上的命令提示符运行“gpupdate /force”。

如果此操作有效,您将在 C:\Windows\Security\logs\winlogon.log 中看到以下内容:

----Configure Security Policy...
        Start processing undo values for 7 settings.
        There is already an undo value for group policy setting <MinimumPasswordLength>.
        Undo value for undefined group policy setting <PasswordHistorySize> was reset successfully and removed.
        There is already an undo value for group policy setting <MaximumPasswordAge>.
        There is already an undo value for group policy setting <MinimumPasswordAge>.
        There is already an undo value for group policy setting <PasswordComplexity>.
        Undo value for undefined group policy setting <RequireLogonToChangePassword> was reset successfully and removed.
        There is already an undo value for group policy setting <ClearTextPassword>.
    Configure password information.

请注意,“RequireLogonToChangePassword”现在表明已成功重置。

如果您需要使用大于 14 位的密码,则必须使用“细粒度密码策略”:https://blogs.technet.microsoft.com/reference_point/2013/04/12/fine-grained-password-policies-gui-in-windows-server-2012-adac/

答案2

我很抱歉,大家...这是这个问题的答案。

问题摘要 • 安全日志在重启后停止工作。 • 应用程序日志显示以下警告错误:安全策略已传播并出现警告。0x57:参数不正确。

问题原因

安全策略 GPO 中的一项设置已进入新域。该域已多次升级,最早可追溯到 2000 年代初,其中有一个设置是此设置残留的,需要删除。它导致出现 0x57 错误和错误 87:参数不正确。

发现 相关服务器上的 RSoP 中显示了六个密码策略设置,位于计算机配置 --> Windows 设置 --> 安全设置 --> 帐户策略 --> 密码策略下有錯誤。

  1. 强制密码历史记录
  2. 密码最长使用期限
  3. 密码最短使用期限
  4. 最小密码长度
  5. 密码必须符合复杂性要求
  6. 使用可逆加密存储密码

在 RSoP 中显示黄色警告标志,如果单击其属性(计算机配置),则“错误信息”会显示导致错误的原因:

安全已请求再次处理其策略设置。这可能是由于在先前处理策略期间发生了非严重错误。附加信息:安全策略已传播并出现警告。 0x57:参数不正确。

为了识别特定的错误,当您启用 winlogon.log(见下文)时,它会在运行 gpupdate /force 后提供有关 AD GPO 的详细信息。

To create it, go to regedit and track following key:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\GPExtensions\{827D319E-6EAC-11D2-A4EA-00C04F79F83A}

Click the key ExtensionDebugLevel and enter 2 as a Data.

打开 C:\Windows\security\logs\winlogon.log 会详细记录与 GPO 相关的所有错误。以下显示了与 RSoP 中的错误相关的错误:----配置安全策略...开始处理 7 个设置的撤消值。组策略设置 已有撤消值。组策略设置 已有撤消值。组策略设置 已有撤消值。组策略设置 已有撤消值。组策略设置 已有撤消值。组策略设置 已有撤消值。组策略设置 已有撤消值。组策略设置 已有撤消值。错误 87:参数不正确。配置密码信息时出错。开始处理 3 个设置的撤消值。组策略设置 已有撤消值。组策略设置 已有撤消值。组策略设置 已有撤消值。组策略设置 已有撤消值。配置帐户强制注销信息。

与上述 GPO 中的安全安全策略绑定的 GPO 显示在 winlogon.log 文件中:

this is the last GPO.
**************************

Make a local copy of \\**YOUR DOMAIN**\sysvol\**YOUR DOMAIN**\Policies\{31B2F340-016D-11D2-945F-00C04FB984F9}\Machine\Microsoft\Windows NT\SecEdit\GptTmpl.inf.
GPLinkDomain GPO_INFO_FLAG_BACKGROUND )

查看 sysvol 中的 gptTmp.inf 文件时(只需将此位置放入浏览器或在记事本中打开),包含以下信息,特别令人感兴趣的是需要登录更改密码 = 0键和值。AD GPO 管理和机器上的 RSoP 中有六个值:

  1. 强制密码历史记录
  2. 密码最长使用期限
  3. 密码最短使用期限
  4. 最小密码长度
  5. 密码必须符合复杂性要求
  6. 使用可逆加密存储密码

但 RequireLogonToChangePassword = 0 不是其中之一。直觉上,通过从 GPTTMP.INF 中删除此设置可以解决这个问题。

[Unicode]
Unicode=yes
[System Access]
MinimumPasswordAge = 1
MaximumPasswordAge = 90
MinimumPasswordLength = 15
PasswordComplexity = 1
PasswordHistorySize = 9
LockoutBadCount = 5
ResetLockoutCount = 30
LockoutDuration = 30
RequireLogonToChangePassword = 0
ForceLogoffWhenHourExpire = 0
ClearTextPassword = 0
[Version]
signature="$CHICAGO$"
Revision=1
[Kerberos Policy]
MaxTicketAge = 10
MaxRenewAge = 7
MaxServiceAge = 600
MaxClockSkew = 5
TicketValidateClient = 1
[Service General Setting]
"SharedAccess",4,"D:AR(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;SY)(A;;CCLCSWLOCRRC;;;IU)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"
[Registry Values]
MACHINE\System\CurrentControlSet\Control\Lsa\MSV1_0\AuditReceivingNTLMTraffic=4,2
MACHINE\System\CurrentControlSet\Control\Lsa\MSV1_0\RestrictSendingNTLMTraffic=4,1
MACHINE\System\CurrentControlSet\Services\Netlogon\Parameters\AuditNTLMInDomain=4,7
MACHINE\System\CurrentControlSet\Control\Print\Providers\LanMan Print Services\Servers\AddPrinterDrivers=4,0
MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\PasswordExpiryWarning=4,14
MACHINE\System\CurrentControlSet\Control\Lsa\NoLMHash=4,1

解决方案

从 GPTTMP.inf 中删除值 RequireLogonToChangePassword = 0。请务必遵循这些说明。根据以下信息https://social.technet.microsoft.com/Forums/windows/en-US/09270ae3-264d-4e4a-9cd3-9657139e58e8/manually-edit-the-gpttmplinf-file-settings-not-visible-in-gpmc-settings-report?forum=winserverGP

手动编辑 GptTmpl.inf 文件后,请增加 GPO 版本以确保保留策略更改。为此,请使用以下方法之一。

方法 1:使用组策略对象编辑器 1. 打开组策略对象编辑器。 2. 进行更改。 3. 关闭组策略对象编辑器。

方法 2:手动编辑 Gpt.ini 文件

手动增加 GPO 版本,编辑控制组策略模板版本号的 Gpt.ini 文件。 去做这个:

1. Open the Gpt.ini file with a text editor, such as Notepad. 
2. Increase the version number to a number that is large enough to guarantee that normal replication will not make the new version number become outdated before the policy can be reset. It is better to increment the number by either adding the number "0" to the end of the version number, or the number "1" to the beginning of the version number.
3. Save the Gpt.ini file, and then close it.

此外,使用 Secedit 工具手动更新 GPO 来应用新 GPO。为此,请在命令提示符下键入 secedit /refreshpolicy machine_policy /enforce,然后按 ENTER。然后,在事件查看器中检查应用程序日志中的事件 1704,以验证策略传播是否成功

相关内容