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

VBScript Discussion :

bug script expiration


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 75
    Par défaut bug script expiration
    bonjour,

    il ya quelque temps j'avais demande de l'aide pour un script qui renvoie la date d'expiration de compte de l'utilisateur si il y en as une.

    ce script fonctionnait

    j'ai voulu le modifier pour qu il commence a renvoyer la date seulement 30 jours avant la fin de l'expiration

    jusque la ca va.

    la ou ca se complique c'est qu'en utilisant le meme script avec different utilisateur, j'obtiens des resultats completement different.

    avec mon compte admin du domaine, ca fonctionne tout le temps, n'affiche pas de message si je n'ai pas de date de desactivation ou si elle est dans plus d'un mois, en gros il m'affiche la date d'expiration seulement si elle est dans moins de 31 jours.

    par contre avec d'auutres utilisateurs, les resultats sont completement aleatoire.

    affichage de la date du 01/01/1970 ou 01/01/1601 pour l'expiration du compte, ou bien meme un message qui me dis

    objrequis "objuser"

    code : 800A01A8

    ligne 29

    voici le code

    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
     
    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection
     
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = 2
     
     
     Set WshNet = CreateObject("WScript.Network")
    User = WshNet.Username
     
    strUser = User
     
    objCommand.CommandText = "SELECT Name, ADsPath FROM 'LDAP://dc=mjs,dc=local' where name='" & strUser & "*' and objectCategory='user'"
    Set objRecordSet = objCommand.Execute
    If objRecordSet.RecordCount > 0 Then
     
    ' on inscrit le cn dans une variable, et voilà
     
    usrCN = objRecordSet.Fields("ADsPath").Value
    Set objUser = GetObject (usrCN)
     
    End If
     
    dim dtmAccountExpiration
     
    dtmAccountExpiration = objUser.AccountExpirationDate
     
    If dtmAccountExpiration <> "01/01/1601 01:00:00" Then
     
    A = dtmAccountExpiration - date ' A est la variable qui fait la difference entre les deux date (elle est inferieur ou superieur a 30)
     
    If A < 31 Then
        MsgBox "Votre compte expire le : " & objUser.AccountExpirationDate, vbExclamation, "Avertissement"
    End If
     
    End If
    merci d'avance a ceux qui peuvent m'aider

  2. #2
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Par défaut
    Salut,

    tu risques d'avoir ce message si tu ne retrouve pas le bon nom %username% dans ton select. Exemple chez moi ton script se plante avec la même erreur que toi parceque WshNet.Username c'est "Nom de famille et première lettre du prénom" et que Name c'est "Nom de famille (espace) Prénom".

    A++

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 75
    Par défaut
    je suis pas sure d'avoir bien compris

    d'apres toi la variable d'username que j'utilise irait en fait chercher des informations personelle dans le compte au lieu de chercher directement le username c ca?

    le truc c que mon compte a moi n'a aucun rapport avec mon nom (c'est un compte admin avec une facon precise ou seule 3 lettres corresponde a mon nom)

    donc meme si il allait chercher ces info ca ne marcherait pas pour moi

    or ca fonctionne

    peut tu t'expliquer un peu plus stp?

  4. #4
    Membre chevronné
    Inscrit en
    Août 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 58

    Informations forums :
    Inscription : Août 2007
    Messages : 302
    Par défaut
    Ce que je pense c'est que lorsque ton nom de login (le Username) n'est pas le même que ton nom LDAP "Name" ta requete se plante.

    Peux-tu essayer avec ca pour voir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    objCommand.CommandText = "SELECT Name, ADsPath FROM 'LDAP://dc=mjs,dc=local' where sAMAccountName='" & strUser & "*' and objectCategory='user'
    A+

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    75
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 75
    Par défaut
    ok

    j'avais fait la meme modif mais sur le 1er name de la ligne

    je te remercie ca fonctionne avec ta modification

    je remet un coup le script en entier pour ceux que ca interesse !!

    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
     
    Set objConnection = CreateObject("ADODB.Connection")
    Set objCommand =   CreateObject("ADODB.Command")
    objConnection.Provider = "ADsDSOObject"
    objConnection.Open "Active Directory Provider"
    Set objCommand.ActiveConnection = objConnection
     
    objCommand.Properties("Page Size") = 1000
    objCommand.Properties("Searchscope") = 2
     
     
     Set WshNet = CreateObject("WScript.Network")
    User = WshNet.Username
     
    strUser = User
     
    objCommand.CommandText = "SELECT Name, ADsPath FROM 'LDAP://dc=mjs,dc=local' where SamAccountName='" & strUser & "*' and objectCategory='user'"
    Set objRecordSet = objCommand.Execute
    If objRecordSet.RecordCount > 0 Then
     
    ' on inscrit le cn dans une variable, et voilà
     
    usrCN = objRecordSet.Fields("ADsPath").Value
    Set objUser = GetObject (usrCN)
     
    End If
     
    dim dtmAccountExpiration
     
    dtmAccountExpiration = objUser.AccountExpirationDate
     
    If dtmAccountExpiration <> "01/01/1601 01:00:00" Then
     
    A = dtmAccountExpiration - date ' A est la variable qui fait la difference entre les deux date (elle est inferieur ou superieur a 30)
     
    If A < 31 Then
        MsgBox "Votre compte expire le : " & objUser.AccountExpirationDate, vbExclamation, "Avertissement"
    End If
     
    End If
    voila encore merci a toi

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. jqSuite jqGrid : Script expired!
    Par manuzed78 dans le forum jQuery
    Réponses: 8
    Dernier message: 16/08/2013, 15h56
  2. Bug Script sur IE9
    Par olivier92300 dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 09/08/2011, 12h46
  3. [Tableaux] bug script & protection code
    Par Doksuri dans le forum Langage
    Réponses: 6
    Dernier message: 26/11/2007, 09h41
  4. Bug Script Javascript
    Par chris801 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 07/10/2006, 22h05

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