begin process at 2008 08 28 11:36:56
1 233 022 membres
137 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : groupe active directory [ Scripting / VBScript ] (khayes)

groupe active directory le 27/11/2007 12:30:58

khayes
Bonjour a vous,
voila ma problematique : retirer les comptes désactivés des groupes de diffusion.
j'arrive tres bien à parcourir tous les comptes de l'active directory, à filtrer ceux qui sont désactiver et à identifier ceux qui sont membres d'un groupe de diffusion.
Cependant je n'arrive pas à retirer cet utilisateur du groupe de diffusion, j'obtiens le message d'erreur suivant
ligne 52
caract 3
la propriete repertoire n'est pas presente dans le cache
code 8000500d
source: active directory

à titre de test (et de sauvegarde), j'enregistre dans un fichier excel les groupes à supprimer

merci pour votre aide


Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.DisplayAlerts = FALSE
Set objWorkbook = objExcel.Workbooks.Add
Set objWorksheet = objWorkbook.Worksheets(1)

Const ADS_SCOPE_SUBTREE = 2

'Connection a l'Active Directory
Set objConnection = CreateObject("ADODB.Connection")
Set objCommand =   CreateObject("ADODB.Command")
objConnection.Provider = "ADsDSOObject"
objConnection.Open "Active Directory Provider"

'Requete d'utilisateurs dans l'Active Directory
Set objCommand.ActiveConnection = objConnection
objCommand.Properties("Page Size") = 3000
objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE
objCommand.CommandText = "SELECT distinguishedName FROM 'LDAP://dc=xxx,dc=xxx,dc=fr' WHERE objectCategory='user'"
Set objRecordSet = objCommand.Execute
objRecordSet.MoveFirst

'Ecriture des titres de colonnes Excel
objExcel.Cells(1, 1).Value = "CONTAINER"
objExcel.Cells(1, 2).Value = "GROUPE"

'Appel de la fonction pour tous les utilisateurs de l'AD et pointeur sur la 2eme ligne du document Excel
x = 2
Do Until objRecordSet.EOF
    CleanDistrib(objRecordSet.Fields("distinguishedName").Value)   
    objRecordSet.MoveNext
Loop

Function CleanDistrib(utilisateur)
    Const ADS_PROPERTY_DELETE = 4
    Set objUser = GetObject("LDAP://"+utilisateur) 'selectionne un  utilisateur
   
    If objUser.AccountDisabled = True Then '1er filtrage : seulement les utilisateurs desactives
        arrMemberOf = objUser.GetEx("memberOf") 'recuperation des groupes dont l'utilisateur est membre
        intPrimaryGroupID = objUser.Get("primaryGroupID")

        For Each Group in arrMemberOf
            if InStr(group, "Destinataires") then '2eme filtrage : uniquement les groupes de diffusion
                'Enregistrement dans excel du groupe de diffusion de l'utilisateur
                objExcel.Cells(x, 1).Value = utilisateur
                objExcel.Cells(x, 2).Value = group
                x = x + 1
                'Suppression de l'utilisateur du groupe de diffusion
                set ObjGroup = GetObject ("LDAP://"&group)
                ObjGroup.PutEx ADS_PROPERTY_DELETE, "member", Array(utilisateur)
                ObjGroup.SetInfo
                wscript.echo "groupe "+group+" supprimé pour "+utilisateur
            end if
        Next
    End If
End Function

'mise en forme du document excel
Set objRange = objExcel.Range("A1")
objRange.Activate
Set objRange = objExcel.ActiveCell.EntireColumn
objRange.Autofit()

Set objRange = objExcel.Range("B1")
objRange.Activate
Set objRange = objExcel.ActiveCell.EntireColumn
objRange.Autofit()

'enregistrement du document excel
objWorkbook.SaveAs("C:\vbs\group.xls")
objExcel.Quit


Classé sous : utilisateur, active, groupe, diffusion, objexcel

Participer à cet échange

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Boutique

Boutique de goodies CodeS-SourceS