none
Creazione automatica utenti dominio RRS feed

  • Domanda

  • Ciao a tutti, 

    conoscete qualche soluzione per automatizzare la creazione degli user? Pensavo ad esempio all'upload di un file all'interno di un DB...

    Avete mai implementato soluzioni di questo tipo?


    Francesco Rozier

    giovedì 26 aprile 2012 14:51

Risposte

  • Esistono innumerevoli soluzioni: importazione da file con CSVDE o LDIFDE, creazione di script powershell o VBS, ecc....

    Cosa devi fare esattamente?

    • Contrassegnato come risposta -F R- venerdì 27 aprile 2012 21:58
    giovedì 26 aprile 2012 15:00
    Moderatore
  • Intendevi script PowerShell? Comunque si, quella cmdlet è compatibile solo con l'R2. Per la 2008 il meccanismo è lo stesso ma al posto di New-ADUser per eseguire tutto l'inserimento devi utilizzare più codice:

    $obj=[ADSI]"LDAP://OU=TUAOU,DC=DOMINIO,DC=COM"
    $user=$obj.create("user","CN=username")
    $user.SetPassword("password")
    $user.put(attributo,valore)
    $user.SetInfo
    $user.pbase.InvokeSet("AccountDisabled",$false)

    Con la put puoi inserire il valore di un attributo (ad esempio "sAMAccountName" per il nome utente Windows 2000 oppure "company" per il nome della società, ecc...). Ripetendo la put puoi far inserire tutti gli attributi che vuoi nel nuovo utente. Il SetInfo è il commit delle modifiche degli attributi, mentre con l'istruzione pbase abiliti l'account appena creato.

    Se ti dovessi trovare in difficoltà ad eseguire la modifica ti consiglio la lettura di questo articolo: http://www.howtogeek.com/50205/adding-more-fields-to-user-creation-with-powershell/

    venerdì 27 aprile 2012 09:44
    Moderatore

