Bonsoir à tous,
Voilà, je fais des migrations users/pc pour ma boite d'un ancien domaine vers un nouveau. Les groupes et les comptes users sont migré avec sid history. Je voudrais simplement faire un script qui check la presence du compte migré (qui a été au passage renommé) dans une liste predefinie de groupes (anciens groupes de montages) et en fonction de la presence ou non du compte users dans ces groupes là, l'action d'ajout du compte user migré sera ajouté ou non dans les nouveaux groupes de montages crée from scratch dans la cible.

En shématisan cela donnerait ceci :

Je prend un fichier text en entrée que je lis
Je recupere le login du user migré (en 4eme position)
Je vais voir dans l'ad si ce compte est present dans cette liste de groupes que je connais :
Groupe1 -> Si present dans ce groupe alors ajout du compte user dans ce groupe de montage Grpe_mount1
Groupe2 -> Si non present, ne rien faire et passage au test suivant...
Groupe3 -> Etc ...

Je possede ce code ci mais il est pas du tout adapté, car je dois pouvoir lire le fichier text en entrée afin d'automsatiser tout cela.

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
 
On Error Resume Next
'Déclaration des variables'
Dim objGroupList, objADObject, strGroup, objUser
Const ADS_PROPERTY_APPEND = 3
 
Set WshShell = WScript.CreateObject("WScript.Shell")
Set WshVarEnv = WshShell.Environment("PROCESS")
strNetBiosDomain = WshVarEnv.Item ("USERDOMAIN")
strLogonServer = WshShell.ExpandEnvironmentStrings("%Logonserver%")
strUserName = WshShell.ExpandEnvironmentStrings("%USERNAME%")
 
Set objUser = GetObject("WinNT://" & strNetBiosDomain & "/" _
  & strUserName & ",user")
 
'Condition 1 : Si l'utilisateur appartient à "Groupe De montage source XXX1"
If IsMember("Groupe-XXX1") Then
 
Set objGroup = GetObject _
    ("LDAP://cn=Atl-Users,cn=Users,dc=NA,dc=fabrikam,dc=com")
objGroup.PutEx ADS_PROPERTY_APPEND, _
    "member", Array("cn=MyerKen,ou=Management,dc=NA,dc=fabrikam,dc=com")
objGroup.SetInfo
End If
 
'Condition 2 : Si l'utilisateur appartient à Groupe de montage source XXX2"
If IsMember("Groupe-XXX2") Then
Set objGroup = GetObject _
    ("LDAP://cn=Atl-Users,cn=Users,dc=NA,dc=fabrikam,dc=com")
objGroup.PutEx ADS_PROPERTY_APPEND, _
    "member", Array("cn=MyerKen,ou=Management,dc=NA,dc=fabrikam,dc=com")
objGroup.SetInfo
End If
 
 
'Fin du script'
WScript.quit
 
'Les 2 Fonctions de test d'appartenance aux groupes'
Function IsMember(strGroup)
  If IsEmpty(objGroupList) Then
    Call ReadGroups
  End If
  IsMember = objGroupList.Exists(strGroup)
End Function
 
Sub ReadGroups
  Dim objGroup
  Set objGroupList = CreateObject("Scripting.Dictionary")
  objGroupList.CompareMode = vbTextCompare
  For Each objGroup In objUser.Groups
    objGroupList(objGroup.name) = True
  Next
  Set objGroup = Nothing
End Sub
Si vous pouviez me donner un coup de main, car je debute en vb et je galere pas mal!
Merci