OVH Cloud OVH Cloud

Ajout/Modification attributs utilisateurs

3 réponses
Avatar
Servco
Bonjour,

J'airais besoin d'aide pour ajouter ou modifier des attributs utilisateurs
sur mon AD.
J'ai un fichier Excel qui regroupe mes utilisateurs et la DRH remplie et met
a jour la colonne 'Poste' le resp. logistique rempli et met a jour la colonne
'Bureau' et le resp. telephonie rempli et met a jour la colonne 'telephone'.
Je cherche une solutions(Script je pense) qui puisse prendre les information
dans ce fichier Excel pour mettre a jour les champs de mes utilisateurs de
facon automatique (exemple toute les nuits).

J'ai trouver des scripts mais ils ne permette d'ajouter des attribut communs
comme l'adresse, alors que moi je cherche a mettre a jour des attributs
personalisés (pour chaque utilisateur la valeur sera différente).

Merci de votre aide.

Servco

3 réponses

Avatar
Jonathan Bismuth
Un petit script à remanier selon tes besoins qui prends un fichier csv en
entrée avec pour chaque ligne : utilisateur(cn);bureau;téléphone;poste

'## debut script###
Const ForReading = 1, ForWriting = 2, ForAppending = 8

Set oContainer = GetObject("LDAP://dc=domaine,dc=lan")

ConvertUsers(oContainer)
' Nettoyage de mémoire

Set oContainer = Nothing

WScript.Quit

Sub ConvertUsers(oTopLevelContainer)
Dim oObj

For Each objUser in oTopLevelContainer

Select Case objUser.Class

Case "organizationalUnit" , "container"
ConvertUsers(ObjUser)

Case "inetOrgPerson"
dim fso, df1
CSVFile = "c:chemintoto.csv"

Set fso = CreateObject("Scripting.FileSystemObject")
Set df1 = fso.OpenTextFile(CSVFile,ForReading,True)

Do while Not df1.AtEndOfStream
varLigne = df1.readline()

CNUser = split(varLigne,";")(0)
Bureau = split(varLigne,";")(1)
Tel = split(varLigne,";")(2)
Poste = split(varLigne,";")(3)

'msgbox ""& Poste
'msgbox ""& CNUser

If CNUser= objuser.cn Then

msgbox "ok pour" &CNUser
'Set oobj = GetObject ("LDAP://cn=" & CNUser & ",dc=domaine,dc=lan")

objUser.Put "title",""& Poste
objUser.Put "physicalDeliveryOfficeName",""& Bureau
objUser.Put "telephoneNumber",""& Tel

objUser.setinfo
End If
Loop

df1.close
End select
' Va à la prochaine OU enfant
Next
End Sub

'## fin script###
--
Jonathan BISMUTH
NET2S Group
MVP Windows Server - Directory Services
MCSE 2000/ADSI-AutoIT Scripter
Transcript (ID: 691839, code: MCSE2000)
www.portail-mcse.net
pour me contacter http://cerbermail.com/?oAsXWZnZF1


"Servco" a écrit dans le message de news:

Bonjour,

J'airais besoin d'aide pour ajouter ou modifier des attributs utilisateurs
sur mon AD.
J'ai un fichier Excel qui regroupe mes utilisateurs et la DRH remplie et
met
a jour la colonne 'Poste' le resp. logistique rempli et met a jour la
colonne
'Bureau' et le resp. telephonie rempli et met a jour la colonne
'telephone'.
Je cherche une solutions(Script je pense) qui puisse prendre les
information
dans ce fichier Excel pour mettre a jour les champs de mes utilisateurs de
facon automatique (exemple toute les nuits).

J'ai trouver des scripts mais ils ne permette d'ajouter des attribut
communs
comme l'adresse, alors que moi je cherche a mettre a jour des attributs
personalisés (pour chaque utilisateur la valeur sera différente).

Merci de votre aide.

Servco


Avatar
Servco
Salut,

Un grand merci pour ton script, juste une précision, comme je suis nul en
scripting, j'ai modifier la ligne 3 en replacant 'dc=domaine,dc=lan' par le
chemin de mon ad 'dc=test,dc=fr' et le chemin au ce trouve mon fichier csv.

Lorsque je lance le script, rien ne se passe, y a t'il d'autres chose a
modifier ?

Merci


Un petit script à remanier selon tes besoins qui prends un fichier csv en
entrée avec pour chaque ligne : utilisateur(cn);bureau;téléphone;poste

'## debut script###
Const ForReading = 1, ForWriting = 2, ForAppending = 8

Set oContainer = GetObject("LDAP://dc=domaine,dc=lan")

ConvertUsers(oContainer)
' Nettoyage de mémoire

Set oContainer = Nothing

WScript.Quit

Sub ConvertUsers(oTopLevelContainer)
Dim oObj

For Each objUser in oTopLevelContainer

Select Case objUser.Class

Case "organizationalUnit" , "container"
ConvertUsers(ObjUser)

Case "inetOrgPerson"
dim fso, df1
CSVFile = "c:chemintoto.csv"

Set fso = CreateObject("Scripting.FileSystemObject")
Set df1 = fso.OpenTextFile(CSVFile,ForReading,True)

Do while Not df1.AtEndOfStream
varLigne = df1.readline()

CNUser = split(varLigne,";")(0)
Bureau = split(varLigne,";")(1)
Tel = split(varLigne,";")(2)
Poste = split(varLigne,";")(3)

'msgbox ""& Poste
'msgbox ""& CNUser

