Migrer des comptes Novell
'----------------------------------------------------------------------- ' Copie des répertoires élèves de Novell vers serveur 2003 ' Afin de réaliser la migration de serveur ' Les comptes novell sont réalisés avec cesure ' Les comptes 2003 sont réalisés avec la moulinette de gagny ' Il faut réattribuer les droits aux utilisateurs à la fin avec rstchldrn.bat ' V 0.1 (02/05/06) ' nicolas trugeon LPR Voillaume '------------------------------------------------------------------------ Dim userNovell Dim nom6eleve Dim fs Dim repNovell Dim repClassesNovell Dim classeNovell Dim eleveNovell Dim Epure Dim repElevesNovell Dim repElevesAD Dim cheminNovell Dim cheminAD Dim eleveAD Dim regEx Dim premom Dim repAD Dim destAD Dim fichierlog Dim cheminlog cheminNovell = "n:\users2005\" cheminAD = "j:\" cheminlog = "c:\migAD\log.txt" set fs = CreateObject("Scripting.FileSystemObject") set repNovell = fs.GetFolder(cheminNovell) set repClassesNovell = repNovell.SubFolders set repAD=fs.GetFolder(cheminAD) if fs.FileExists(cheminlog) then set fichierlog = fs.OpenTextFile(cheminlog, 8) else set fichierlog = fs.CreateTextFile(cheminlog) fichierlog.Close set fichierlog = fs.OpenTextFile(cheminlog, 8) end if for each classeNovell in repClassesNovell Epure = Split(classeNovell.path, cheminNovell, -1, 1) fichierlog.WriteLine("classe : " & Epure(1)) set repNovell= fs.GetFolder(classeNovell.path) set repElevesNovell = repNovell.SubFolders for each eleveNovell in repElevesNovell trouve=0 Epure = Split(eleveNovell.path, classeNovell.path, -1, 1) userNovell = right(Epure(1),len(Epure(1))-1) nom6eleve = left(userNovell,len(userNovell)-1) prenom = right(userNovell,1) if prenom="2" then prenom = right(userNovell,2) prenom = left(prenom,1) nom6eleve = left(nom6eleve,len(nom6eleve)-1) end if set repElevesAD=repAD.SubFolders for each eleveAD in repElevesAD Set regEx = New RegExp regEx.Pattern = nom6eleve & "[a-z_]*_" & prenom regEx.IgnoreCase = True 'Ne pas distinguer les minuscules des majuscules regEx.Global = False 'Renvoyer seulement la première occurrence set occurrences = regEx.Execute(eleveAD) if (occurrences.Count = 1) then destAD=eleveAD trouve=trouve+1 exit for 'On sort dès que l'on en a trouvé 1 car sinon trop long... end if Next if trouve>1 then 'Non opérationnel suite au commentaire ci-dessus... fichierlog.WriteLine("on met de coté" & userNovell & " dans la classe " & classeNovell) elseif trouve=1 then fs.CopyFolder eleveNovell , destAD , True fichierlog.WriteLine("on copie " & eleveNovell & " dans " & destAD) else fichierlog.WriteLine("le répertoire " & userNovell & " n est pas trouve") end if next next fichierlog.Close