# Passwordlastset compared to creation date of password

**URL:** https://forums.powershell.org/t/passwordlastset-compared-to-creation-date-of-password/1973
**Category:** PowerShell Help
**Created:** [October 17, 2013, 5:06am UTC](https://forums.powershell.org/t/passwordlastset-compared-to-creation-date-of-password/1973 "2013-10-17T05:06:05Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![markus-jones-750](https://avatars.discourse-cdn.com/v4/letter/m/13edae/32.png) [@markus-jones-750](https://forums.powershell.org/u/markus-jones-750)
#### Post date: [October 17, 2013, 5:06am UTC](https://forums.powershell.org/t/passwordlastset-compared-to-creation-date-of-password/1973/1 "2013-10-17T05:06:05Z")

</div>

Hello

Is there a script out there that will display user accounts password last set time and date that will compare when the password was first created. It can display Manager name, Email address of user account, Ext Abb. #14, Email Address of manager, display name, etc? The goal is to compare to see if pwdlastset is one hour less than creation dates of user account passwords. Output, deliver file. I hope I explain this clearly.

Thank you

---

<div class="post-metadata">

### Author: ![markus-jones-750](https://avatars.discourse-cdn.com/v4/letter/m/13edae/32.png) [@markus-jones-750](https://forums.powershell.org/u/markus-jones-750)
#### Post date: [October 17, 2013, 5:12am UTC](https://forums.powershell.org/t/passwordlastset-compared-to-creation-date-of-password/1973/2 "2013-10-17T05:12:03Z")

</div>

I have this script but can’t seem to get it to work.

Function Get-XADUserPasswordExpirationDate() {

```
Param (
	[Parameter(Mandatory=$true, Position=0, ValueFromPipeline=$true, HelpMessage="Identity of the Account")]
	[Object] $accountObj
)

PROCESS {
    If ($accountObj.PasswordExpired) 
	{	Return "Expired"
    } 
	Else 
	{	If ($accountObj.PasswordNeverExpires) 
		{	Return "Password set to never expire"
        } 
		Else 
		{	$passwordSetDate = $accountObj.PasswordLastSet
            If ($passwordSetDate -eq $null) 
			{	Return "Password has never been set"
            }  
			Else 
			{	$maxPasswordAgeTimeSpan = $null
                $dfl = (get-addomain).DomainMode
                If ($dfl -ge 3) 
				{	## Greater than Windows2008 domain functional level
                    $accountFGPP = Get-ADUserResultantPasswordPolicy $accountObj
                    If ($accountFGPP -ne $null) 
					{	$maxPasswordAgeTimeSpan = $accountFGPP.MaxPasswordAge
                    } 
					Else 
					{	$maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
                    }
                } 
				Else 
				{	$maxPasswordAgeTimeSpan = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge
                }
                If ($maxPasswordAgeTimeSpan -eq $null -or $maxPasswordAgeTimeSpan.TotalMilliseconds -eq 0) 
				{	Return "MaxPasswordAge is not set for the domain or is set to zero!"
                } 
				Else 
				{	Return ($passwordSetDate + $maxPasswordAgeTimeSpan)
                }
            }
        }
    }
}

```

}

cls  
$Result = @()  
$Users = Get-ADUser -Filter \* -Properties GivenName,sn,PasswordExpired,PasswordLastSet,PasswordneverExpires  
ForEach ($User in $Users)  
{ $Result += New-Object PSObject -Property @{  
‘Last Name’ = $User.sn  
‘First Name’ = $User.GivenName  
UserName = $User.SamAccountName  
Expiration = $($User | Get-XADUserPasswordExpirationDate)  
}  
}  
$Result = $Result | Select ‘Last Name’,‘First Name’,UserName,Expiration | Sort ‘Last Name’

#Produce a CSV  
$Result | Export-Csv “c:\temp\passwordexpirationdate.csv”

#Send HTML Email  
$Header = @"  
\<style\>  
TABLE {border-width: 1px;border-style: solid;border-color: black;border-collapse: collapse;}  
TD {border-width: 1px;padding: 3px;border-style: solid;border-color: black;}  
\</style\>  
"@  
$splat = @{  
From = “”  
To = “”  
SMTPServer = “”  
Subject = “Password Expiration Report”  
}  
$Body = $Result | ConvertTo-Html -Head $Header | Out-String  
Send-MailMessage @splat -Body $Body -BodyAsHTML -Attachments $Path\ExpirationReport.csv

---

<div class="post-metadata">

### Author: ![dotnVo](https://avatars.discourse-cdn.com/v4/letter/d/4af34b/32.png) [@dotnVo](https://forums.powershell.org/u/dotnVo)
#### Post date: [May 16, 2024, 8:57pm UTC](https://forums.powershell.org/t/passwordlastset-compared-to-creation-date-of-password/1973/3 "2024-05-16T20:57:00Z")

</div>


