powershell problem with expired passwords

Mirjam Block
Mirjam Block used Ask the Experts™
on
I have a problem with getting the correct password expire date form an active directory:

I need to notify users in timely fashion on expired passwords , so i found a script which worked for other customers:

https://gallery.technet.microsoft.com/Password-Expiry-Email-177c3e27

with this customer i get a few valid values back but not the user which I'm expecting (one who has to change the password in 2 days from now)

with the command net user [username] /domain

i get the values for this user:
Password last set            7/24/2015 11:17:56 AM
Password expires             9/4/2015 11:17:56 AM
Password changeable          7/24/2015 11:17:56 AM

when i run a powershell script:

Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed"|Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}

i get the following output for the same user:
Displayname                             ExpiryDate
-----------                                      ----------
[display name user]                  1/1/1601 1:00:00 AM

so is'clear from the powershell command the paswword will not expire and the script wont sent the email to this user

I'm pretty sure i'm missing something. where comes the difference from in the net user command and the powershell script
and what can i do to solve this ?
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
A return value of 1/1/1601 is normal for a user whose password has been set to expire at next logon. Excluding users with expired passwords.

Get-ADUser -filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} –Properties PasswordExpired, DisplayName, msDS-UserPasswordExpiryTimeComputed | ? {$_.PasswordExpired -eq $false} | Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}} 

Open in new window

Mirjam BlockInfrastructure Specialist and Project Manager

Author

Commented:
could it be that i get that value when i'm allowed to change the password ?

in the net user command i get a different date than the 1/1/1601 value. do i look at the wrong field with my powershell command ?
Will SzymkowskiSenior Solution Architect
Most Valuable Expert 2015
Top Expert 2015
Commented:
This is not specifically related to your question however i would recommened using Manage Engines Free Password Notifier. For notifying users when their password are going to expire.

https://www.manageengine.com/products/self-service-password/free-password-expiry-notification-tool.html

Will.
Mirjam BlockInfrastructure Specialist and Project Manager

Author

Commented:
The manageengine solution looks promising;

the comment about the 1601 for expired passords gave me some insight in the way some things work.

my problem is not solved completely but i have some options

Many Thanks !

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial