Acho que você está tornando isso um pouco mais complicado do que precisa ser. Não há necessidade de um loop para encontrar seus usuários. Abrace o poder do PowerShell!
Import-Module Active Directory
$thresholdDate = (get-date).AddDays(-90)
$oldUsers = get-aduser -filter * -searchbase "ou=Users,ou=middle,ou=top,dc=contoso,dc=com" -properties whenCreated,LastLogonDate |
where {$_.whenCreated -lt $thresholdDate -And $_.LastLogonDate -lt $thresholdDate}
$date=Get-Date -Format "dMy"
$path="C:\Scripts\TestScript_disable_users_$date.csv"
$oldUsers | export-CSV -notypeinformation $path
$oldUsers | DisableADAccount
Apenas tome cuidado com as armadilhas de usar LastLogonDate . O valor só é atualizado para qualquer usuário a cada 12 dias ou mais: link