Tutte le risposte

  • Esistono innumerevoli soluzioni: importazione da file con CSVDE o LDIFDE, creazione di script powershell o VBS, ecc....

    Cosa devi fare esattamente?

    • Contrassegnato come risposta -F R- venerdì 27 aprile 2012 21:58
    giovedì 26 aprile 2012 15:00
    Moderatore
  • vorrei importare un elenco di nomi e vorrei che venissero create le login di accesso secondo lo standard "nome.cognome", impostata una pwd di default per tutti (da personalizzare al primo logon), impostato il gruppo di appartenenza e spostati sotto l'unità organizzativa corretta.

    Forse chiedo troppo...


    Francesco Rozier

    giovedì 26 aprile 2012 15:06
  • In realtà non è una cosa particolarmente complessa: con uno script PowerShell ad esempio puoi far generare gli account in Active Directory partendo da un CSV contenente dei dati di partenza.

    Ad esempio qui http://gallery.technet.microsoft.com/scriptcenter/ed20b349-9758-4c70-adc0-19c5acfcae45 c'è uno script che genera utenti partendo da un CSV contenente per ogni riga nome,cognome e password. Con una piccola modifica all'utilizzo di New-AdUser ( http://technet.microsoft.com/en-us/library/ee617253.aspx ) puoi anche estendere lo script con altri dati come ruolo, numero di telefono o indirizzo e-mail.



    giovedì 26 aprile 2012 15:22
    Moderatore
  • dai un'occhiata qui

    http://msdn.microsoft.com/en-us/library/ms974568.aspx


    Edoardo Benussi
    Microsoft MVP - Management Infrastructure
    edo[at]mvps[dot]org

    giovedì 26 aprile 2012 15:22
    Moderatore
  • Stavo dando uno sguardo al materiale che mi avete linkato. Preferirei uno script VB in quanto CSVDE non mi consente di inserire la password (e dovrei fare un secondo script), LDIFDE ha un formato di input non comodissimo.

    Lo script VB che mi hai linkato non riesco a farlo funzionare su Win Srv 2008 (lo danno compatibile solo su 2008 R2). Devo googlare un pò.

    Altri suggerimenti sono sempre bene accetti :)


    Francesco Rozier

    giovedì 26 aprile 2012 20:51
  • Intendevi script PowerShell? Comunque si, quella cmdlet è compatibile solo con l'R2. Per la 2008 il meccanismo è lo stesso ma al posto di New-ADUser per eseguire tutto l'inserimento devi utilizzare più codice:

    $obj=[ADSI]"LDAP://OU=TUAOU,DC=DOMINIO,DC=COM"
    $user=$obj.create("user","CN=username")
    $user.SetPassword("password")
    $user.put(attributo,valore)
    $user.SetInfo
    $user.pbase.InvokeSet("AccountDisabled",$false)

    Con la put puoi inserire il valore di un attributo (ad esempio "sAMAccountName" per il nome utente Windows 2000 oppure "company" per il nome della società, ecc...). Ripetendo la put puoi far inserire tutti gli attributi che vuoi nel nuovo utente. Il SetInfo è il commit delle modifiche degli attributi, mentre con l'istruzione pbase abiliti l'account appena creato.

    Se ti dovessi trovare in difficoltà ad eseguire la modifica ti consiglio la lettura di questo articolo: http://www.howtogeek.com/50205/adding-more-fields-to-user-creation-with-powershell/

    venerdì 27 aprile 2012 09:44
    Moderatore
  • Grazie mille Fabrizio, ho risolto!

    Riporto per correttezza i passi fatti, potrebbero aiutare altri utenti:

    1. creazione file csv (molto semplice, solo colonna FirstName e colonna LastName), nominato "users.csv";

    2. abilitata esecuzione script su powershell con il comando "set-executionpolicy remotesigned"

    3. creazione script, nominato "PSusersScript.ps1"

    $objOU=[ADSI]“LDAP://OU=MyOU,DC=miodominio,DC=local”
    $dataSource=import-csv “users.csv”
    foreach($dataRecord in $datasource) {
    $cn=$dataRecord.FirstName + ” ” + $dataRecord.LastName
    $sAMAccountName=$dataRecord.FirstName + “.” + $dataRecord.LastName
    $givenName=$dataRecord.FirstName
    $sn=$dataRecord.LastName
    $sAMAccountName=$sAMAccountName.ToLower()
    $displayName=$givenName + “ ” + $sn
    $userPrincipalName=$sAMAccountName + “@miodominio.local”
    $objUser=$objOU.Create(“user”,”CN=”+$cn)
    $objUser.Put(“sAMAccountName”,$sAMAccountName)
    $objUser.Put(“userPrincipalName”,$userPrincipalName)
    $objUser.Put(“displayName”,$displayName)
    $objUser.Put(“givenName”,$givenName)
    $objUser.Put(“sn”,$sn)
    $objUser.SetInfo()
    $objUser.SetPassword(“Abc12345678”)
    $objUser.psbase.InvokeSet(“AccountDisabled”,$false)
    $objUser.SetInfo()
    }

    4. Inseriti script e file all'interno della stessa cartella;

    5. Eseguito lo script.

    Sono partito da questa base http://www.howtogeek.com/50187/how-to-create-multiple-users-in-server-2008-with-powershell/ per adattarlo poi alle mie esigenze.

    Ancora grazie.

    Fra



    Francesco Rozier





    • Modificato -F R- venerdì 27 aprile 2012 21:56
    venerdì 27 aprile 2012 21:54
  • Aggiunto anche 

    $objUser.Put("pwdLastSet", 0)

    per forzare il cambio password al primo logon dell'utente.


    Francesco Rozier

    venerdì 27 aprile 2012 22:42
  • Salve a tutti, vi volevo ringraziare perchè grazie a questo script, anche se datato, sono riuscito  creare gli utenti della mia rete. Volevo chiedervi se avevate trovato qualche soluzione nel caso di due utenti con nome e cognome uguali.

    Avevo pensato di usare il codice fiscale come nome utente ma mi hanno detto che non potevo usarlo perchè è un dato sensibile da cui si possono ricavare informazioni.

    Grazie delle risposte

    Matteo

    mercoledì 24 febbraio 2016 08:39
  • puoi creare un ciclo di codice che, cerca le omonimie ed aggiunge (ad esempio) un numero al cognome.

    ciao.


    Edoardo Benussi
    Microsoft MVP - Enterprise Mobility
    edo[at]mvps[dot]org


    mercoledì 24 febbraio 2016 09:00
    Moderatore
  • io tutt'ora ho questo problema, difatti gestisco gli omonini come eccezioni, e creo l'account manuale aggiungendo un suffisso al cognome - es. mario.rossi e mario.rossi1

    Sarebbe interessante anche per me capire questa cosa. In altre realtà, per semplificare questo aspetto e creare univocità viene aggiunta una matricola come prefisso - es. 001mariorossi - 002luigibianchi ecc.

    In questo modo non ci saranno mai omonimie.


    Francesco Rozier

    mercoledì 24 febbraio 2016 09:43