Renseigner en masse le champ logon script d'un compte AD [Résolu]

Signaler
-
 kiro95 -
Bonjour,

Je ne m'y connais vraiment pas en VBS, mais voilà je dois renseigner le champ Logon script dans la partie User Profile d'un compte AD. j'ai environ 400 utilsateurs AD où je dois le faire.

J'ai essayé de modifier des scripts que j'ai trouvé sur le forum mais sans succès, quelqu'un pourrait-il m'aider?

Merci d'avance.

3 réponses

Bonjour,

Désolé pour le copier coller en texte brut c'est vrai que je suis totalement novice aussi bien sur le forum que en VB.

Alors quand je dis ça ne fonctionne pas, c'est que le champ que je souhaite renseigner (le chemin du logon script) reste vide.
Je n'ai pas de message d'erreur.

La variable i que j'incrémente je pensais que c'était utile pour passer d'un user à l'autre une fois le champ rempli.
Car mon fichier source est un fichier txt avec les identifiants de mes users (type Alpha Numerique), un identifiant par ligne.

Comme je le disais je ne m'y connais pas en VB j'ai essayer de comprendre et de modifier un script qui à la base changer le password du user.
Je pense avoir le principe, à savoir:
1. Lecture d'un fichier txt listant tous les users.
2. Affecter user par user le chemin d'accès du logon script
3. dans l'ideal logger dans un autre fichier txt le résultat par user champ renseigné ou pas

J'ai essayé de retoucher des scripts que j'ai trouvé sur internet mais ça ne fonctionne pas, quelqu'un pourrait-il m'aider?
Voilà ce que j'ai fait:

'===============================================
'Déclaration des variables
'===============================================
Dim login, file_source, i
file_source = ".\LoginFile.txt"
i = 0

'===============================================
'Déclaration des fonctions
'===============================================
Function WriteSetting(user)
loscr = "Europe\LOGON_VBS_FR.vbs"
Set objUser = GetObject("LDAP://CN=" & user & ",OU=Users,OU=France,DC=euro,DC=mmm,DC=com")
objUser.Put loscr
objUser.SetInfo

End function

Function ListSetting()
Set objUser = GetObject("LDAP://CN=" & user & ",OU=Users,OU=France,DC=euro,DC=mmm,DC=com")
objUser.scriptPath
End Function



Function read_file()
set fso = CreateObject("Scripting.FileSystemObject")
Set readfile = fso.OpenTextFile(File_source, 1, True)
Do while readfile.AtEndOfStream = false
contents = readfile.readline
call WriteSetting(contents)
i = i + 1
Loop
Set LogFile = fso.OpenTextFile(".\Reset.log", 8, True)
LogFile.write("----------------------------------------------------------" & VbCrLf & _
vbTab & vbTab & "Nombre total de comptes traités : " & i & VbCrLf)
LogFile.close
readfile.close
End Function

Function Log_WriteSetting(usr)
Var = date()
set fso = CreateObject("Scripting.FileSystemObject")
Set LogFile = fso.OpenTextFile(".\Reset.log", 8, True)
LogFile.write(Var & " : Affectation chemin Logon Script " & usr & VbCrLf)
LogFile.close
End Function
'===============================================
'Début du script
'===============================================
On error resume next

ListSetting

read_file()
msgbox "script fini"
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
4
Bonjour,

Quand tu postes un code ici, penses à indenter ton code et utiliser la coloration syntaxique (3eme icône en partant de la droite) c'est plus lisible bien qu'ici le code soit court donc pas trop gênant.

ensuite ca ne fonctionne pas, c'est vague, tu as un message d'erreur?

à quoi te sert ta variable i que tu incrémentes?tu ne l'utilises nulle part sauf erreur de ma part.

Et le fichier texte ou y'a les infos, sous quelle forme se présente-t-il?


L'expérience, c'est une connerie par jour, mais jamais la même..