ADUC: Use Powershell to Export list of User/Groups



  • This one is giving me a fit at the moment. I am looking for a way to export to CSV all Users and groups in AD

    i'm certain there is a script to do this,.. I just can't seem to find it.

    Any suggestions?



  • I got you

    # This script will export all users of the specified domain, and their group memberships to a CSV file. The usefulness of this tool is expressed when
    # setting up new hire employees or reviewing domain membership permissions.
    
    # It's not advisable to store the user credentials required to run this script as they can be decrypted. This script is not designed to save these credentials but could be modified to do so.
    
    # Use of this script implies that you understand what it does, and will do to with regards to your Active Directory installation members and group memberships.
    # As designed there are no changes made to your installation, the script simply generates a report of members, and their group memberships. 
    # Any changes to this script are the responsibility of the person/organization which made said changes. 
    
    # We cannot be held responsible for your misuse or misunderstanding of this script as it was designed.
    #
    #
    #
    
    #
    # Imports Active Directory information 
    Import-Module Activedirectory
    $credentials = Get-Credential
    # Prompts for user credentials default user is “   ”, enter an administrator account in the form of “domain-name\administrator-account”
    Get-ADUser -Credential $credentials  -Filter * -Properties DisplayName,EmailAddress,memberof,DistinguishedName,Enabled |  %  {
      New-Object PSObject -Property  @{
    	UserName = $_.DisplayName 
    	EmailAddress = $_.EmailAddress
    	DistinguishedName = $_.DistinguishedName
    	Enabled = $_.Enabled
    # Deliminates the document for easy copy and paste using ";" as the delimiter. Incredibly useful for Copy & Paste of group memberships to new hire employees.
    	Groups = ($_.memberof | Get-ADGroup | Select -ExpandProperty Name) -join ";"
    	}
    # The export path is variable change to desired location on domain controller or end user computer. 
    } | Select UserName,EmailAddress,@{l='OU';e={$_.DistinguishedName.split(',')[1].split('=')[1]}},Groups,Enabled | Sort-Object Username | Export-Csv $ENV:UserProfile\Documents\User-Permissions.csv –NTI
    
    
    #Function Get-SaveFile($initialDirectory)
    #{ 
    #[System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") |
    #Out-Null
    #
    #$SaveFileDialog = New-Object System.Windows.Forms.SaveFileDialog
    #$SaveFileDialog.initialDirectory = $initialDirectory
    #$SaveFileDialog.filter = "All files (*.*)| *.*"
    #$SaveFileDialog.ShowDialog() | Out-Null
    #$SaveFileDialog.filename
    #} 
    #
    #
    # open dialog box to select the .nessuss file. 
    #$InputFile = Get-OpenFile
    #$OutputFile = Get-SaveFile
    #
    #
    #$Contents = [io.file]::ReadAllText($inputfile)
    #$Contents = [io.file]::ReadAllText('C:\tools\wd\nessus\data\data.xml')
    #$Global:OutFile = [System.IO.StreamWriter] "c:\tools\wd\nessus\outfile.csv"
    #
    ##$InputFile
    #$OutputFile
    #