【发布时间】:2023-02-10 21:54:40
【问题描述】:
我观察到 Active Directory 日期对象的设置方式与使用 -Filter 检索和搜索它们的方式之间存在差异。观察:
首先我设置一个到期日期:
PS C:\WINDOWS\system32> set-aduser testaccount -AccountExpirationDate '12/25/2024 00:05:00' -Credential $CRED
PS C:\WINDOWS\system32> Get-ADUser testaccount -Properties AccountExpirationDate
AccountExpirationDate : 12/25/2024 12:05:00 AM
DistinguishedName : CN=Test Account,OU=Test,OU=CU Users,DC=ad,DC=contosso,DC=com
Enabled : True
GivenName : Systems
Name : Test Account
ObjectClass : user
ObjectGUID : {snip}
SamAccountName : testaccount
SID : {snip}
Surname : Test1c
UserPrincipalName : testaccount@contosso.com
然后我尝试搜索具有该到期日期的所有用户,有几种方法:
PS C:\WINDOWS\system32> Get-ADUser -Filter 'AccountExpirationDate -eq "12/25/2024 00:05:00"' -Credential $CRED
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32> Get-ADUser -Filter 'AccountExpirationDate -eq "12/25/2024 12:05:00 AM"' -Credential $CRED
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32> $T=(get-date '12/25/2024 12:05:00 AM')
PS C:\WINDOWS\system32> Get-ADUser -Filter 'AccountExpirationDate -eq $T' -Credential $CRED
PS C:\WINDOWS\system32>
纳达。我想我在 AD 如何存储该日期值以及如何检索和显示它之间遗漏了一些东西。
【问题讨论】:
-
您需要一个日期时间:Get-ADUser -Filter "AccountExpirationDate -eq [DateTime].Parse('12/25/2024 12:05:00 AM')" -Credential $CRED
-
@jdweng 不,那是错误的。
-
@jdweng 几乎是正确的:PS C:\WINDOWS\system32> $T=[DateTime]"12/25/2024 12:05:00 AM" PS C:\WINDOWS\system32> Get-ADUser -Filter 'AccountExpirationDate -eq $T' 但是还是不行。
标签: powershell active-directory