Powershell中是否可以列出域中所有未设置帐户到期日期的AD帐户?即帐户到期日期设置为“从不”。
我可以利用Get-ADuser获取单个帐户的到期时间。
get-aduser username | Select-Object -Property name,Enabled,AccountExpirationDate,DistinguishedName | Where-Object {$_.AccountExpirationDate -eq '`n'}
但是,是否可以使用“ Search-ADAccount -AccountExpiring .....”获取域中未设置帐户到期日期的所有帐户的列表,或者采用一种更好的方法?
当我使用下面的命令时,我没有得到任何退货信息,但是我设置了没有设置到期日期(即从不)的测试帐户来测试该命令,但是该帐户未显示在结果中。
Search-ADAccount -AccountExpiring | Select-Object -Property name,AccountExpirationDate | Where-Object {$_.AccountExpirationDate -eq '`n'}
我找到了一个结合以上Paxz答复和此Technet线程的解决方案。'AccountExpirationDate'很难在不导出每个用户帐户过期日期并将其格式化为可读的日期时间字符串的情况下有效地从广告中滤除。
上面链接的Technet文章解释说,“ accountExpires AD属性是一个大整数(64位),表示自1601年1月1日上午12:00以来的100纳秒间隔的日期(以UTC为单位)。AccountExpirationDate参数是一个属性方法,将accountExpires的值转换为本地时区中的相应日期。根据其他研究,如果将帐户设置为“永不过期”,则其“ accountexpires”整数为9223372036854775807。
“ Get-ADUser”可用于过滤所有“ accountexpires”整数等于“ 9223372036854775807”的帐户。这样避免了为域中每个帐户转换日期的需要。
Get-ADUser -filter {Enabled -eq 'True' -and accountexpires -eq '9223372036854775807'} | Select-Object name,enabled,accountexpires,distinguishedName
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句