【发布时间】:2021-11-23 09:09:24
【问题描述】:
我正在尝试按我的禁用用户的最后一次登录日期对他们进行排序。
我使用了以下命令:
Get-ADUser -Filter "samaccountname -eq '$user' -and enabled -eq '$False'" -Properties * |
select samaccountname, displayname, emailaddress, LastLogonDate |
Sort-Object -Property LastLogonDate
我不确定为什么,但它不会对 LastLogonDate 属性进行排序。我不断收到一份未排序的禁用用户列表。
【问题讨论】:
-
我无法在选择相同属性的情况下重现该错误。它按预期从最旧到最新排序。
-
LastLogonDate是从属性lastLogonTimeStamp计算/转换的本地日期时间。它不会在整个域中复制,因此您需要遍历 DC 列表的搜索。(Get-ADDomainController -Filter *).Hostname | ForEach-Object {..}并为您找到的 LastLogonDate 选择最新值以获得最准确的日期。看看here -
顺便说一句。当您只关注一小部分属性时,使用
-Properties *是一个坏习惯。在您的情况下,默认情况下会返回-Properties displayname, emailaddress, LastLogonDate,因为 SamAccountName 会在其他人中返回。
标签: powershell