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

Scripts/Batch Discussion :

Script d'ajout des utilisateurs de plusieurs organisations à plusieurs groupes [PowerShell]


Sujet :

Scripts/Batch

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut Script d'ajout des utilisateurs de plusieurs organisations à plusieurs groupes
    Bonjour,

    je veux faire un scripte pour ajouter des utilisateurs d'une organisation vers un groupe (j'ai plusieurs groupes et plusieurs organisation).

    Nom : capture 1.PNG
Affichages : 888
Taille : 161,0 KoNom : capture 1.PNG
Affichages : 888
Taille : 161,0 Ko

    voila le schéma des organisations et des groupes, je veux ajouter chaque utilisateurs d'organisations a son bon groupes.

    Code PowerShell : 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
    $liste= Import-Csv -Delimiter "," C:\usersTP_1.csv
     
    $ou= "Langues", "biologie", "EducationPhysique", "SoinsInfermiers", 
         "Psychologie", "mathematiques","chimie", "physique", "geologie", "Geographie",
         "Histoire", "GenieElectrique", "Informatique", "Multimedia", "TechniquesAdministratives",
         "TechniquesJudiciaires","SoinsDentaires"
    forEach($m in $ou){
     
                  $chem= "dc=test,dc=local"
                  New-ADOrganizationalUnit -Name $m -Path $chem -ProtectedFromAccidentalDeletion $false
      } 
    $gr= "ProfLangues", "Profbiologie", "ProfEducationPhysique", "ProfSoinsInfermiers", 
         "ProfPsychologie", "Profmathématiques","Profchimie", "Profphysique", "Profgeologie", "ProfGeographie",
         "ProfHistoire", "ProfGenieElectrique", "ProfInformatique", "ProfMultimedia", 
         "ProfTechniquesAdministratives", "ProfTechniquesJudiciaires","ProfSoinsDentaires"
    forEach($g in $gr){
     
                  $chem1= "cn=users,dc=test,dc=local"
                  New-ADGroup -Name $g -Path $chem1 -GroupCategory Security -GroupScope Global  
      }              
     
    foreach ($util in $liste) {
    $n = ($util.nom).Substring(0,1)
    $p= ($util.prenom).Substring(0,1)
    $annee = ($util.dateNaissance).substring(0,4)
    $mois = ($util.dateNaissance).substring(5,2)
    $mdp = $n+$p.ToLower()+$annee + $mois 
    $nom=$util.nom
    $prenom=$util.prenom
     
    $desc=if ($util.coordinateur -eq "oui" ){
               " Coordinateur "
                }
    else {
                " Enseignant "
                }
    $expDate= if (($util.DateExpirCompte) -ne ""  ){
    [DateTime]$util.DateExpirCompte 
     
    }
     
    $OU1="ou="+$util.Dept + ",dc=test,dc=local" 
     
     
    $use=New-ADUser -Name "$nom.$prenom" `
                        -DisplayName "$nom.$prenom"`
                        -GivenName $prenom `
                        -Surname $nom `
                        -SamAccountName "$nom.$prenom" `
                        -UserPrincipalName "$nom.$prenom@test.local" `
                        -OfficePhone $util.ExtensionTel `
                        -Department $util.Dept `
                        -EmployeeNumber $util.numEmp `
                        -Description $desc `
                        -AccountExpirationDate $expDate `
                        -Path $ou1 `
                        -AccountPassword(ConvertTo-SecureString $mdp -AsPlainText -Force) `
                        -ChangePasswordAtLogon $true `
                        -Enabled $true `
                        -PassThru
     
     
    if ($util.coordinateur -eq "oui"){
      Add-ADGroupMember -Identity "CN=Coordinateurs,CN=Users,DC=test,DC=local" -Members $use
     
     
    }
     
    } # cette partie marche bien 
     
    $OUList = @("OU=Langues,DC=test,DC=local", "OU=biologie,DC=test,DC=local")
     
    foreach($l in $gr   ) {$v=Get-ADGroup $l  |Select-Object -ExpandProperty DistinguishedName  `  
     
     
    $UsersList = Foreach($OU in $OUList){ Get-ADUser -Filter * -SearchBase $OU | Select-Object SamAccountName }
     
    Add-AdGroupMember -Identity "$v" -Members $UsersList  #cette partie prends les utilisateur des deux OU nommées et il sont ajoutés a tout les autres groupes. choses qui est fausse.

    Nom : Capture.PNG
Affichages : 492
Taille : 59,5 Ko

    Merci pour vous aides.

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    Code PowerShell : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $OUList = @("OU=Langues,DC=test,DC=local")
    $UsersList = Foreach($OU in $OUList){ Get-ADUser -Filter * -SearchBase $OU | Select-Object SamAccountName }
     
    Add-AdGroupMember -Identity "ProfLangues" -Members $UsersList

    Cette solution marche bien mais je dois la répéter pour tous les OU, moi je cherche à le faire dans un seul code.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2008
    Messages
    69
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 69
    Par défaut
    J'ai réussi le code, merci à vous tous.

    Code PowerShell : 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
    $liste= Import-Csv -Delimiter "," C:\usersTP_1.csv
     
    $Organisation= "Langues", "biologie", "EducationPhysique", "SoinsInfermiers", 
         "Psychologie", "mathematiques","chimie", "physique", "geologie", "Geographie",
         "Histoire", "GenieElectrique", "Informatique", "Multimedia", "TechniquesAdministratives",
         "TechniquesJudiciaires","SoinsDentaires"
    forEach($m in $Organisation){
     
                  $chem= "dc=test,dc=local"
                  New-ADOrganizationalUnit -Name $m -Path $chem -ProtectedFromAccidentalDeletion $false
      } 
    $group= "ProfLangues", "Profbiologie", "ProfEducationPhysique", "ProfSoinsInfermiers", 
         "ProfPsychologie", "Profmathématiques","Profchimie", "Profphysique", "Profgeologie", "ProfGeographie",
         "ProfHistoire", "ProfGenieElectrique", "ProfInformatique", "ProfMultimedia", 
         "ProfTechniquesAdministratives", "ProfTechniquesJudiciaires","ProfSoinsDentaires"
    forEach($g in $group){
     
                  $chem1= "cn=users,dc=test,dc=local"
                  New-ADGroup -Name $g -Path $chem1 -GroupCategory Security -GroupScope Global  
      }              
     
    foreach ($util in $liste) {
    $n = ($util.nom).Substring(0,1)
    $p= ($util.prenom).Substring(0,1)
    $annee = ($util.dateNaissance).substring(0,4)
    $mois = ($util.dateNaissance).substring(5,2)
    $mdp = $n+$p.ToLower()+$annee + $mois 
    $nom=$util.nom
    $prenom=$util.prenom
     
    $desc=if ($util.coordinateur -eq "oui" ){
               " Coordinateur "
                }
    else {
                " Enseignant "
                }
    $expirDate= if (($util.DateExpirCompte) -ne ""  ){
    [DateTime]$util.DateExpirCompte 
     
    }
     
    $OU1="ou="+$util.Dept + ",dc=test,dc=local" 
     
     
    $utilisateur=New-ADUser -Name "$nom.$prenom" `
                        -DisplayName "$nom.$prenom"`
                        -GivenName $prenom `
                        -Surname $nom `
                        -SamAccountName "$nom.$prenom" `
                        -UserPrincipalName "$nom.$prenom@test.local" `
                        -OfficePhone $util.ExtensionTel `
                        -Department $util.Dept `
                        -EmployeeNumber $util.numEmp `
                        -Description $desc `
                        -AccountExpirationDate $expirDate `
                        -Path $ou1 `
                        -AccountPassword(ConvertTo-SecureString $mdp -AsPlainText -Force) `
                        -ChangePasswordAtLogon $true `
                        -Enabled $true `
                        -PassThru
     
     
    if ($util.coordinateur -eq "oui"){
      Add-ADGroupMember -Identity "CN=Coordinateurs,CN=Users,DC=test,DC=local" -Members $utilisateur
     
     
    }
     
    Foreach($i in $group){
    if($util.Dept -eq ($i.Substring(4))){
    Add-AdGroupMember -Identity "$i" -Members $utilisateur -PassThru
    }
    }
     
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création d'un script pour ajouter des utilisateurs
    Par quaresma dans le forum Services Windows
    Réponses: 0
    Dernier message: 18/12/2017, 11h05
  2. Création d'un script pour ajouter des utilisateurs
    Par quaresma dans le forum Windows 10
    Réponses: 0
    Dernier message: 18/12/2017, 10h44
  3. Réponses: 0
    Dernier message: 10/08/2014, 16h29
  4. Quel est la syntaxe exact pour ajouter un utilisateurs dans plusieurs groupes
    Par pierrot10 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 27/02/2014, 13h32
  5. script pour ajouter des utilisateurs postgres
    Par xopos dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 16/08/2004, 10h49

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