Can I use a variable in and LdapFilter with Get-QADComputer? i.e.:
$31DaysAgo = (Get-Date).AddDays(-31)
$ft = $31DaysAgo.ToFileTime()
$StComps = Get-QADComputer -SizeLimit 0 -IncludeAllProperties -SearchRoot `
'DC=MY,DC=DOMAIN,DC=LOCAL' -LdapFilter '(&(objectcategory=computer) `
(pwdLastSet<=$ft)(|(operatingsystem=Windows 2000 Professional) `
(operatingSystem=Windows XP*)(operatingSystem=Windows 7*) `
(operatingSystem=Windows Vista*)(operatingsystem=Windows 2000 Server) `
(operatingsystem=Windows Server*)))'
If not, how else can I filter out the pwdLastSet filter? Should I just do it after in a pipe? i.e.:
$StComps = Get-QADComputer -SizeLimit 0 -IncludeAllProperties -SearchRoot `
'DC=MY,DC=DOMAIN,DC=LOCAL' -LdapFilter '(&(objectcategory=computer) `
(|(operatingsystem=Windows2000 Professional)(operatingSystem=Windows XP*) `
(operatingSystem=Windows7*)(operatingSystem=Windows Vista*) `
(operatingsystem=Windows 2000 Server)(operatingsystem=Windows Server*)))' `
| Where {$_.pwdLastSet -gt $ft}
or even
| Where {$_.LastLogonTimeStamp -gt $ft}
I know this is going to be slower, but if I have to, I'll go this route.
Also, if anyone know's off the top how to time how long a code snippet would take to run, that hint would be greatly appreciated =) ktxbye
Thanks, -dboftlp
Your first query should work, but you'll need to put the LdapFilter in double quotes
"
- PowerShell doesn't expand variables within single quotes.