Get-ADUser with whenCreated in filter

Get-ADUser with whenCreated in filter

我正在查找在两个时间戳之间创建的 AD 用户帐户。但是,我面临这个多余的问题,即在使用 whenCreated 属性以及 -gt-ge 或 [=14 时无法使用 Get-ADUser 获取 AD 用户对象=] (cmdlet 的 -Filter-LDAPFilter 参数中的 -le) 除外。该 cmdlet 运行良好,仅在使用 -le 运算符时立即开始返回 AD 用户对象。

下面是尝试使用 -LDAPFilter-ge-lt-gt 时的错误快照,

This 似乎是一个相关的 post。但是,我在那里找不到可行的解决方案,并且当尝试将 ! (非运算符)与 -le 一起使用时(使 -gt 生效),还是收到超时异常。我也试过将 -ResultPageSize 值减少到 5,仍然没有成功 - 超时错误被抛出。

我想在服务器端进行过滤,因为目录很大并且检索所有对象然后在客户端进行过滤效率不是很高。 非常感谢任何建议或解决方法。谢谢。

PowerShell 使用 属性 Created.

方便地将 whenCreated 属性从 UTC 的 GeneralizedTime 格式转换为本地日期时间

我目前无法对此进行测试,但其中任何一个都应该有效:

# define the start and end dates (Local time)
$startDate = (Get-Date -Year 2021 -Month 1 -Day 14).Date  # discard the time part, so set to midnight
$endDate   = (Get-Date).Date 

尝试:

Get-ADUser -Filter "Created -gt $startDate -and Created -le $endDate"

或之后使用 Where-Object 子句过滤:

Get-ADUser -Filter * -Properties Created | Where-Object { $_.Created -gt $startDate -and $_.Created -le $endDate }