Account Password age

Welcome Forums General PowerShell Q&A Account Password age

This topic contains 2 replies, has 3 voices, and was last updated by

 
Participant
5 years, 2 months ago.

  • Author
    Posts
  • #10388

    Participant
    Points: 0
    Rank: Member

    $360Days = (Get-Date).adddays(-360)
    $users = Get-ADUser -SearchBase "OU=XX,DC=com" -Filter {(passwordlastset -le $360Days) -AND (enabled -eq $false)} -properties passwordlastset
    $users | %{
    $pwdset = [DateTime]::FromFileTime($_.passwordlastset)
    }

    Im trying to change the date format of "passwordlastset" attribute using [DateTime]::FromFileTime, so that i can find the password age in numbers by finding the difference between (get-date)-$pwdset

    But when i execute the above script im getting below mentioned error in powershell
    ———
    Cannot convert argument "fileTime", with value: "7/8/2010 12:23:53 PM", for "FromFileTime" to type "System.Int64": "Cannot convert value
    "7/8/2010 12:23:53 PM" to type "System.Int64". Error: "Invalid cast from 'DateTime' to 'Int64'.""
    At C:\Users\gssnckhi\AppData\Local\Temp\1c8afcfe-b440-47da-a419-9b6d996b13bf.ps1:11 char:1
    + $pwdset = [DateTime]::FromFileTime($_.passwordlastset)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

    Cannot convert argument "fileTime", with value: "7/5/2012 7:55:53 PM", for "FromFileTime" to type "System.Int64": "Cannot convert value
    "7/5/2012 7:55:53 PM" to type "System.Int64". Error: "Invalid cast from 'DateTime' to 'Int64'.""
    At C:\Users\gssnckhi\AppData\Local\Temp\1c8afcfe-b440-47da-a419-9b6d996b13bf.ps1:11 char:1
    + $pwdset = [DateTime]::FromFileTime($_.passwordlastset)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

    Cannot convert argument "fileTime", with value: "7/5/2012 8:01:19 PM", for "FromFileTime" to type "System.Int64": "Cannot convert value
    "7/5/2012 8:01:19 PM" to type "System.Int64". Error: "Invalid cast from 'DateTime' to 'Int64'.""
    At C:\Users\gssnckhi\AppData\Local\Temp\1c8afcfe-b440-47da-a419-9b6d996b13bf.ps1:11 char:1
    + $pwdset = [DateTime]::FromFileTime($_.passwordlastset)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

    Cannot convert argument "fileTime", with value: "7/5/2012 8:02:32 PM", for "FromFileTime" to type "System.Int64": "Cannot convert value
    "7/5/2012 8:02:32 PM" to type "System.Int64". Error: "Invalid cast from 'DateTime' to 'Int64'.""
    At C:\Users\gssnckhi\AppData\Local\Temp\1c8afcfe-b440-47da-a419-9b6d996b13bf.ps1:11 char:1
    + $pwdset = [DateTime]::FromFileTime($_.passwordlastset)
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodArgumentConversionInvalidCastArgument

  • #10389

    Member
    Points: 0
    Rank: Member

    PasswordLastSet is one of the properties that PowerShell has created for you, by converting the "pwdLastSet" LDAP attribute into a DateTime object. No need to call FromFileTime again; that's already been done.

  • #10399

    Participant
    Points: 0
    Rank: Member

    Any reason for 360 days rather than 1 year?

    (get-date).AddYears(-1)

    or

    (get-date).AddMonths(-12)

The topic ‘Account Password age’ is closed to new replies.