我正在使用 ssh 客户端登录服务器,以便从提示符发出密码更改命令。在域服务器上尝试执行此操作时出现问题。我使用管理员帐户(不是管理员帐户)登录并尝试更改用户密码(net user UserName password /domain),但出现以下错误:
发生系统错误 5。
拒绝访问。
现在,如果我使用管理员帐户登录,命令将成功完成。因此,一定存在某种策略或安全权限,允许管理员帐户执行管理员帐户无法执行的操作。我比较了组,发现管理员帐户是所有必要组的一部分。有没有人知道它可能位于何处?
答案1
即使您说您检查了组成员身份,但听起来您的“管理员”帐户并不具有与“管理员”帐户相同的组成员身份。
带有“/ALL”参数的 Windows“whoami.exe”(不是 Cygwin whoami)将显示每个用户的组成员身份,以便您可以进行比较。
(理论上,可以修改 AD 中用户对象的权限,以拒绝“管理员”用户更改其密码的权限,同时仍然让“管理员”成为与“管理员”属于同一组的成员,但我认为这极不可能。)
为了完全排除与 cygwin SSH 有关的任何事情,为什么不使用“admin”凭据本地登录到服务器计算机并从 NT 命令提示符尝试“NET USER”?
编辑:
实际上,没有任何组策略设置会影响更改密码的能力。如果您的“管理员”帐户是“企业管理员”的成员,则应该能够重置 Active Directory 中任何其他帐户的密码。正如我上面所说,可以对 AD 进行一些“调整”来改变这种行为,但我发现这些都不太可能发生。我认为还有其他事情正在发生。
如果您没有启用帐户管理事件失败审核,那么现在是时候创建一个链接到“域控制器”OU(首选)的新 GPO 或修改“默认域控制器”GPO(非首选 - 您真的应该保留此 GPO“库存”)并启用帐户管理事件失败审核。深入研究“计算机配置”、“Windows 设置”、“安全设置”、“本地策略”和“审核策略”,并在“帐户管理”上启用失败审核。
在您的域控制器计算机上运行“gpupdate”,再次尝试您的“NET USER”,并检查所有 DC 上的安全事件日志,查看哪一个记录了失败的密码更改。
我很想知道发生了什么。就像我说的,我预计这只是一些被忽视的简单事情……我们拭目以待……
答案2
第一个管理员帐户,它是否具有域内的域管理员或帐户操作员组成员身份?或者它是否被授予了在用户帐户上重置密码的权限?由于您指定了 /domain,因此更改是针对域用户帐户进行的,因此权限需要在域级别。
答案3
经过多年的努力,我终于找到了解决此类问题的方法。现在,如果我想创建一个“管理员”帐户,我总是通过复制管理员帐户来实现。在 AD 用户和计算机中,右键单击管理员帐户并选择“复制”。这样可以节省很多时间!
当然,拥有多个管理员帐户是否是一种好的做法仍有待商榷......
JR
答案4
网络用户? 噁心. 你应该使用数据模型。
DSMOD user userDN -pwd newPassword -d yourDomain.loc -u yourDomain\yourAdminUserAcct
如果您不知道 userDN 是什么,请使用以下命令:
DSQUERY user -name userName -d yourDomain.loc -u yourDomain\yourAdminUserAcct
如果您想要更进一步,您可以将 DSQUERY 的结果直接传输到 DSMOD,如下所示:
DSQUERY user -name userName -d yourDomain.loc -u yourDomain\yourAdminUserAcct | DSMOD user -pwd newPassword -d yourDomain.loc -u yourDomain\yourAdminUserAcct
如果你想设置用户下次登录时必须更改密码标记,然后添加-mustchpwd 是到 DSMOD 参数字符串,如下所示:
DSQUERY user -name userName -d yourDomain.loc -u yourDomain\yourAdminUserAcct | DSMOD user -pwd newPassword -d yourDomain.loc -u yourDomain\yourAdminUserAcct -mustchpwd yes