IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

Script Création de mail


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 49
    Par défaut Script Création de mail
    Bonjour à tous,

    j'espere que je suis dans la bonne section...

    alors voila j'ai un serveur dedier Plex parallels sous centos.
    je souhaite créer une multide de mail par script au lieux d'utiliser l'interphase prevu a cette effet qui me parait long pour cree plusieurs mails...

    j'ai chercher sur le net je n'est pas trouver mon bonheur je voudrais pouvoir mettre une liste de nom dans un fichier et que le script prenne se fichier et genere des mot de passe automatique (ou precisé par moi) et qu'il cree les mails.

    est ce possible ? avez vous des pistes je ne sais pas du tout par ou commencer...

    MErci d'avance !!!

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Par défaut
    Ce script te crée l'utilisateur, te génère un mot de passe et te crée l'adresse mail.

    Alors déjà il faut que tout soit en place, ldap, domaine.....
    Tu enregistres le script en .pl exemple script_user.pl
    Après pour le lancer, tu auras juste à faire perl script_user.pl
    Après ça, il te restera à rentrer à rentrer l'utilisateur dans Active Directory

    En espérant que ça puisse t'aider

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    #!/usr/bin/perl
     
    use Crypt::PasswdMD5;
    use Digest::MD5 qw(md5 md5_hex md5_base64);
    use Net::LDAP;
    use Net::LDAP::Util qw/ldap_error_text/;
     
    ###################################### SETTINGS #################################
     
    my $LDAPServer                            =     "ton serveur;
    my $LDAPRootDN                            =     "cn=admin,dc=domaine,dc=fr";
    my $LDAPRootPassword                      =     "mot de passe";
    my $LDAPVersion                           =     3;
    my $LDAPBaseDN                            =     'dc=domaine,dc=fr';
    my $LDAPFilter                            =     '(&(objectClass=shadowAccount)(objectClass=sambaSamAccount))';
    my @LDAPAttrs                             =     ['uidNumber'];
     
    my $template_ldif="template.ldif";
    my $liste_password="maliste.csv";
     
    my $ExportFile = "import_adduser.ldif";
     
    ####################################### DONT TOUCHE AFTER ########################
    if($#ARGV < 2)
      {
              print "\tUsage: perl adduser.pl <PRENOM> <NOM> <DOMAINE>\n";
              print "\te.g: perl adduser.pl marine leblanc tondomaine\n";
              exit 0;
          }
    else {
     
        open(TEMPLATE,$template_ldif);
        my $template="";
        while(<TEMPLATE>) {
    	#    chomp($_);
    	$template.=$_;
        }
        $template.="\n";
        close(TEMPLATE);
     
     
        #### LDAP GET uidNumber ####
        $ldap = Net::LDAP->new ( $LDAPServer ) or die "$@";
        $mesg = $ldap->bind ( $LDAPRootDN, password => $LDAPRootPassword, version => $LDAPVersion );
        $mesg->code && die $mesg->error;
     
        my $mesg = $ldap->search(base => $LDAPBaseDN, scope => 'sub' , filter => $LDAPFilter);
        $mesg->code && die $mesg->error;
     
        my $Count= $mesg->count - 1;
        if($Count>0) {
    	my $entry=$mesg->entry($Count);
    	my $uidNumber=$entry->get_value('uidNumber') + 1;
     
     
     
    	#### GET LOGIN / PASSWORD / EMAIL 
    	my $firstname=$ARGV[0];
    	my $lastname=$ARGV[1];
    	my $domain=$ARGV[2];
    	my $login=$firstname . "." . $lastname;
    	my $clear_password=`pwgen -n 8 1`;
    	lc(chomp($clear_password));
    	my $email=$firstname . "." . $lastname . "\@tondomaine";
     
    	#### ADD TO liste_password
    	open(MALISTE,">>$liste_password");
    	print MALISTE $login . ":" .$clear_password . ":" . $email . ":" . $uidNumber . "\n";
    	close(MALISTE);
     
    	#### COMPLETE TEMPLATE
    	my $temp_template=$template;
    	$firstname = uc($firstname);
    	$lastname = uc($lastname);
    	$temp_template=~ s/XXX_FIRSTNAME_XXX/$firstname/g;
    	$temp_template=~ s/XXX_LASTNAME_XXX/$lastname/g;
    	$temp_template=~ s/XXX_DOMAIN_XXX/$domain/g;
    	$temp_template=~ s/XXX_USER_XXX/$login/g;
    	$temp_template=~ s/XXX_MAIL_XXX/$email/g;
    	$temp_template=~ s/XXX_UID_XXX/$uidNumber/g;
    	$encrypted_password = md5_base64($clear_password) . "==";
    	$temp_template=~ s/XXX_PASSWORD_XXX/$encrypted_password/g;
    	$ntpasswd = `mkntpwd -N $clear_password`;
    	$lmpasswd = `mkntpwd -L $clear_password`;
    	chomp($ntpasswd);
    	chomp($lmpasswd);
    	$temp_template =~ s/XXX_NTPASSWD_XXX/$ntpasswd/g;
    	$temp_template =~ s/XXX_LMPASSWD_XXX/$lmpasswd/g;
    	$sambarid = $uidNumber*2+1000;
    	$temp_template =~ s/XXX_SAMBARID_XXX/$sambarid/g;
    	$temp_template =~ s/XXX_PPTPPASSWORD_XXX/$clear_password/g;
     
     
    	#### WRITE LDIF
    	open(FINAL,">$ExportFile");
    	print FINAL $temp_template;
    	close(FINAL);
     
    	### INSERT LDIF TO LDAP
     
    	`ldapadd -x -h $LDAPServer -v -D $LDAPRootDN -w $LDAPRootPassword -f $ExportFile`;
     
    	### PRINT PASSWORD AND USER
    	print "Login: $login\n";
    	print "Password: $clear_password\n";
    	print "Email: $email\n";
     
        }
        $ldap->unbind();
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 49
    Par défaut cool Mais !
    Merci bcp princesse95 !

    Mais comme je l'indiquer au debut de mot post je suis sous linux donc je ne pense pas que le script fonctionnera vu que c'est du Centos et que tu parles d'active directory !

  4. #4
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Par défaut
    Le script fonctionnera. Le truc c'est que dans mon cas, l'utilisateur est fois crée, je dois le rentrer dans l'AD pour qu'il puisse se connecter à sa machine.

    Il suffit après avoir lancer le script d'adapter en fonction de comment fonctionne ton architecture.

    Petite précision, mon script est bien exécuté sur un linux.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 49
    Par défaut ok
    ok je vais tester ! Mais si tu est bien sous linux pourquoi tu me parles de AD et que ton script parle de AD ?
    Merci

  6. #6
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    221
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 221
    Par défaut
    Mon infra comporte du linux et du windows. Le serveur qui éxécute le script est sous linux mais après mes utilisateurs sont centralisés sur windows dans l'AD.

    Mais tu peux l'adapter selon tes besoins. Tu as déjà le principal de fait avec le script.

Discussions similaires

  1. Script Création de table plus chargement
    Par Poisson59 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 10/08/2006, 14h14
  2. Réponses: 6
    Dernier message: 27/04/2006, 10h41
  3. [Oracle] Script création Table, violation de contraintes
    Par boudou dans le forum Langage SQL
    Réponses: 2
    Dernier message: 21/02/2006, 13h47
  4. Bug de création de mail
    Par grokik dans le forum ASP
    Réponses: 1
    Dernier message: 25/10/2005, 21h24
  5. PB ouvrir outlook et création de mail sans l'envoyer
    Par adelhuille dans le forum Access
    Réponses: 2
    Dernier message: 06/01/2005, 16h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo