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 :

Dernier PC ajouté dans l'AD


Sujet :

VBScript

  1. #1
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut Dernier PC ajouté dans l'AD
    Bonjour,
    Je suis novice en programmation script, je me tourne donc vers vous afin d'obtenir un peut d'aide.
    Je cherche à créer un script qui me permettrai de lister l'ensemble des postes qui on étés créés dans l'AD durant les 30 derniers jours.
    J'ai commencer mon code... mais sans succès.
    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
     
    On Error Resume Next
     
    Const ADS_SCOPE_SUBTREE = 2
     
    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") = ADS_SCOPE_SUBTREE 
     
    objCommand.CommandText = _
        "SELECT Name, whenCreated FROM 'LDAP://OU=monou,DC=mondc,DC=mondc' WHERE objectCategory='computer'" 
     
    Set objRecordSet = objCommand.Execute
     
    objRecordSet.MoveFirst
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.CreateTextFile("D:\Mes Documents\Scripts\recensement_30\PC.csv")
     
    Time = DateDiff ("d", Left(objRecordSet.Fields("whenCreated").Value, 10), Date)
     
    if(Time <= 2) then
    	Do Until objRecordSet.EOF
    		strLine = Chr(34) & objRecordSet.Fields("Name").Value & Chr(34) & ";"
    		strLine = strLine & Chr(34) & Left(objRecordSet.Fields("whenCreated").Value, 10) & Chr(34)
    		objFile.WriteLine strLine
    		objRecordSet.MoveNext
    	Loop
    End if
     
    objFile.Close
    objRecordset.Close
    objConnection.Close
    Mon soucis c'est bien sur la condition! mais je ne sais pas comment faire.
    Merci par avance pour votre aide.
    Cordialement
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  2. #2
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    je ne cherche pas forcément à utiliser ce bout de code, si quelqu'un a une autre proposition, je suis preneur.
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  3. #3
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    enlève la ligne et dis en nous plus sur le message d'erreur , ou sur ce qui ne se fait pas ... rajoute des "marqueurs " du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Wscript.Echo "Time = " & Time

  4. #4
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    En premier lieu je tiens a préciser qu'il n'y a pas d'erreur mais pas de résultat.
    Lorsque je rajoute cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Time = DateDiff("d", Left(objRecordSet.Fields("whenCreated").Value, 10), Now())
    Wscript.Echo "Time = " & Time
    Je me retrouve avec un message m'indiquant que time vaut "2273"
    Mon soucis c'est que je ne sais comment faire pour ne récupérer le nom que des PC qui on étés ajoutés durant les 30 derniers jours.

    Merci pour votre aide
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  5. #5
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    et si tu affiche cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wscript.echo objRecordSet.Fields("whenCreated").Value
    Cela donne quoi ..?

  6. #6
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    J'ai un résultat avec la date de création (et l'heure). Mon problème je viens d'en faire l'affreuse expérience, j'ai placé ma WScript dans ma boucle j'ai toujours la même valeur qui reviens.
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  7. #7
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    je viens de refaire les test, et ma valeur change bien a chaque fois, avec le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wscript.echo objRecordSet.Fields("whenCreated").Value
    en revanche j'ai toujours la meme avec le code :
    D'où viens le problème?
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  8. #8
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Tu mélange des formats date et chaines de caractères...

    que donne exactement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wscript.echo objRecordSet.Fields("whenCreated").Value
    et peu-être aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim MyDate
    MyDate = DateValue(objRecordSet.Fields("whenCreated").Value)
     
    wScript.Echo Day(MyDate) & "/" Month(MyDate) & "/" & Year (MyDate)

  9. #9
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    pour information le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    wscript.echo objRecordSet.Fields("whenCreated").Value
    affiche par exemple 12/05/2006 08:35:12

    Mais je vous informe que j'ai trouvé d'ou viens mon soucis!
    J'ai ré-arrangé mon code et celui-ci fonctionne parfaitement.
    le voici :
    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
     
    Const ADS_SCOPE_SUBTREE = 2
     
    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") = ADS_SCOPE_SUBTREE 
     
    objCommand.CommandText = _
        "SELECT Name, whenCreated FROM 'LDAP://OU=Ordinateurs ACOSS,OU=ACOSS,DC=integr,DC=ac750,DC=recouv' WHERE objectCategory='computer'" 
    	'CN=monCN,OU=monOU,DC=monDC
     
    Set objRecordSet = objCommand.Execute
     
    objRecordSet.MoveFirst
     
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.CreateTextFile("D:\Mes Documents\Scripts\recensement_30\PC.csv")
     
    dim Time
    Time = DateDiff("d", Left(objRecordSet.Fields("whenCreated").Value, 10), Now())
    'wscript.echo objRecordSet.Fields("whenCreated").Value
    	Do Until objRecordSet.EOF
    		Time = DateDiff("d", Left(objRecordSet.Fields("whenCreated").Value, 10), Now())
    		if(Time < 32) then
    			strLine = Chr(34) & objRecordSet.Fields("Name").Value & Chr(34) & ";"
    			strLine = strLine & Chr(34) & Left(objRecordSet.Fields("whenCreated").Value, 10) & Chr(34)
    			objFile.WriteLine strLine
    		end if
    		objRecordSet.MoveNext
    	Loop
     
     
    objFile.Close
    objRecordset.Close
    objConnection.Close
    Je vous remercie pour votre aide.

    Codialement.
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

  10. #10
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    Je suis pas convaincu ... et comme je te le dis je trouve pas top ta façon de mélanger chaine de caractères et format date ...

    tu as essayé de laisser le Wscript.Echo Time voir si tes valeurs avaient l'air cohérente ...

    en plus j'oubliais time c'est pas terrible comme nom de variable ... c'est déjà une fonction VBScript... essai : iEcartJours par exemple ...

  11. #11
    Expert confirmé
    Avatar de ludojojo
    Homme Profil pro
    Développeur SharePoint
    Inscrit en
    Avril 2008
    Messages
    2 967
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Développeur SharePoint
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 967
    Billets dans le blog
    5
    Par défaut
    oui je suis bien d'accord le nom de la variable n'est vraiment pas top. Je viens de la changer, en effet j'ai regarder les valeur de "Time" et les valeurs son cohérentes et correspondes exactement à ce que je voulais. Le tout est inscrit dans mon fichier ".csv".

    Je ne sais comment fonctionne la conversion en date, par Datediff mais en tout cas cela fonctionne.

    Merci encore.
    Cordialement
    Aide les autres...
    Et les autres t'aideront....
    Mon site DVP
    N'oubliez pas de consulter les FAQ SharePoint et les cours et tutoriels SharePoint

    N'oubliez pas de voter pour les messages dont la réponse est pertinente

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/10/2012, 16h39
  2. Supprimer dernier élément ajouté dans une liste
    Par gégé140488 dans le forum C#
    Réponses: 2
    Dernier message: 08/10/2011, 18h35
  3. Réponses: 9
    Dernier message: 09/12/2009, 13h34
  4. Visualiser le dernier element ajouter dans une GtkScrolledWindow
    Par kobalt02 dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 13/11/2008, 15h57
  5. Connaitre l'unitée à ajouter dans USES
    Par DelphiCool dans le forum Langage
    Réponses: 7
    Dernier message: 01/08/2002, 13h48

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