I know this is an old post, but thought I'd respond as I found the post when doing a search for a similar question.
The built-in report "Users: AD password expired" can be updated with tblADusers.PasswordNeverExpires = 'False'
I also included tblADusers.IsEnabled = 'True' to make sure that disabled accounts are not included.
So I have:
Select Top 1000000 Case
When tblADusers.Displayname Is Null Or
tblADusers.Displayname = '' Then tblADusers.Userdomain + '\' +
tblADusers.Username
Else tblADusers.Displayname
End As Displayname,
tblADusers.Department,
tblADusers.Title,
tblADusers.Username,
tblADusers.Userdomain,
tblADusers.IsEnabled As EnabledInAD,
'usersm.png' As Icon,
tblADusers.PasswordExpirationDate,
tblADusers.Lastchanged,
tblADusers.PasswordNeverExpires,
tblADusers.PasswordLastSet
From tblADusers
Where tblADusers.IsEnabled = 'True' And tblADusers.PasswordExpirationDate <
GetDate() And tblADusers.PasswordNeverExpires = 'False'
Order By tblADusers.PasswordExpirationDate,
Displayname