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 :

Export Liste des PC d'un domaine Active Directory


Sujet :

VBScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2013
    Messages : 4
    Par défaut Export Liste des PC d'un domaine Active Directory
    Bonjour,

    Depuis quelques jours maintenant, je recherche un moyen d'exporter vers un fichier txt une liste des pc du domaine de mon AD.
    Avec dans l'idéal une liste des PC actifs par OU.

    Ne connaissant pas le langage VB, j'ai cherché sur le net divers scripts .vbs ou même PowerShell, en essayant de les adapter à mon besoin, mais sans succès.

    En espérant que quelqu'un trouve ce script simple à faire, ou ai déjà un script de la sorte.

    Merci d'avance pour votre aide,

    Wombo

  2. #2
    Membre expérimenté
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2011
    Messages : 163
    Par défaut
    Salut Wombo !

    Je peux te proposer un code du genre ci-dessous.
    La sortie se fait en fichier csv (domaincomputers.csv).

    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
    const FileName ="domaincomputers.csv"
    set cmd = createobject("ADODB.Command")
    set cn = createobject("ADODB.Connection")
    set rs = createobject("ADODB.Recordset")
     
    cn.open "Provider=ADsDSOObject;"
    cmd.activeconnection = cn
     
    set objRoot = getobject("LDAP://RootDSE")
     
    cmd.commandtext = "<LDAP://" & objRoot.get("defaultNamingContext") & ">;(objectCategory=Computer);" & "name,distinguishedName;subtree"
    cmd.properties("page size")=1000
     
    set rs = cmd.execute
    set objFSO = createobject("Scripting.FileSystemObject")
    set objCSV = objFSO.createtextfile(FileName)
     
    q = """"
     
    while rs.eof <> true and rs.bof <> true
    	objcsv.writeline(q & rs("name") & q & ";" &  q & rs("distinguishedName") & q)
    	rs.movenext
    wend
     
    objCSV.Close
    cn.close
     
    wscript.echo "Terminé !"
    Sinon, je ne comprends pas ce que tu entends par :
    Avec dans l'idéal une liste des PC actifs par OU.
    Peux-tu préciser ?
    Bonne journée !

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2013
    Messages : 4
    Par défaut
    Merci Cachlab,

    Mon but final est de récupérer cette liste pour exécuter un script sur tout ce groupe d'ordinateur.
    Et j’entends par "une liste des PC actifs par OU" faire une liste des PC démarré pour chaque Unité d'Organisation, qui me permettrait d'exécuter mon script pour une seule OU si besoin.

    Je vais tester ton code, et je te tiens au courant

  4. #4
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2013
    Messages : 4
    Par défaut
    Me revoila,
    J'ai testé le script, il reconnait automatiquement l'AD et récupéré la liste de tous les PC enregistré comme demandé.

    Cependant c'est ce que je craignais, il n'y a pas eu de ménage régulier dans l'AD ce qui fait que le script remonte beaucoup de PC qui n'existe plus...

    Il faudrait un moyen que le script filtre et garde que les PC démarré, ou qu'il écarte les PC dont la dernière connexion date d'un moment (par exemple 3 mois).

    En faisant quelques recherches j'ai trouvé des personnes qui utilisent l'objet userAccountControl pour récupérer les comptes ordinateurs actif, mais je suis sceptique car "userAccount" ne veux pas dire PC.

    Si vous avez des idées je suis preneur !

    Bonne journée

  5. #5
    Membre expérimenté
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Novembre 2011
    Messages
    163
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Novembre 2011
    Messages : 163
    Par défaut
    Il me semble que l'attribut est "whenChanged" qui correspond à la colonne "Modified" de l'OU:stations (ou computers)

    Je crois que cette date correspond à tes besoins ... enfin à confirmer avant de tout supprimer hein !

    Cela donnerait donc :
    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
    const FileName ="domaincomputers.csv"
    set cmd = createobject("ADODB.Command")
    set cn = createobject("ADODB.Connection")
    set rs = createobject("ADODB.Recordset")
     
    cn.open "Provider=ADsDSOObject;"
    cmd.activeconnection = cn
     
    set objRoot = getobject("LDAP://RootDSE")
     
    cmd.commandtext = "<LDAP://" & objRoot.get("defaultNamingContext") & ">;(objectCategory=Computer);" & "name,distinguishedName,whenChanged;subtree"
    cmd.properties("page size")=1000
     
    set rs = cmd.execute
    set objFSO = createobject("Scripting.FileSystemObject")
    set objCSV = objFSO.createtextfile(FileName)
     
    q = """"
     
    while rs.eof <> true and rs.bof <> true
    	objcsv.writeline(q & rs("name") & q & ";" &  q & rs("distinguishedName") & q & ";" & q & rs("whenChanged") & q)
    	rs.movenext
    wend
     
    objCSV.Close
    cn.close
     
    wscript.echo "Terminé !"

  6. #6
    Membre à l'essai
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2013
    Messages : 4
    Par défaut
    Bonjour,

    L'attribut est "whenChanged" nous donne la dernière date de modification d'un compte d'ordinateur, du coup on voit la dernière fois qu'on y a touché et pas la dernière fois qu'on s'y est connecté.

    J'ai trouvé l'utilitaire "AD Tidy", qui permet de récupérer la dernière date de connexion à un compte d'ordinateur, grâce à ça j'ai désactiver et séparer tout les comptes non utilisé depuis plus de 180 jours, et ton premier script récupère donc une liste à jour !

    Encore merci pour ton aide, problème résolu

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/01/2014, 15h52
  2. [AC-2010] Exporter liste des noms des objets
    Par misterlagaffe dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/08/2013, 20h59
  3. Réponses: 1
    Dernier message: 20/05/2009, 17h33
  4. Réponses: 1
    Dernier message: 19/05/2008, 18h48
  5. Liste des autorisations d'un objet active directory
    Par Eome dans le forum Sécurité
    Réponses: 1
    Dernier message: 04/04/2007, 12h49

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