Sorted it now: $StrDCs = [System.DirectoryServices.ActiveDirectory.Domain]::getcurrentdomain() | foreach{$_.DomainControllers | foreach{$_.Name}} $lastLogonIntervalLimit = ((date).ToUniversalTime()).AddDays(-30).ToFileTime() $StrDCs | foreach-object { $Erroractionpreference = "Silentlycontinue" $strFilter = "(&(objectCategory=person)(objectClass=user)(lastlogon<="+$lastLogonIntervalLimit+"))" $StrEachDC = "LDAP://"+$_.split(".")[0 $objDomain = New-Object System.DirectoryServices.DirectoryEntry $StrEachDC $objSearcher = New-Object System.DirectoryServices.DirectorySearcher $objSearcher.SearchRoot = $objDomain $objSearcher.PageSize = 100 $objSearcher.Filter = $strFilter $objSearcher.SearchScope = "Subtree" $strProps = "samaccountname,givenname,sn,displayname,lastlogon,pwdlastset,description,l,company,physicaldeliveryofficename,extensionAttribute4,useraccountcontrol,info,whencreated,lastlogontimestamp" $strProps.split(",") | %{[void]$objSearcher.PropertiesToLoad.Add($_);} $StrResults = $objSearcher.findall() $Erroractionpreference = "Continue" $StrAllResults += $StrResults } $StrAllResults |