我在从 LDAP 过滤器中排除 OU 时遇到问题
$DaysAgo = (Get-Date).AddDays(-31)
$ft = $DaysAgo.ToFileTime()
Get-QADComputer -SizeLimit 0 -IncludeAllProperties
-SearchRoot 'DC=My,DC=Domain,DC=Local'
-LdapFilter "(&(objectcategory=computer)(lastLogonTimeStamp<=$ft)
(!(ou:dn:=DisabledPCs))(|(operatingsystem=Windows 2000 Professional)
(operatingSystem=Windows XP*)(operatingSystem=Windows 7*)
(operatingSystem=Windows Vista*)(operatingsystem=Windows 2000 Server)
(operatingsystem=Windows Server*)))"
我正在寻找所有未登录 AD 超过 31 天且尚未在 OU“DisabledPCs”中的 Windows 操作系统系统,我将把它们移到那里。
当我现在运行它时,我得到了我正在寻找的所有系统,包括那些在“DisabledPCs”OU 中的系统......我尝试了几种变体,包括:
(&(!(ou:dn:=DisabledPCs)))
以及将它放在过滤器中的不同位置(并不是我认为它会有所作为,但我显然不知道......)
提前感谢您的帮助,
-dboftlp