Monday, May 9, 2016

Get All Active Directory Users with PowerShell

CSVDE is Terrible

This command:
csvde -f c:\Temp\AD_Users.csv  -r "(&(objectCategory=person)(objectClass=user))"  -l physicalDeliveryOfficeName,description,cn,sn,givenname,lastlogintimestamp,homeDirectory,dn,memberof,title
will give you every AD user but it sometimes puts columns where it wants and doesn't allow you to sort in the command.

I decided to write this in PowerShell instead and here is what I came up with...

Import-Module ActiveDirectory

$Table = @()


$Arrayofmembers = Get-ADUser -filter {objectClass -eq "user"}  -searchbase "DC=CHANGETHIS,DC=com" -Properties * | Sort-Object -Property cn | select physicaldeliveryofficename,employeeID,description,cn,sn,givenname,lastlogondate,displayname,title,Manager,DistinguishedName,altRecipient, @{n=’MemberOf’; e= { ( $_.memberof | % { (Get-ADObject $_).Name }) -join “;” }} | Sort-Object -Property Name 

Foreach($User in $Arrayofmembers) {



$Obj=New-Object PSObject
    $Obj | Add-Member -Name "displayname" -MemberType NoteProperty  -Value $User.displayname
    $Obj | Add-Member -Name "physicaldeliveryofficename" -MemberType NoteProperty  -Value $User.physicaldeliveryofficename
    $Obj | Add-Member -Name "employeeID" -MemberType NoteProperty  -Value $User.employeeID
    $Obj | Add-Member -Name "description" -MemberType NoteProperty  -Value $User.description
    $Obj | Add-Member -Name "cn" -MemberType NoteProperty  -Value $User.cn
    $Obj | Add-Member -Name "sn" -MemberType NoteProperty  -Value $User.sn
    $Obj | Add-Member -Name "givenname" -MemberType NoteProperty  -Value $User.givenname
    $Obj | Add-Member -Name "lastlogondate" -MemberType NoteProperty  -Value $User.lastlogondate
    $Obj | Add-Member -Name "title" -MemberType NoteProperty  -Value $User.title
    $Obj | Add-Member -Name "Manager" -MemberType NoteProperty  -Value $User.Manager
    $Obj | Add-Member -Name "DN" -MemberType NoteProperty  -Value $User.DistinguishedName
    $Obj | Add-Member -Name "altRecipient" -MemberType NoteProperty  -Value $User.altRecipient
    $Obj | Add-Member -Name "MemberOf" -MemberType NoteProperty  -Value $User.MemberOf
$Table += $obj

}

$Table | export-csv "c:\Temp\ADUsers.csv" -NoTypeInformation

No comments:

Post a Comment