IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

envoi de mails aux utilisateurs d'AD dont le mot de passe arrive à expiration


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut envoi de mails aux utilisateurs d'AD dont le mot de passe arrive à expiration
    Bonjour à tous,

    Voilà j'ai un petit soucis.
    On me demande de créer un programme sous Excel permettant à l'aide d'un bouton mais aussi d'une variable saisi dans un champ, qui est le nombre de semaines avant expiration, d'envoyer des mails à tous les utilisateurs d'active directory dont le mot de passe va expirer.

    Mais je n'y connais rien à Active directory et à comment se connecter à active directory en vba, mais aussi comment accéder aux utilisateurs et récupérer leur informations.
    Je sais qu'il faut utiliser LDAP., mais j'y comprend rien.

    Je sais pas si ce que je dis est compréhensible mais merci d'avance à ceux qui ont une réponse.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Points : 31
    Points
    31
    Par défaut
    Au boulot, j'administre localement l'AD et pour moi, il gère l'échéance des mots de passe à travers le profil utilisateur. Quinze jours avant l'expiration du mot de passe, à chaque ouverture de session un message propose de modifier immédiatement le mot de passe.
    Bon, dans ma boîte, on est environ 130 000 dans le monde... c'est peut-être pas ton cas, mais je ne comprends pas l'intérêt de cette demande.
    De plus, je suis très sceptique sur l'accès à l'AD via VBA...

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Ben dans l'entreprise il y a 400 salariés.

    Il doit y avoir un intérêt sinon il me demanderait pas ça, je pense.

    Sinon, il y a un champ spécial contenant la date d'expiration du mot de passe ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Heureux-oli
    Homme Profil pro
    Contrôleur d'industrie
    Inscrit en
    Février 2006
    Messages
    21 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Contrôleur d'industrie
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 21 086
    Points : 42 925
    Points
    42 925
    Par défaut
    On peut utiliser AD via VBA, AD n'étant qu'une base de données.

    Mais pou obtenir de meilleures réponse, je te conseille de poser tes questions sur le Forum Windows Serveur.

  5. #5
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    on doit être de la même boite (ça fait du monde) je reçois régulièrement le message d'arrivée à expiration. Pour moi ça doit un doit être un paramétrage Windows Server.
    Citation Envoyé par Gilou1958 Voir le message
    Au boulot, j'administre localement l'AD et pour moi, il gère l'échéance des mots de passe à travers le profil utilisateur. Quinze jours avant l'expiration du mot de passe, à chaque ouverture de session un message propose de modifier immédiatement le mot de passe.
    Bon, dans ma boîte, on est environ 130 000 dans le monde

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par lange521 Voir le message
    Ben dans l'entreprise il y a 400 salariés.

    Il doit y avoir un intérêt sinon il me demanderait pas ça, je pense.

    Sinon, il y a un champ spécial contenant la date d'expiration du mot de passe ?
    Comme je ne sais pas qui te le demande, je ne peux savoir si c'est un problème de méconnaissance ou autre.

    Sinon, il y a effectivement un onglet dans la boîte de dialogue utilisateur concernant le mot de passe mais je pense que les paramétrages doivent être définis dans une stratégie de groupe et non au cas par cas. Et puis, il faut des droits d'administration. Les possèdent-tu tous ?

    La question est complexe...

  7. #7
    Membre éprouvé Avatar de alain.couthures
    Profil pro
    Gérant
    Inscrit en
    Avril 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Avril 2007
    Messages : 902
    Points : 1 247
    Points
    1 247
    Par défaut
    Ne serait-il pas mieux de faire ce traitement dans une classe .Net appelée, comme un objet COM, par une macro ?

  8. #8
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Re bonjour
    Voila j'ai trouvé un bout de code sur internet pour regarder quand le mot de passe arrive à expiration mais il me met une erreur d'automation quand je le lance.
    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
    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
    Sub bouton12_Quandclic()
    
    
    '========================================
        ' First, get the domain policy.
        '========================================
        'Dim oDomain As IADsContainer
        'Dim oUser As IADsUser
        Dim maxPwdAge As LargeInteger
        
        '========================================
        ' Declaring numDays as Currency, due to a
        ' large number calculation.
        '========================================
        Dim numDays As Currency
        
        Dim sQuery As String
        
       
       Set oRoot = GetObject("LDAP://RootDSE")
       sDomain = oRoot.Get("defaultNamingContext")
              Set conn = CreateObject("ADODB.Connection")
              Set comm = CreateObject("ADODB.Command")
              conn.Provider = "ADsDSOObject"
              conn.Open "ADs Provider"
              Set comm.ActiveConnection = conn
        
        strDomainDN = oRoot.Get("defaultNamingContext")
      
       Set oDomainDN = GetObject("LDAP://" & strDomainDN)
      
        sBase = "<" & oDomainDN.ADsPath & ">"
        
       
        'strUserDN = strDomainDN & "/CN=Administrateur,CN=User,DC=cermex,DC=fr"
        
        
         sFilter = "(&(objectCategory=person)(objectClass=user)(name=julie))"
      
            sAttribs = "adsPath"
            sDepth = "subTree"
      
          sQuery = strDomainDN & ";" & sFilter & ";" & sAttribs & ";" & sDepth
          comm.CommandText = sQuery
          Set strUserDN = conn.Execute(sQuery)
         
        
        Set oDomain = GetObject("LDAP://" & strDomainDN)
        Set maxPwdAge = oDomain.Get("maxPwdAge")
    
        '========================================
        ' Calculate the number of days that are
        ' held in this value.
        '========================================
        numDays = ((maxPwdAge.HighPart * 2 ^ 32) + _
                    maxPwdAge.LowPart) / -864000000000@
        Debug.Print "Maximum Password Age: " & numDays
        
        '========================================
        ' Determine the last time that the user
        ' changed his or her password.
        '========================================
        Set oUser = GetObject("LDAP://" & strUserDN) ' erreur sur cette ligne, erreur d automation
             
    
        '========================================
        ' Add the number of days to the last time
        ' the password was set.
        '========================================
        whenPasswordExpires = DateAdd("d", numDays, oUser.PasswordLastChanged)
        
        Debug.Print "Password Last Changed: " & oUser.PasswordLastChanged
        Debug.Print "Password Expires On: " & whenPasswordExpires
    
        '========================================
        ' Clean up.
        '========================================
        Set oUser = Nothing
        Set maxPwdAge = Nothing
        Set oDomain = Nothing
        
        End Sub

    si quelqu'un pouvait m'aider.
    merci d'avance

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 4
    Points : 1
    Points
    1
    Par défaut problème résolu
    Bonjour
    Voila, j'ai enfin résolu mon problème,mon programme fonctionne très bien.

    sites utilisés :
    http://www.freevbcode.com/ShowCode.Asp?ID=710
    http://msdn2.microsoft.com/en-us/lib...80(VS.85).aspx
    http://www.vbforums.com/showthread.php?t=448951
    http://www.rlmueller.net

    Merci
    a+

Discussions similaires

  1. [PHP 5.3] Erreur d'envoi e-mail aux utilisateurs.
    Par Djayson dans le forum Langage
    Réponses: 2
    Dernier message: 01/05/2013, 19h00
  2. Réponses: 3
    Dernier message: 01/04/2011, 20h11
  3. Réponses: 0
    Dernier message: 08/11/2010, 12h01
  4. Réponses: 7
    Dernier message: 02/03/2007, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo