Modification utilisateur Active Directory
Bonjour à tous,
je viens souvent sur ce forum afin de trouver des informations à mes problèmes de scripting, et je vous remercie pour l'aide que j'ai pu trouver ainsi que pour votre aide à mon problème actuel.
J'ai déjà lu des posts sur des modifications sur un Active Directory en vbs.
Par contre, je n'ai pas vu (ou réussi à voir) de solution à mon problème actuel :
Pour faire clair, je dois modifier le chemin HomeDirectory de (presque tous les utilisateurs) présents dans une certaine OU mais aussi dans toutes les "sous-OU" de cette première OU :
OU=Users & Groups,OU=Toulouse,DC=*,DC=*,DC=*,DC=*,DC=*
et donc modifier tous les utilisateurs qu'on peut trouver sous cette OU contenant d'autres OU bien évidemment (OU DSI, OU DAF, etc).
J'ai déjà fait le script .vbs me permettant de modifier le lecteur et le chemin du HomeDir pour chaque utilisateur dans une OU précisée mais je n'arrive pas à aller dans les autres dossiers comme l'on peut faire avec SubFolders...
Ci-dessous mon code (pour des raisons professionnelles et de confidentialité, j'ai du cacher les noms et chemins exacts, merci de votre compréhension) :
Code:
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 79 80 81 82 83 84 85 86 87 88
| '#########################################################
'Script .vbs pour modification des objets utilisateurs
'Changement du champ Home Directory des utilisateurs
'dans une OU précisée
'
'version 1.3
'Author :*
'Release : */2013
'
'Test sur l'OU des users de la DSI Toulouse
'
'#########################################################
'Déclaration des variables principales
'ShareName --> Dossier de partage réseau
'objParent --> OU où chercher les objets User, Array sur User
'strDrive --> Lettre de montage du lecteur
'Compteur --> Connaître le nombre de modification
Dim objLogFile, fso
ShareName = "share\Home"
set objParent = GetObject("LDAP://OU=Users & Groups,OU=Toulouse,DC=*")
objParent.Filter = Array("user")
strDrive = "H:"
Compteur = 0
CompteurLecteur = 0
CompteurHomeVide = 0
CompteurOK = 0
'Déclaration Logfile
'Ouverture du fichier Log Change_HomeDir_AD_Toulouse
Set fso = CreateObject("Scripting.FileSystemObject")
Set objLogFile = fso.OpenTextFile ("C:\Change_HomeDir_AD_Toulouse_" &day(now) & "_" &month(now) & "_" &year(now)&".log",2,true)
objLogFile.Writeline vbTab & "#########################################"
objLogFile.Writeline vbTab & "# Script started at " & Now & " #"
objLogFile.Writeline vbTab & "#########################################"
objLogFile.Writeline vbCrLf
'Pour chaque objet User trouvé
'Changement du champ HomeDir de l'utilisateur
'Si le HomeDir est sur Oldserver
for each objUser in objParent
if objUser.HomeDirectory = "\\oldserver\home\%username%" and objUser.homeDrive = "H:" then
objUser.HomeDirectory = "\\newserver" & "\" & ShareName & "\" & _
objUser.Get("sAMAccountName")
objUser.homeDrive = strDrive
objUser.SetInfo
objLogFile.Writeline "- Champ HomeDirectory : " & objUser.HomeDirectory & vbCrLf & vbTab & " montée sur le lecteur " & objUser.homeDrive & " est appliquée sur l'utilisateur : " & objUser.Get("sAMAccountName") & "."
objLogFile.Writeline vbCrLf
Compteur = Compteur + 1
else
if objUser.HomeDirectory = "\\newserver" & "\" & ShareName & "\" & objUser.Get("sAMAccountName") then
objLogFile.Writeline "- Champ HomeDirectory : l'utilisateur " & objUser.Get("sAMAccountName") & " a déjà sa Home sur newserver !"
objLogFile.Writeline vbCrLf
CompteurOK = CompteurOK + 1
end if
if objUser.HomeDirectory = "" then
objLogFile.Writeline "- Champ HomeDirectory : l'utilisateur " & objUser.Get("sAMAccountName") & " n'a pas de Home rensignée !"
objLogFile.Writeline vbCrLf
CompteurHomeVide = CompteurHomeVide + 1
end if
if objUser.homeDrive <> "H:" then
objLogFile.Writeline "- Champ HomeDirectory : l'utilisateur " & objUser.Get("sAMAccountName") & " a sa Home sur le lecteur " & objUser.homeDrive & " !"
objLogFile.Writeline vbCrLf
CompteurLecteur = CompteurLecteur + 1
end if
end if
next
'Fin et fermeture du fichier log
objLogFile.Writeline vbTab & "--> Nombre de modifications sur l'OU de Toulouse : " & Compteur
objLogFile.Writeline vbTab & "--> Nombre de personnes sur un autre lecteur que H: : " & CompteurLecteur
objLogFile.Writeline vbTab & "--> Nombre de personnes n'ayant pas de lecteur Home : " & CompteurHomeVide
objLogFile.Writeline vbTab & "--> Nombre de personnes déjà connectées sur newserver : " & CompteurOK
objLogFile.Writeline vbCrLf
objLogFile.Writeline vbTab & "#######################################"
objLogFile.Writeline vbTab & "# Script ended at " & Now & " #"
objLogFile.Writeline vbTab & "#######################################"
objLogFile.close
'Cleanup des objets
Set fso = Nothing
Set objLogFile = Nothing
'Sortie du script
WScript.Quit() |
Avec cela, c'est bon pour la modification du HomeDir et du lecteur réseau, mais si vous pouvez m'aider sur comment descendre dans les sous-OU, vous seriez vraiment adorable !!
merci d'avance pour votre aide et bonne journée à tous ;)
Filmaster.