Get-QADUser -Enabled -SizeLimit 0 | where {-not $_.AccountIsExpired}
Получите-QADUser поддерживающий-AccountNeverExpires-SizeLimit 0
Необходимо смочь сделать это с запросом ADSI ADO:
(&(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2))(|(accountExpires=9223372036854775807)(accountExpires=0)))
сделает все неотключенные отчеты, которые не истекают.
(&(objectCategory=person)(objectClass=user)(!userAccountControl:1.2.840.113556.1.4.803:=2)(accountExpires<=127818648000000000))
даст Вам все неотключенные пользовательские объекты, которые истекли до 16.01.2006
Вот пример того, как сделать запрос ADSI ADO:
$strbase = "<LDAP://dc=ms,dc=com>"
$strFilter = "(&(objectcategory=user)(useraccountcontrol=66048))"
$strAttributes = "sAMAccountName,displayname"
$strScope = "subtree"
$strQuery = "$strBase;$strFilter;$strAttributes;$strScope"
$objConnection = New-Object -comObject "ADODB.Connection"
$objCommand = New-Object -comObject "ADODB.Command"
$objConnection.Open("Provider=ADsDSOObject;")
$objCommand.ActiveConnection = $objConnection
$objCommand.CommandText = $strQuery
$objRecordSet = $objCommand.Execute()
И согласно этому сообщению... Вы получите ответ, намного более быстрый этот путь затем, Вы были бы с cmdlet. Также вот является замечательный гид по ADO ADSI, это - ссылки примеры VBscript, но можно легко перевести понятия назад в Powershell.