Get upn and samaccount name for users mentioned on directreports

%3CLINGO-SUB%20id%3D%22lingo-sub-3032733%22%20slang%3D%22en-US%22%3EGet%20upn%20and%20samaccount%20name%20for%20users%20mentioned%20on%20directreports%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-3032733%22%20slang%3D%22en-US%22%3E%3CP%3EHello%20all%3C%2FP%3E%3CP%3EI%20am%20trying%20to%20get%20all%20disabled%20user%20accounts%20that%20have%20users%20listed%20on%20the%20disabled%20accounts%20%22directreports%22%20.%20The%20below%20code%20is%20showing%20me%20the%20disabled%20account%20and%20the%20directreports%20distinguishedname%2C%20however%20i%20am%20getting%20the%20following%20error%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22error1.GIF%22%20style%3D%22width%3A%20999px%3B%22%3E%3CIMG%20src%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F332216iFCAE98F1BE0448B0%2Fimage-size%2Flarge%3Fv%3Dv2%26amp%3Bpx%3D999%22%20role%3D%22button%22%20title%3D%22error1.GIF%22%20alt%3D%22error1.GIF%22%20%2F%3E%3C%2FSPAN%3E%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-applescript%22%3E%3CCODE%3EGet-ADUser%20-Filter%20*%20-Properties%20samaccountname%2Cdirectreports%2Cenabled%20%7C%20where%20%7B%24_.directreports%20-notlike%20%24null%20-and%20%24_.enabled%20-eq%20%24False%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20ForEach-Object%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%24mgr%20%3D%20%24_%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%24_.directreports%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ForEach-Object%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5Barray%5D%24d%20%2B%3D%20Get-ADObject%20%24_%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Select-Object%20UserPrincipalName%2C%20samaccountname%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%24d%20%7C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20ForEach-Object%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5BPSCustomObject%5D%40%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20samaccountname%20%3D%20%24mgr.samaccountname%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20enabled%20%3D%20%24mgr.Enabled%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20distinguishedname%20%3D%20%24mgr.distinguishedname%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20directreportupn%20%3D%20%24_.userprincipalname%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20directteportsamaccountname%20%3D%20%24_.samaccountname%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%7D%20%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-3032733%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EWindows%20PowerShell%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E
Frequent Contributor

Hello all

I am trying to get all disabled user accounts that have users listed on the disabled accounts "directreports" . The below code is showing me the disabled account and the directreports distinguishedname, however i am getting the following error

 

error1.GIF

Get-ADUser -Filter * -Properties samaccountname,directreports,enabled | where {$_.directreports -notlike $null -and $_.enabled -eq $False}
             ForEach-Object{
             $mgr = $_
             $_.directreports |
                 ForEach-Object{
                     [array]$d += Get-ADObject $_ |
                                     Select-Object UserPrincipalName, samaccountname
                 }
             $d |
                 ForEach-Object{
                     [PSCustomObject]@{
                         samaccountname = $mgr.samaccountname
                         enabled = $mgr.Enabled
                         distinguishedname = $mgr.distinguishedname
                         directreportupn = $_.userprincipalname
                         directteportsamaccountname = $_.samaccountname
                     }
                 }
             } 

 

 

2 Replies

 

$users = Get-ADUser -Filter * -Properties samaccountname, directreports, enabled | Where-Object { $_.directreports -notlike $null -and $_.enabled -eq $False }
ForEach ($user in $users) {
    $directreportsupn = (get-aduser -filter * | Where-Object DistinguishedName -Match $user.directreports).UserPrincipalName
    $directreportssamaccountname = (get-aduser -filter * | Where-Object DistinguishedName -Match $user.directreports).SamAccountName
    [PSCustomObject]@{
        samaccountname             = $user.samaccountname
        enabled                    = $user.Enabled
        distinguishedname          = $user.distinguishedname
        directreportupn            = $directreportsupn
        directteportsamaccountname = $directreportssamaccountname
    }
}

 

@Skipster311-1 Changed the code a little bit, could you verify and let me know if this is what you want?

Did this work for you?