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

Scripts/Batch Discussion :

Récupérer une liste d'ordinateurs


Sujet :

Scripts/Batch

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut Récupérer une liste d'ordinateurs
    Bonjour,

    Je souhaite réaliser un script qui passe en revu les PC's d'un parc informatique, avec des info comme le service pack installé, le nom du pc, son ip et masque etc.

    J'aimerai le faire via un script qui contient la liste des PC's du parc mais je ne sais pas par ou commencer?!

    Autre question: est il possible de lancer la commande Enable-PSRemoting à distance sur tous les pc's?

    Merci

  2. #2
    Membre averti
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Juillet 2010
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Juillet 2010
    Messages : 42
    Par défaut
    bonjour,

    pourquoi t'embeter à faire un script alors qu'il y a plus simple
    en prenant OCS inventory http://www.ocsinventory-ng.org/index.php?page=french
    je pense à mon avis que ça serait plus simple

  3. #3
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Salut,
    Citation Envoyé par Unfam0us
    Autre question: est il possible de lancer la commande Enable-PSRemoting à distance sur tous les pc's?
    Voir ce post.

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    Citation Envoyé par brice_94 Voir le message
    bonjour,

    pourquoi t'embeter à faire un script alors qu'il y a plus simple
    en prenant OCS inventory http://www.ocsinventory-ng.org/index.php?page=french
    je pense à mon avis que ça serait plus simple
    Merci pour ta réponse, mais je cherche à le faire moi même via un script afin de m'entrainer à vus de mon travail de fin d'étude qui concernera PS.

    De plus c'est un premier essai car je souhaite réaliser des scripts qui appelle cette liste de PC's afin de leurs fournir des fichiers, changer les fonds d'écrans etc.

    Citation Envoyé par Laurent Dardenne Voir le message
    Salut,
    Citation:
    Envoyé par Unfam0us
    Autre question: est il possible de lancer la commande Enable-PSRemoting à distance sur tous les pc's?
    Voir ce post.

    Merci, j'étudierai ça un peux plus tard ça à l'air pas mal

  5. #5
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Unfam0us
    De plus c'est un premier essai car je souhaite réaliser des scripts qui appelle cette liste de PC's afin de leurs fournir des fichiers, changer les fonds d'écrans etc.
    Tu peux t'inspirer d'une série d'articles de Don Jones sur le sujet, Windows PowerShell: Automating User Provisioning (Part 1-4).
    Si tu utilises la version de PS tu peux utiliser les jobs, avec des specs précises, sans vouloir refaire l'outil cité, c'est tout à fait possible.

    Autre piste, utiliser un mécanisme de plug-in pour tes différentes actions.
    Tu as de quoi faire

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    Merci pour ton aide, Laurent.

    Je vais essayer de mieux détailler mon projet, ma liste est sous le format suivant:

    Nom du PC
    PC-17
    PC-18
    PC-19
    PC-20
    ...

    Mon script consistera à afficher dans un fichier la liste du matériel de tous les PC's cité dans la liste, j'aimerai réalisé cela à l'aide d'un premier fichier contenant la liste des pc's .txt ou .csv et un second fichier .ps1 contenant mon script qui m'enverra la liste des infos triées par pc's dans un autre fichier .txt ou .csv.

    Merci pour votre aide

  7. #7
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Unfam0us
    Name Value
    ------ --------
    PC PC-OMG4-12
    PC PC-OMG4-11
    PC PC-OMG4-10
    Pour utiliser un fichier avec Import-Csv il faut qu'il ait un séparateur, une virgule en PS v1, et en PS v2 voir le paramètre -Delimiter.

    Concernant ton code la surcharge de fonction n'est pas possible nativement, si toutefois c'est ce que tu comptais faire.
    Je ne vois pas l'intérêt de construire une hashtable, Import-csv renvoit des objets personnalisés à partir du fichier texte structuré.

    Citation Envoyé par Unfam0us
    Je débute en PS
    Il est préférable de le préciser dés le départ, ainsi on peut adapter les réponses.

    Citation Envoyé par Unfam0us
    De plus c'est un premier essai car je souhaite réaliser des scripts qui appelle cette liste de PC's afin de leurs fournir des fichiers, changer les fonds d'écrans etc.
    Du coup, n'es-tu pas trop gourmand ?
    De combien de temps disposes-tu pour réaliser ton projet de fin d'étude ?

  8. #8
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Ton dernier post avant modification était plus "parlant"...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    Du coup, n'es-tu pas trop gourmand ?
    De combien de temps disposes-tu pour réaliser ton projet de fin d'étude ?
    Je dispose de quasi toute l'année scolaire, donc dans le courant du mois de juin 2011. A raison de 27h par semaines.

  10. #10
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Unfam0us
    Je dispose de quasi toute l'année scolaire
    Ca devrais aller
    Citation Envoyé par Unfam0us Voir le message
    Mon script consistera à afficher dans un fichier
    Sous powershell tes traitements doivent émettre comme résultat des objets, pas du texte. Il faut dissocier le traitement de l'affichage. Celui-ci peut l'être dans de nombreux format, texte brut, html, Excel, XML, pdf, Word,...
    Citation Envoyé par Unfam0us
    m'enverra la liste des infos
    Lesquelles ?
    As-tu rédiger des spécifications ?

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    Lesquelles ?
    As-tu rédiger des spécifications ?
    Alors: Un premier fichier texte avec tous les pc en liste:
    pc1
    pc2
    pc3
    ...
    Un second fichier contenant le script.
    Et un troisième fichier (texte) dans lequel sera envoyé les infos récupérées par le script:
    Nom: pc1
    Espace disques total: 2000Go
    Espace disques restant: 453Go
    ServicePack: 3
    Processeur: Processeur Intel® Core i7
    RAM: 4Go DDR3
    IP: 143.26.12.17
    ....
    ...

  12. #12
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Ok, et maintenant quel pb rencontres-tu avec ton code ?

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $comptes = get-content ./ListPc.txt
    
    for ($i=0; $i -lt $comptes.length; $i++) {
         if ($comptes[$i] -match "Nom du PC") {
             while ($i -ne $comptes.length){
                $i++         
                $comptes[$i]
             }
                      
         }
    }
    
    $session = New-PSSession -computername $comptes[1], $comptes[2]
    Voilà ou j'en suis, le $session me pause problème car je n'aimerai pas à avoir à rentrer $comptes[1], $comptes[2]... avez vous une solutions pour mettre tous les comptes en un seul mot: "-computername $comptes".

    Merci

  14. #14
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Unfam0us
    avez vous une solutions pour mettre tous les comptes en un seul mot : "-computername $comptes".
    "en un seul mot ", je ne pense pas que tu veuilles concaténer les nom de pc, sinon tu fais simplement La solution est ce que tu proposes : Il faut déjà comprendre comment fonctionne la gestion de paramètres sous PS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    get-help new-pssession -parameter Computername
    L'affichage détail le type du paramètre et son comportement avec le pipeline, plus d'infos dans ce tutoriel US.

    D'un autre coté je ne comprend pas du tout l'usage de la boucle for, n"hésite pas à commenter ton code...
    Sinon, comme tu débutes, qu'as-tu lu comme ouvrage/tuto/doc sur PowerShell ?

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    Citation Envoyé par Laurent Dardenne Voir le message
    D'un autre coté je ne comprend pas du tout l'usage de la boucle for, n"hésite pas à commenter ton code...
    Sinon, comme tu débutes, qu'as-tu lu comme ouvrage/tuto/doc sur PowerShell ?
    La boucle for , j'ai pris un bout de code dans un exemple que j'ai modifier je n'ai pas spécialement prêté attention à elle

    J'ai uniquement lus des doc sur le net dont une des tiennes "Introdution PowerShell", ou d'autre doc cocernant les classe WMI ou les espaces de noms mon principale problème est que je mélange tout entre classe,commande,API, objet .NET,COM; car je n'ai pas pus structurer mon apprentissage de PS à force de ne pas comprendre une doc, de partir sur une autre de revenir sur la 1ère etc.

  16. #16
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Unfam0us
    car je n'ai pas pus structurer mon apprentissage de PS à force de ne pas comprendre une doc, de partir sur une autre de revenir sur la 1ère etc.
    Il te faut déjà comprendre les bases de PowerShell, je te recommande d'investir dans cet ouvrage. Pour débuter il est très bien.
    Le forum peut aussi compléter tes lectures et répondre à tes interrogations.

    Tu peux lire la doc utilisateur de la PS v1, dispo ici. Elle donne un bon aperçu de ce qu'est PS.

    Ensuite pour la notion d'orienté objet je te recommande celui-ci, le reste pour l'instant ce n'est pas nécessaire de l'aborder, chaque chose en son temps.

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    Ok merci à toi pour tes réponses , j'ai déjà pensé investir dans cet ouvrage je compte le commander d'ici peut quand aux doc je vais m'y mette dès maintenant .

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    Rebonjour,

    Je suis de retour avec une nouvelle question

    Voilà mon problème:

    Lorsque je tente de lancer une commande sur un PC distant ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    get-WmiObject -List -ComputerName PC-12
    "Commande que j'ai trouver dans une doc de Microsoft"

    J'ai le message suivant qui apparait:

    Get-WmiObject : Impossible d'obtenir des objets à partir de l'espace de noms root\cimv2. Le serveur RPC n'est pas disponible....

    J'ai obtenu ce message à plusieurs reprise pour différentes commandes c'est pour cela que je me permet de venir pauser ma question ici

  19. #19
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Billets dans le blog
    1
    Par défaut
    Vérifie si le service WMI sur le poste distant est à l'état "running", ensuite si cela ne fonctionne tjr pas, comme WMI s'appuie sur DCOM il faut vérifier sa configuration. L'autre soucis est que DCOM ne passe pas les firewall...

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2010
    Messages : 52
    Par défaut
    Oui il est à l'état "Running"

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/02/2007, 22h00
  2. Réponses: 63
    Dernier message: 06/07/2006, 15h29
  3. [JDOM] Récupérer une liste
    Par maniolo dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 23/05/2006, 11h17
  4. [VB]Récupérer une liste de fichiers
    Par yaya54 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 20/02/2006, 16h03
  5. Réponses: 4
    Dernier message: 24/11/2005, 09h11

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