none
script export user group RRS feed

  • Domanda

  • Salve a tutti vorrei chiedervi un aiuto,

    ho trobvato questo script:

    http://gallery.technet.microsoft.com/scriptcenter/Export-Active-Directory-5cf4938d#content

    che esporta la lista degli utenti di AD, volevo chiedervi se era possibile, come fare per aggiungere a questa lista anche i gruppi di appartenenza degli utenti?'

    grazie

    lunedì 20 maggio 2013 08:36

Risposte

  • Ecco lo script modificato per le tue esigenze.  Ricordati di usare PowerGui e i relativi moduli di AD

    Ciao Gas

    ###################################################################################### 
    #             Author: Vikas Sukhija 
    #             Date:- 01/21/2013 
    #Description:- This script  will use quest shell & grab the user attributes from AD 
    #Prerequisites :- Excel & Quest Shell 
    # Aggiunti i gruppi di appartenenza by Gastone
    ###################################################################################### 
    Start-Transcript 
     
    # call excel for writing the results 
     
    $objExcel = new-object -comobject excel.application  
    $workbook = $objExcel.Workbooks.Add() 
    $worksheet=$workbook.ActiveSheet  
    $objExcel.Visible = $True
    $cells=$worksheet.Cells 
     
    # define top level cell 
     
    $cells.item(1,1)="UserId" 
    $cells.item(1,2)="FirstName" 
    $cells.item(1,3)="LastName" 
    $cells.item(1,4)="Employeeid" 
    $cells.item(1,5)="email" 
    $cells.item(1,6)="Office" 
    $cells.item(1,7)="Department" 
    $cells.item(1,8)="Title" 
    $cells.item(1,9)="Company" 
    $cells.item(1,10)="City" 
    $cells.item(1,11)="State" 
    $cells.item(1,12)="Country" 
    $cells.item(1,13)="Groups"  
    #intitialize row out of the loop 
     
    $row = 2 
     
    #import quest management Shell 
     
    if ( (Get-PSSnapin -Name Quest.ActiveRoles.ADManagement -ErrorAction SilentlyContinue) -eq $null ) 
    { 
        Add-PsSnapin Quest.ActiveRoles.ADManagement  
    } 
     
     
    $data = get-qaduser -IncludedProperties "CO", "extensionattribute1" #-sizelimit 0 
     
    #loop thru users 
     
    foreach ($i in $data) 
      
    { 
     
    #initialize column within the loop so that it always loop back to column 1 
    $col = 1 
    $userid=$i.Name 
    $FisrtName=$i.givenName 
    $LastName=$i.sn 
    $Employeeid=$i.extensionattribute1 
    $email=$i.PrimarySMTPAddress 
    $office=$i.Office 
    $Department=$i.Department 
    $Title=$i.Title 
    $Company=$i.Company 
    $City=$i.l 
    $state=$i.st 
    $Country=$i.CO 
    
     
    Write-host "Processing.................................$userid" 
    $cells.item($row,$col) = $userid 
    $col++ 
    $cells.item($row,$col) = $FisrtName 
    $col++ 
    $cells.item($row,$col) = $LastName 
    $col++ 
    $cells.item($row,$col) = $Employeeid 
    $col++ 
    $cells.item($row,$col) = $email 
    $col++ 
    $cells.item($row,$col) = $office 
    $col++ 
    $cells.item($row,$col) = $Department 
    $col++ 
    $cells.item($row,$col) = $Title 
    $col++ 
    $cells.item($row,$col) = $Company 
    $col++ 
    $cells.item($row,$col) = $City 
    $col++ 
    $cells.item($row,$col) = $state 
    $col++ 
    $cells.item($row,$col) = $Country 
    $col++ 
    $grp=$i.memberof|Get-QADGroup
    $grp| % { 
        $cells.item($row,$col)="$($_.name)"
    	$col++
    	} 
    $row++ 
    } 
     
    #formatting excel 
     
    $range = $objExcel.Range("A2").CurrentRegion 
    $range.ColumnWidth = 30 
    $range.Borders.Color = 0 
    $range.Borders.Weight = 2 
    $range.Interior.ColorIndex = 37 
    $range.Font.Bold = $false 
    $range.HorizontalAlignment = 3 
     
    # Headings in Bold 
     
    $cells.item(1,1).font.bold=$True 
    $cells.item(1,2).font.bold=$True 
    $cells.item(1,3).font.bold=$True 
    $cells.item(1,4).font.bold=$True 
    $cells.item(1,5).font.bold=$True 
    $cells.item(1,6).font.bold=$True 
    $cells.item(1,7).font.bold=$True 
    $cells.item(1,8).font.bold=$True 
    $cells.item(1,9).font.bold=$True 
    $cells.item(1,10).font.bold=$True 
    $cells.item(1,11).font.bold=$True 
    $cells.item(1,12).font.bold=$True 
     
     
    #save the excel file 
     
    $filepath = "c:\scripts\exportAD.xlsx" 
    $workbook.saveas($filepath) 
    $workbook.close() 
    $objExcel.Quit() 
     
    Stop-Transcript 
    ############################################################################################## 
    



    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito (non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili . GRAZIE! Ricorda di dare un occhio anche QUI

    lunedì 20 maggio 2013 19:56
    Moderatore

Tutte le risposte

  • Sotto trovi il codice per ricavare i gruppi di appartenenza diretta (non analizza  i fìgruppti di gruppi)

    $User = get-qaduser -SamAccountName "gastone.canali"
    $grp=$User.memberof|Get-QADGroup
    $grp| %{$_.name}

    Spero tu sia in grado di adattarlo allo script che hai trovato.

    Se non ci riesci chiedi pure.

    Ciao Gas



    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito (non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili . GRAZIE! Ricorda di dare un occhio anche QUI

    lunedì 20 maggio 2013 13:15
    Moderatore
  • Ciao, grazie per l'attenzione....premetto che con gli script non sono molto ferrato,

    però da quello che vedo se ho capito bene, per avere una lista di utenti con i relativi gruppi di appartenenza, devo scrivere i nomi utenti come indicato in questa parte di script da te evindeziata?

    lunedì 20 maggio 2013 13:34
  • Ecco lo script modificato per le tue esigenze.  Ricordati di usare PowerGui e i relativi moduli di AD

    Ciao Gas

    ###################################################################################### 
    #             Author: Vikas Sukhija 
    #             Date:- 01/21/2013 
    #Description:- This script  will use quest shell & grab the user attributes from AD 
    #Prerequisites :- Excel & Quest Shell 
    # Aggiunti i gruppi di appartenenza by Gastone
    ###################################################################################### 
    Start-Transcript 
     
    # call excel for writing the results 
     
    $objExcel = new-object -comobject excel.application  
    $workbook = $objExcel.Workbooks.Add() 
    $worksheet=$workbook.ActiveSheet  
    $objExcel.Visible = $True
    $cells=$worksheet.Cells 
     
    # define top level cell 
     
    $cells.item(1,1)="UserId" 
    $cells.item(1,2)="FirstName" 
    $cells.item(1,3)="LastName" 
    $cells.item(1,4)="Employeeid" 
    $cells.item(1,5)="email" 
    $cells.item(1,6)="Office" 
    $cells.item(1,7)="Department" 
    $cells.item(1,8)="Title" 
    $cells.item(1,9)="Company" 
    $cells.item(1,10)="City" 
    $cells.item(1,11)="State" 
    $cells.item(1,12)="Country" 
    $cells.item(1,13)="Groups"  
    #intitialize row out of the loop 
     
    $row = 2 
     
    #import quest management Shell 
     
    if ( (Get-PSSnapin -Name Quest.ActiveRoles.ADManagement -ErrorAction SilentlyContinue) -eq $null ) 
    { 
        Add-PsSnapin Quest.ActiveRoles.ADManagement  
    } 
     
     
    $data = get-qaduser -IncludedProperties "CO", "extensionattribute1" #-sizelimit 0 
     
    #loop thru users 
     
    foreach ($i in $data) 
      
    { 
     
    #initialize column within the loop so that it always loop back to column 1 
    $col = 1 
    $userid=$i.Name 
    $FisrtName=$i.givenName 
    $LastName=$i.sn 
    $Employeeid=$i.extensionattribute1 
    $email=$i.PrimarySMTPAddress 
    $office=$i.Office 
    $Department=$i.Department 
    $Title=$i.Title 
    $Company=$i.Company 
    $City=$i.l 
    $state=$i.st 
    $Country=$i.CO 
    
     
    Write-host "Processing.................................$userid" 
    $cells.item($row,$col) = $userid 
    $col++ 
    $cells.item($row,$col) = $FisrtName 
    $col++ 
    $cells.item($row,$col) = $LastName 
    $col++ 
    $cells.item($row,$col) = $Employeeid 
    $col++ 
    $cells.item($row,$col) = $email 
    $col++ 
    $cells.item($row,$col) = $office 
    $col++ 
    $cells.item($row,$col) = $Department 
    $col++ 
    $cells.item($row,$col) = $Title 
    $col++ 
    $cells.item($row,$col) = $Company 
    $col++ 
    $cells.item($row,$col) = $City 
    $col++ 
    $cells.item($row,$col) = $state 
    $col++ 
    $cells.item($row,$col) = $Country 
    $col++ 
    $grp=$i.memberof|Get-QADGroup
    $grp| % { 
        $cells.item($row,$col)="$($_.name)"
    	$col++
    	} 
    $row++ 
    } 
     
    #formatting excel 
     
    $range = $objExcel.Range("A2").CurrentRegion 
    $range.ColumnWidth = 30 
    $range.Borders.Color = 0 
    $range.Borders.Weight = 2 
    $range.Interior.ColorIndex = 37 
    $range.Font.Bold = $false 
    $range.HorizontalAlignment = 3 
     
    # Headings in Bold 
     
    $cells.item(1,1).font.bold=$True 
    $cells.item(1,2).font.bold=$True 
    $cells.item(1,3).font.bold=$True 
    $cells.item(1,4).font.bold=$True 
    $cells.item(1,5).font.bold=$True 
    $cells.item(1,6).font.bold=$True 
    $cells.item(1,7).font.bold=$True 
    $cells.item(1,8).font.bold=$True 
    $cells.item(1,9).font.bold=$True 
    $cells.item(1,10).font.bold=$True 
    $cells.item(1,11).font.bold=$True 
    $cells.item(1,12).font.bold=$True 
     
     
    #save the excel file 
     
    $filepath = "c:\scripts\exportAD.xlsx" 
    $workbook.saveas($filepath) 
    $workbook.close() 
    $objExcel.Quit() 
     
    Stop-Transcript 
    ############################################################################################## 
    



    Gastone Canali >http://www.armadillo.it

    Se alcuni post rispondono al tuo quesito (non necessariamente i miei), ricorda di contrassegnarli come risposta e non dimenticare di contrassegnare anche i post utili . GRAZIE! Ricorda di dare un occhio anche QUI

    lunedì 20 maggio 2013 19:56
    Moderatore
  • Ciao francesco,

    Evidenzio la risposta di Gastone in attesa di ulteriori feedback (speriamo positivi).

    Grazie a tutti della partecipazione nel Forum di Group Policy :-)


    Anca Popa Follow ForumTechNetIt on Twitter

    Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto viene fornito “così come è” e non comporta alcuna responsabilità da parte dell'azienda.

    mercoledì 22 maggio 2013 10:43
  • Salve scusate il ritardo testato e funzionante...grazie
    mercoledì 22 maggio 2013 14:48