Bonjour,
Je suis en train de faire un petit script, qui m'importe les utilisateurs qui sont dans un csv, dans l'Active Directory.
Ce script fonctionne, toutefois je veux rajouter un UID, qui quand on l'active via l'interface graphique sous l'Active Directory, prend le 1er numéro de libre.
Etant donné que sous Linux, l'UID détient les droits d'utilisateur, il ne faut évidemment pas que deux utilisateurs ait le même.
Je pouvais, grâce a mon script, activer l'UID, mais quand je créais plusieurs utilisateurs, ils avaient tous le même UID.
J'ai donc mis une petite boucle au point, qui est censé checker tous les utilisateurs afin de voir quel est le 1er UID libre.
Pour des raisons pratique, mes UID commence à 10000.
C'est la boucle à la fin qui ne fonctionne pas, je l'ai pourtant recopié d'un autre script d'extraction de donnée qui fonctionnait nickel (la même boucle, extraction et condition différentes).
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 Option Explicit 'déclaration des variables Dim fso Dim fichier Dim Ligne dim intPwdValue Dim v dim valeur valeur=10000 dim vvaleur dim uidlibre intPwdValue = 0 Dim complet, account, login, nom, prenom, display, password '16 détermine le fichier à ouvrir Set FSO = CreateObject("Scripting.FileSystemObject") Set fichier = fso.OpenTextFile("d:\testscript\liste.csv", 1) 'boucle qui lis chaque ligne du fichier et qui stocke les informations dans un tableau Do While (Not fichier.AtEndOfStream) Ligne = fichier.Readline v = Split(Ligne, ";") Cree_Utilisateur v(0), v(1), v(2), v(3), v(4), v(5), v(6), v(7) Loop 'fonction qui permet de créer l'utilisateur sous Active directory Function Cree_Utilisateur(gid, account, groupeunix, nom, prenom, display, password, mail) 'determine le chemin LDAP Dim Root Dim DomainPath Set Root = GetObject("LDAP://DC=dom,DC=aine,DC=local") DomainPath = "DC=dom,DC=aine,DC=local" '36 Indique l'OU de l'utilisateur Dim chemin Set chemin = GetObject("LDAP://OU=peuple," & DomainPath) '40 Boucle qui check l'UID dispo objRecordSet.MoveFirst Do while objRecordSet.EOF Set objUser = GetObject(objRecordSet.Fields("AdsPath").Value) uid=user.uidnumber If user.uidnumber = valeur Then valeur = valeur +1 end if '49 objRecordSet.MoveNext loop msgbox("la commande s'est terminé correctement!")
Je compte mettre le script en entier à l'endroit qui correspondra le mieux, quand il sera terminé.
Merci d'avance si certaines personnes peuvent m'aider.
PS : j'ai testé pas mal de modif sur la boucle avant de venir ici, en fait elle est censé checker tous les utilisateurs, si elle trouve que le nombre qu'elle teste est pris, alors +1 et objet suivant, sinon objet suivant, et à la fin du fichier, on est censé avoir dans la variable un UID libre. (j'espère ne pas me trompe).
Partager