微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

活动目录属性“badPwdCount”

问题:我们已经将AD服务器从2003年升级到2008年,由于某些“错误代码”,开发人员以这种方式进行编码,他直接将“badPwdCount”属性值转换为INT,并由于NULL值转换 – NULL引用exception – NULL不能转换为INT。

更大的问题:现在我们无法进行部署,因为有超过100个独立的应用程序依赖于此更改,而我们现在正在寻找最less的处理方法

背景:现在,这个“badPwdCount”属性的工作方式是,当用户login到域时,它将被设置为零,否则它是NULL。 问题是,这些用户都不会交互式地login,因为他们是外部的,我们通过API对他们进行身份validation,他们也不能使用API​​login。

问题:有人知道这个值是在registry还是在某个地方,我可以find并设置为零? 也想通过脚本启动每个用户的login,但也想收集其他想法…

什么是使用用户提供的密码encryption和解密string的简单方法,在本机Win32和.NET中都可以使用?

networking启动命令延迟?

如何用命令行压缩指定的文件

HKLM SYstem CurrentControlSet Control TimeZone@R_585_4045@ion TimeZoneKeyName损坏?

获取计算机上安装的所有驱动程序

badPwdCount的MSDN页面: http : //msdn.microsoft.com/en-us/library/windows/desktop/ms675244 (v=vs.85) .aspx

控制从C#应用程序的其他窗口

如何测量文件(硬盘)I / O的特性?

如何使我的应用程序被视为Windows中的通信程序

用C#中的Windows认编辑器打开一个图像

如何检测Windows是否通过局域网或WiFi通过C#

通常情况下,这很容易,只需要更新活动目录中的所有用户,并将值设置为0(如果为空)。 有多种方法可以做到这一点,例如脚本或代码,或批量更新工具。

在这种情况下,badPwdCount是一个不复制的特殊属性(即每个域控制器都不相同),据我所知,无法手动或通过脚本更新它,但是,我认为我有为您解决

对于每个域控制器,您应该能够轻松触发活动目录中的每个用户的单个失败登录,导致值递增。

既然你用C#标记了你的帖子,下面是一些C#代码可以帮你实现:

using System.DirectoryServices.AccountManagement; using System.DirectoryServices.ActiveDirectory;

using (Domain domain = Domain.GetComputerDomain()) { foreach (DomainController domainController in domain.DomainControllers) { using (PrincipalContext context = new PrincipalContext(ContextType.Domain,domainController.Name)) using (UserPrincipal userPrincipal = new UserPrincipal(context)) using (PrincipalSearcher searcher = new PrincipalSearcher(userPrincipal)) using (PrincipalSearchResult<Principal> results = searcher.FindAll()) { foreach (UserPrincipal user in results.OfType<UserPrincipal>()) { context.ValidateCredentials(user.SamAccountName,"THEREISNowAYTHISISTHECORRECTPASSWORD"); } } } }

PS。 如果这把你的广告搞砸了,我不承担责任!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