PasswordLastSet subitem.add

This topic contains 6 replies, has 2 voices, and was last updated by  lemonade 3 years, 3 months ago.

  • Author
    Posts
  • #15226

    lemonade
    Participant

    Just having an issue getting the password last set attribute in a list view.
    That column is empty

    
    #######################
    ## Find Locked Users ##
    #######################
    function Invoke-FLU{
    $list1.visible = $false
    $list2.visible = $true
    $lbl2.visible = $false
    HideUnusedItems
    $columnnames = "Name","Expires","Password last set"
    $list2.Columns[0].text = "Name"
    $list2.Columns[0].width = 140
    $list2.Columns[1].text = "Expires"
    $list2.Columns[1].width = 70
    $list2.Columns[2].text = "Password last set"
    $list2.Columns[2].width = 380
    $List2.items.Clear()
    $lusers = Get-QADUser -searchroot "OU=x,dc=x,dc=x" -locked -IncludedProperties PasswordLastSet
    $columnproperties = "displayName","AccountExpires","PasswordLastSet"
        foreach($luser in $lusers){
        $item = new-object System.Windows.Forms.ListViewItem([string]$luser.displayName)
        if ($luser.accountExpires -ne $null){
        $item.SubItems.Add(($luser.accountExpires | Get-Date -format "dd/MM/yyyy"))
        }
        else{
        $item.forecolor = "Red"
        $item.SubItems.Add(("No Expiry"))
        }
        $item.SubItems.Add($luser.PasswordLastSet)
        $item.Tag = $luser
        $list2.Items.Add($item) > $null
      }
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic")
    $yesno = [Microsoft.VisualBasic.Interaction]::MsgBox("Do you wish to unlock a domain account?",'YesNoCancel,Question', "Account Unlock")
    if ($yesno -eq 6) {$btn15.Visible = $true}
    elseif ($yesno -eq 7) {FormUnlock}
    $stBar1.text = "Locked domain accounts on " + $userdomain + " (" + $lusers.count + ")"
    if(test-path $lfile){(get-date -uformat "%Y-%m-%d-%H:%M") + "," + $user + "," + $userdomain + "," +  "Locked accounts," | out-file -filepath $lfile -append} 
    } # End function Invoke-FLU
    

    Thanks
    David

  • #15238

    Richard Siddaway
    Moderator

    First off I'd suggest testing that you are actually getting data back. Your syntax look right but just to be sure test
    Get-QADUser -searchroot "OU=x,dc=x,dc=x" -locked -IncludedProperties PasswordLastSet | ft displayname, accountexpires, PasswordLastSet

    Assuming you get data back my other suggestion would be to cast the date in PasswordLastSet to a string and see if that shows in your list

  • #15246

    lemonade
    Participant

    Thats great, thanks for you help. Must have been looking at it too long!

    $item.SubItems.Add([string]$luser.PasswordLastSet)

  • #15247

    Richard Siddaway
    Moderator

    This is one of those things that you remember because you've tripped over it before. No prizes for guessing how I found out about it...

  • #15248

    lemonade
    Participant

    Will do.

    Now having issues with a 3rd column, description heading and data is all blank.

    Also Get-QADUser -searchroot "OU=x,dc=x,dc=x" -locked -IncludedProperties PasswordLastSet | ft displayname, accountexpires, PasswordLastSet formats the date in UK dd/mm/yyyy, but below it comes out in US mm/dd/yyyy and if i try to format it, if the date is above 12 its blank.

    Any ideas?


    #######################
    ## Find Locked Users ##
    #######################
    function Invoke-FLU{
    $list1.visible = $false
    $list2.visible = $true
    $lbl2.visible = $false
    HideUnusedItems
    $columnnames = "Name","Expires","PW last set","Description"
    $list2.Columns[0].text = "Name"
    $list2.Columns[0].width = 140
    $list2.Columns[1].text = "Expires"
    $list2.Columns[1].width = 70
    $list2.Columns[2].text = "Password last set"
    $list2.Columns[2].width = 120
    $list2.Columns[3].text = "Description"
    $list2.Columns[3].width = 260
    $List2.items.Clear()
    $lusers = Get-QADUser -searchroot "OU=x,dc=x,dc=x" -locked -IncludedProperties PasswordLastSet
    $columnproperties = "displayName","AccountExpires","PasswordLastSet","description"
    foreach($luser in $lusers){
    $item = new-object System.Windows.Forms.ListViewItem([string]$luser.displayName)
    if ($luser.accountExpires -ne $null){
    $item.SubItems.Add(($luser.accountExpires | Get-Date -format "dd/MM/yyyy"))
    }
    else{
    $item.forecolor = "Red"
    $item.SubItems.Add(("No Expiry"))
    }
    if ([string]$luser.PasswordLastSet){# -ne $null){
    #$item.SubItems.Add([string]$luser.PasswordLastSet)# | Get-Date -format "dd/MM/yyyy HH:mm:ss"))
    $item.SubItems.Add(([string]$luser.PasswordLastSet | Get-Date -format "%d/%m/%Y %H:%M"))
    }
    else{
    $item.forecolor = "Red"
    $item.SubItems.Add(("Password not set"))
    }
    $item.SubItems.Add([string]$luser.description)
    $item.Tag = $luser
    $list2.Items.Add($item) > $null
    }
    [System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic")
    $yesno = [Microsoft.VisualBasic.Interaction]::MsgBox("Do you wish to unlock a domain account?",'YesNoCancel,Question', "Account Unlock")
    if ($yesno -eq 6) {$btn15.Visible = $true}
    elseif ($yesno -eq 7) {FormUnlock}
    $stBar1.text = "Locked domain accounts on " + $userdomain + " (" + $lusers.count + ")"
    if(test-path $lfile){(get-date -uformat "%Y-%m-%d-%H:%M") + "," + $user + "," + $userdomain + "," + "Locked accounts," | out-file -filepath $lfile -append}
    } # End function Invoke-FLU

  • #15249

    lemonade
    Participant

    Managed to resolve the column issue. Still having issues with the date formatting on passwordlastset

  • #15250

    lemonade
    Participant

    All sorted. Ta
    $item.SubItems.Add(($luser.PasswordLastSet | Get-Date -format "dd/MM/yyyy HH:mm:ss"))

You must be logged in to reply to this topic.