Bonjour à tous !
J'ai demandé un jour à quelqu'un si c'etait possible d'insérer des valeurs, contenues dans un document texte, dans une base de données a partir d'un fichier VBscript...il m'a dit oui, c'est facile, tu fais ca, ca, ca hop tu vois, je test ca marche tiens prends le script cadeau hahaha...
Au final, j'ai rien compris, et je me retrouve avec un script, dont la finalité pourrait etre pour moi très très interessante, mais qui ne marche pas.
Le projet auquel ce script servirais est un vrai casse-tête, donc si vous aimez les sujets d'examen type Licence VBScript ceinture marron option jenmangetoulesjouroptidèj' vous pourrez sans doute m'aider !
Les scripts que j'ai élaboré moi-même sont vraiment simples, vous n'aurez donc pas de difficulté a les comprendre, j'essayerai cependant d'etre le plus clair possible afin d'éviter que vous vous retrouviez...heu...dans le même cas que moi actuellement...
Le principe est le suivant...dans un premier temps j'utilise un premier fichier VBscript pour inserer des noms et des prénoms (dont la concaténation prénom.nom donne un pseudo) dans un fichier pseudos.txt stocké a la racine.
Ensuite, un deuxieme fichier VBscript, mis dans les taches planifiées s'executant tous les soirs a 18h, insère les valeurs dans un annuaire active directory. J'ai mis DOMAINE pour le nom de domaine, NOM_COMPLET_ORDI pour le nom complet, pour que le script soit plus comprehensible
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 dim rep, nom, prenom rep = 6 'création de l'objet objfso permettant de lire les fichiers set objfso = createobject("scripting.filesystemobject") 'si le fixhier contenant les utilisateurs existe, on l'ouvre, sinon on le crée if objfso.fileexists("c:\pseudos.txt") then set file = objfso.opentextfile("c:\pseudos.txt", 8) else set file = objfso.createtextfile("c:\pseudos.txt",FALSE) end if do while rep = 6 nom = inputbox("Quel est le nom du nouvel utilisateur ?","ajout de nouvel utilisateur") ' contrôle de saisie if nom = "" then msgbox("annulation de l'utilisateur, ou saisie incorrecte") wscript.quit end if prenom = inputbox("Quel est le prénom du nouvel utilisateur ?","ajout de nouvel utilisateur") ' contrôle de saisie if prenom = "" then msgbox("annulation de l'utilisateur, ou saisie incorrecte") wscript.quit end if file.writeline(prenom&"."&nom) rep = msgbox("voulez-vous rentrer un autre utilisateur ?",292,"ajout de nouvel utilisateur") 'contrôle de saisie if rep = "" then msgbox("annulation de l'utilisateur") wscript.quit end if loop file.close msgbox("Fichier mis à jour dans c:\pseudos.txt avec succès ! Le mot de passe par défaut est toto")
et enfin, que je pourrai une fois corrigé rajouter dans ce bout de code, le script d'exemple que m'a filé l'autre zozo, a partir d'une table créee dans phpmyadmin qui s'appelle test1
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 On Error Resume Next domaine = "dc = DOMAINE, dc = DOMAINE, dc = DOMAINE" uo = "UNITE D ORGANISATION" set objfso = createobject("scripting.filesystemobject") set objuser = getobject("LDAP://"& domaine) Set objOU = objuser.Create("organizationalUnit", "ou=UNITE DORGANISATION") objOU.SetInfo err.number = 0 set objuser = getobject("LDAP://ou=" & uo & "," & domaine) set wshshell = wscript.createobject("wscript.shell") if objfso.fileexists("c:\pseudos.txt") then set file = objfso.opentextfile("c:\erreurs.txt", 8) else msgbox("Aucun nouvel utilisateur n'a été ajouté depuis la dernière mise à jour !") wscript.quit end if set fich = objfso.opentextfile("c:\pseudos.txt", 1) do until fich.atendofstream username = fich.readline bout = split(username, ".") set user = objuser.create("user", "cn=" & username) user.samaccountname = username user.sn = bout(1) user.givenname = bout(0) user.setinfo user.accountdisabled = FALSE user.setpassword "toto" user.put "pwdlastset", 0 user.setinfo if err.number <> 0 then if objfso.fileexists("c:\erreurs.txt") then set file = objfso.opentextfile("c:\erreurs.txt", 8) else set file = objfso.createtextfile("c:\erreurs.txt",FALSE) end if file.writeline(now&" Utilisateur "&username&" déjà existant ! Son mot de passe sera toto") erreurs = erreurs + 1 err.number = 0 end if loop fich.close Set del = objfso.GetFile("c:\pseudos.txt") del.delete if erreurs <> 0 then rep = msgbox("Attention ! "&erreurs&" erreurs ont été générées. Voulez-vous consulter le fichier c:\erreurs.txt pour en connaitre les raisons ?", 308, "Mise à jour d'Active Directory") end if if rep = 6 then wshshell.Run "c:\erreurs.txt", 1, true end if
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 Dim cnx Dim valeur Set cnx = CreateObject("ADODB.Connection") Set rs = CreateObject("ADODB.Recordset") Set fso = CreateObject("scripting.fileSystemObject") Set objet = fso.OpenTextFile(".\toto.txt", 8, true) cnx.ConnectionString = "DSN=localhost;" cnx.Open ' cnx.execute "INSERT INTO test1 (chp2, chp3, chp4) VALUES ('val1', 'val2', 'val3');" rs.Open "SELECT * FROM test1;", cnx while not rs.eof valeur = ("chp1 : " & rs("chp1") & vbcrlf & " chp2 : " & rs("chp2") & vbcrlf & _ "chp3 : " & rs("chp3") & vbcrlf & " chp4 : " & rs("chp4") ) ' cnx.execute "UPDATE test1 SET chp3 = 'New Value' WHERE chp1=" & rs("chp1") & ";" objet.write (valeur & vbcrlf) rs.movenext wend rs.close 'object.close set objet = nothing set fso = nothing set rs = nothing set cnx = nothing cnx.close
L'ultime but de ce code est que j'obtienne une table X avec 3 champs : Nom, prénom et Pseudo, sachant que pseudo = prénom.nom
Je vous remercie sincèrement de l'attention que vous portez pour mon problème !
Bonne journée !
Michael
Partager