我目前正在处理 Active Directory,我需要知道某些帐户何时被禁用。有last_modified(日期)属性,但我不确定在AD上启用/禁用帐户是否会触发last_modified的更改。如果是,是否有其他属性在修改时也会改变它(可能是这种情况......)?
有没有办法通过检查属性或执行 cmd/powershell 脚本来确定帐户何时被禁用?
谢谢
有点儿。但它不会100%可靠。
要禁用帐户,userAccountControl
属性已更新。
是的,正在更新userAccountControl
将触发更新whenChanged
属性(“最后修改”日期)。
还有一个计算属性称为msDS-ReplAttributeMetaData
只要您的域上启用了该功能,它就会告诉您属性何时发生更改。在来自的帮助下本文,我将一些代码放在一起以拉出上次的userAccountControl
属性已更改(设置$username
到您要查看的帐户名称):
$username = "whatever"
$metaData = "<root>" + (Get-ADUser $username -Properties "msDS-ReplAttributeMetaData")."msDS-ReplAttributeMetaData".Replace([char]0," ") + "</root>"
$xmlmetaData = [XML]$metaData
$userAccountControlModified = ($xmlmetaData.root.DS_REPL_ATTR_META_DATA |
Where {$_.pszAttributeName -eq "userAccountControl" } |
Sort -Property ftimeLastOriginatingChange -Descending |
Select -First 1).ftimeLastOriginatingChange
然而,作为的文档userAccountControl显示,该属性是一个位标志,可以打开和关闭帐户的多个选项,而不仅仅是启用/禁用。
所以虽然你可以得到最后一次的日期userAccountControl
已更新,您无法保证该帐户就是在该时间被禁用的。这些选项中的任何其他选项都可能在禁用后被设置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)