Bonjour à tous,

En ce lundi de pont, voici non pas un script mais deux traitants le sujet du groupe principal des utilisateurs d'un domaine.

Le premier script permet de lister le groupe principal des utilisateurs du domaine dans un fichier texte.

Le second script permet de modifier le fameux groupe principal. Parfois, certaines applications ne fonctionnent pas correctement si le groupe principal n'est pas "utilisa. du domaine". C'est là que ce second script trouve tout son intérêt. Il permet de rétablir la configuration initial du groupe principal des utilisateurs en rétablissant ce paramètre à "utilisa. du domaine". Il est bien sur possible d'affecter un autre groupe principal que "utilisa. du domaine" en modifiant la valeure dans le script.

Script 1: Listing du groupe principal des utilisateurs du domaine dans le fichier c:\Primary_Group.txt

On Error Resume Next

Const E_ADS_PROPERTY_NOT_FOUND  = &h8000500D
 Set oDomGrp = GetObject("WinNT://" & "DOMAINE2003" & "/Utilisa. du domaine,group")
Set FileSys = CreateObject("Scripting.FileSystemObject")
Set TxtFile = FileSys.CreateTextFile("c:\Primary_Group.txt", True)
For Each GlobalObj in oDomGrp.Members
  Set objUser = GlobalObj
intPrimaryGroupID = objUser.Get("primaryGroupID")
 
Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
    "<
LDAP://dc=domaine2003,dc=lcl>;(objectCategory=Group);" & _
        "distinguishedName,primaryGroupToken;subtree" 
Set objRecordSet = objCommand.Execute
 
Do Until objRecordset.EOF
    If objRecordset.Fields("primaryGroupToken") = intPrimaryGroupID Then

text = text & ObjUser.name & " ; "
text = text & "Primary group:" & " "
text = text & objRecordset.Fields("distinguishedName")


comp = text
TxtFile.writeline(comp)
text = ""

    End If
    objRecordset.MoveNext
Loop


objConnection.Close
Next

Script 2: Définir le groupe "Uilisa. du domaine" comme groupe principal des membres du groupe "Utilisa. du domaine"

Set oDomGrp = GetObject("WinNT://" & "DOMAINE2003" & "/Utilisa. du domaine,group")
For Each GlobalObj in oDomGrp.Members
  Set objUser = GlobalObj
  Set objGroup = GetObject _
    ("
LDAP://cn=Utilisa. du domaine,cn=Users,dc=domaine2003,dc=lcl")

objGroup.GetInfoEx Array("primaryGroupToken"), 0

objUser.primaryGroupID = objGroup.primaryGroupToken
objUser.SetInfo


  'End if
Next

Voilà pour aujourd'hui!