Just a simple one liner to find all domain users with expired passwords
Get-ADUser -filter * -properties PasswordLastSet, PasswordExpired, PasswordNeverExpires | sort Name | Where {$_.PasswordExpired -eq 'true'} | select Name, Samaccountname, PasswordExpired, PasswordLastSet | Out-GridView -Title "User with expired password" -OutputMode Multiple