If CNUser= objuser.cn Then

msgbox "ok pour" &CNUser
'Set oobj = GetObject ("LDAP://cn=" & CNUser & ",dc=domaine,dc=lan")

objUser.Put "title",""& Poste
objUser.Put "physicalDeliveryOfficeName",""& Bureau
objUser.Put "telephoneNumber",""& Tel

objUser.setinfo
End If
Loop

df1.close
End select
' Va à la prochaine OU enfant
Next
End Sub

'## fin script###
--
Jonathan BISMUTH
NET2S Group
MVP Windows Server - Directory Services
MCSE 2000/ADSI-AutoIT Scripter
Transcript (ID: 691839, code: MCSE2000)
www.portail-mcse.net
pour me contacter http://cerbermail.com/?oAsXWZnZF1


"Servco" a écrit dans le message de news:

Bonjour,

J'airais besoin d'aide pour ajouter ou modifier des attributs utilisateurs
sur mon AD.
J'ai un fichier Excel qui regroupe mes utilisateurs et la DRH remplie et
met
a jour la colonne 'Poste' le resp. logistique rempli et met a jour la
colonne
'Bureau' et le resp. telephonie rempli et met a jour la colonne
'telephone'.
Je cherche une solutions(Script je pense) qui puisse prendre les
information
dans ce fichier Excel pour mettre a jour les champs de mes utilisateurs de
facon automatique (exemple toute les nuits).

J'ai trouver des scripts mais ils ne permette d'ajouter des attribut
communs
comme l'adresse, alors que moi je cherche a mettre a jour des attributs
personalisés (pour chaque utilisateur la valeur sera différente).

Merci de votre aide.

Servco







Avatar
Jonathan Bismuth
re,

si tu utilise des utilisateurs et non des inetOrgPerson, modifie la ligne
Case "inetOrgPerson" en Case "user"
ça devrait être mieux

--
Jonathan BISMUTH
NET2S Group
MVP Windows Server - Directory Services
MCSE 2000/ADSI-AutoIT Scripter
Transcript (ID: 691839, code: MCSE2000)
www.portail-mcse.net
pour me contacter http://cerbermail.com/?oAsXWZnZF1


"Servco" a écrit dans le message de news:

Salut,

Un grand merci pour ton script, juste une précision, comme je suis nul en
scripting, j'ai modifier la ligne 3 en replacant 'dc=domaine,dc=lan' par
le
chemin de mon ad 'dc=test,dc=fr' et le chemin au ce trouve mon fichier
csv.

Lorsque je lance le script, rien ne se passe, y a t'il d'autres chose a
modifier ?

Merci


Un petit script à remanier selon tes besoins qui prends un fichier csv en
entrée avec pour chaque ligne : utilisateur(cn);bureau;téléphone;poste

'## debut script###
Const ForReading = 1, ForWriting = 2, ForAppending = 8

Set oContainer = GetObject("LDAP://dc=domaine,dc=lan")

ConvertUsers(oContainer)
' Nettoyage de mémoire

Set oContainer = Nothing

WScript.Quit

Sub ConvertUsers(oTopLevelContainer)
Dim oObj

For Each objUser in oTopLevelContainer

Select Case objUser.Class

Case "organizationalUnit" , "container"
ConvertUsers(ObjUser)

Case "inetOrgPerson"
dim fso, df1
CSVFile = "c:chemintoto.csv"

Set fso = CreateObject("Scripting.FileSystemObject")
Set df1 = fso.OpenTextFile(CSVFile,ForReading,True)

Do while Not df1.AtEndOfStream
varLigne = df1.readline()

CNUser = split(varLigne,";")(0)
Bureau = split(varLigne,";")(1)
Tel = split(varLigne,";")(2)
Poste = split(varLigne,";")(3)

'msgbox ""& Poste
'msgbox ""& CNUser

If CNUser= objuser.cn Then

msgbox "ok pour" &CNUser
'Set oobj = GetObject ("LDAP://cn=" & CNUser & ",dc=domaine,dc=lan")

objUser.Put "title",""& Poste
objUser.Put "physicalDeliveryOfficeName",""& Bureau
objUser.Put "telephoneNumber",""& Tel

objUser.setinfo
End If
Loop

df1.close
End select
' Va à la prochaine OU enfant
Next
End Sub

'## fin script###
--
Jonathan BISMUTH
NET2S Group
MVP Windows Server - Directory Services
MCSE 2000/ADSI-AutoIT Scripter
Transcript (ID: 691839, code: MCSE2000)
www.portail-mcse.net
pour me contacter http://cerbermail.com/?oAsXWZnZF1


"Servco" a écrit dans le message de
news:

Bonjour,

J'airais besoin d'aide pour ajouter ou modifier des attributs
utilisateurs
sur mon AD.
J'ai un fichier Excel qui regroupe mes utilisateurs et la DRH remplie
et
met
a jour la colonne 'Poste' le resp. logistique rempli et met a jour la
colonne
'Bureau' et le resp. telephonie rempli et met a jour la colonne
'telephone'.
Je cherche une solutions(Script je pense) qui puisse prendre les
information
dans ce fichier Excel pour mettre a jour les champs de mes utilisateurs
de
facon automatique (exemple toute les nuits).

J'ai trouver des scripts mais ils ne permette d'ajouter des attribut
communs
comme l'adresse, alors que moi je cherche a mettre a jour des attributs
personalisés (pour chaque utilisateur la valeur sera différente).

Merci de votre aide.

Servco