Batch ou VBS extraction de donnée sur un fich

admininfo Messages postés 390 Statut Membre -  
admininfo Messages postés 390 Statut Membre -
Bonjour,

je suis en train de réaliser pour une entreprise un petit script en VBS ou en batch celui si devras capter tous les logiciel installer sur une machine et me mettre les info sur un fichier excel et se répéter pour tous le parc

je compter l'intégrer dans les scriptes qui gèrent la monter des lecteurs réseaux qui sont en vbs et en batch mais je ne sait pas trop comment mi prendre pour écrire se script

je suis preneuse de toutes les idées

merci d'avance

8 réponses

  1. admininfo Messages postés 390 Statut Membre 16
     
    en cherchant sur le net je suis tomber sur ça c'est presque bon mais il me manque encore quelque truc car ça ne m'affiche pas tous les logiciel qui ce trouve sur le pc

    pouvez vous m'aider ??

    Function inventaire
    Set oShell = CreateObject("wscript.Shell")
    Set env = oShell.environment("Process")
    strComputer = env.Item("Computername")
    Const HKEY_LOCAL_MACHINE = &H80000002
    Const UnInstPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"

    Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_
    ".\root\default:StdRegProv")
    oReg.EnumKey HKEY_LOCAL_MACHINE, UnInstPath, arrSubKeys
    software = "*******************************" & Now & "****************************" & vbCrLf
    software = software & "*******************************Logiciels installés******************************" & vbCrLf

    For Each subkey In arrSubKeys
    'MsgBox subkey
    If Left (subkey, 1) <> "{" Then
    software = software & subkey & vbCrLf
    End If
    Next
    software = software & "*********************************************************" & vbCrLf

    Set fso = CreateObject("Scripting.FileSystemObject")

    'Détermine si le fichier csv existe déjà ou s'il doit le créer
    If Not fso.FileExists("inventaire " & strComputer & ".csv") Then
    set ts = fso.CreateTextFile("Inventaire " & strComputer & ".csv", True)
    Else
    set ts = fso.OpenTextFile("Inventaire " & strComputer & ".csv", 2, True)
    End If
    ts.write software
    inventaire=software
    call Explorer("Inventaire " & strComputer & ".csv")
    end function

    Function Explorer(File)
    ' Ouverture du Dossier par l'explorateur windows
    If Err.Number = vbEmpty Then
    Set objShell = CreateObject("WScript.Shell")
    objShell.Run ("Explorer" & " " & File & "\")
    Else
    MsgBox "VBScript Error: " & Error(Err.Number)
    End If
    end Function

    Call inventaire
    0
  2. admininfo Messages postés 390 Statut Membre 16
     
    donc pour info ça me liste dans un excel les nom qui se trouve dans la clé de registre software sauf que dans cette même clée j'ai par exemple un truc qui s'appel microsoft et ça ne m'indique pas le contenu de cette clé qui contien des masse de logiciel

    je cherche à les extraire

    merci
    0
  3. admininfo Messages postés 390 Statut Membre 16
     
    up svp merci
    0
  4. admininfo Messages postés 390 Statut Membre 16
     
    rup
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Ta boucle subkey ne liste que les clés du root et pas les sous-clés.
    Tu dois faire une fonction récursive pour lire toutes les clés.
    Et autre remarque, si tu met ton code directement en VBA dans un classeur Excel il n'y aurait pas besoin de passer par un fichier CSV
    A+
    0
    1. admininfo Messages postés 390 Statut Membre 16
       
      oula merci je vais me documenter un peu sur les fonctions récursive alors, car je ne les connais pas du tout, mais en tout cas dans l'idée c'est ce que je cherche à faire

      si tu a des info je suis preuneuse

      merci de ton aide en tout cas
      0
  7. heyquem Messages postés 808 Statut Membre 131
     
    Salut admininfo,

    Je ne connais pas le langage batch mais, d'après ce que j'en ai lu, ce n'est pas un langage très puissant et il demande des contorsions dès qu'il s'agit de faire des choses un peu élaborées. De plus, les scripts batch que j'ai vus ont un aspect rébarbatif dans lequel on ne perçoit pas de façon aisée et rapide le principe du programme.
    De ce fait, je trouve assez inadapté l'emploi de script batch pour faire ce que tu veux faire.

    VBS semble plus puissant que batch mais il ne me parait pas terrible non plus:
    "Un inconvénient de VBSCRIPT est qu'il n'est pas portable sur un système autre que Windows, par exemple Unix. Ses concurrents Javascript, Perl, Python eux le sont. Si on doit travailler sur des systèmes hétérogènes, il peut être intéressant voire indispensable d'utiliser le même langage sur les différents systèmes."
    https://tahe.developpez.com/web/vbscript/?page=page_2
    Cela ne pose peut être pas de problème pour ton application actuellement, mais je ne trouverais pas très judicieux d'utiliser un programme qui ne pourrait pas s'adapter aux conditions dans lesquelles il opère si elles venaient à changer.
    Bon, ce n'est pas le cas puisque tu as choisi batch.

    En fait, perso j'utilise Python, qui est puissant, polyvalent, clair. De ce fait, je ne comprends pas pourquoi il y a encore des programmeurs qui s'échinent à utiliser des outils peu performants et vieillots alors qu'il en existe d'utilisation plus agréable et puissante. Je ne comprends pas pourquoi tu rames avec un programme batch, alors que la même application en Python tiendrait en quelques lignes plus lisibles, et serait surtout plus facilement évoluable: lermite222 dit qu'il faut que tu ajoutes maintenant une fonction récursive. Tout ça me parait bien compliqué alors que le projet que tu exposes parait bien simple.
    0
    1. admininfo Messages postés 390 Statut Membre 16
       
      oui sauf que dans ce cas je n'ai pas le choix le VBS ou le batch m'est imposé je ne peux que choisir l'un ou l'autre j'avais dèjà choisis le vbs pour ça plus grande souplesse plus qu'à trouver la solution d'exploiter les sous cléf donc la solution de lermitte 222 me semble pas mal je vais essayer enfin tenté, car je ne connais pas trop le vbs

      en tout cas merci pour ta réponse
      0
    2. heyquem Messages postés 808 Statut Membre 131
       
      Oui, j'ai bien vu ceci:
      "les scripts qui gèrent la montée des lecteurs réseaux qui sont en vbs et en batch "
      Je vois souvent de ces cas où un développeur est coincé sur des langages ringards parce que le logiciel à développer doit s'intégrer dans un ensemble lui-même ringard que les responsables ne veulent pas changer.
      C'est étonnant de voir que dans un domaine comme l'informatique qui est perçu comme de pointe et en évolution constante, il y ait autant d'inertie. Bien sûr, ce n'est pas de ta faute. Je suppose que ton entreprise n'est pas une grosse entreprise habituée à traiter correctement les questions d'informatique.


      Qu'est-ce que tu entends par "la montée des lecteurs réseaux" ?


      Je me pose aussi une question: est-ce qu'un programme batch peut déclencher l'exécution d'un programme écrit en Python ? Sachant que les programmes Python se présentent sous forme de scripts aussi, ou d'exécutables si on fait ce qu'il faut pour (et que je ne sais pas faire personnellement)
      0
    3. admininfo Messages postés 390 Statut Membre 16
       
      justement je bosse dans une entreprise international ^^

      alors pour la question du langage on m'a demandé de le réaliser en VBS ou en Batch, car les employée qui vont s'en occuper derrière ne connaissent pas les nouveaux langages donc à mon départ pour suivre les scriptes ça leur sera plus facile de les comprendre pour la monter des lecteurs réseaux ça c'est ok je les lancent via un bat ce qui analyse via les groupes de l'ad les lecteurs à monter et les monte en vbs ça pas de soucie ça fonctionne.

      là on m'a demandé de faire une liste des logiciels installés sur les postes du réseau et de les mettre dans excel en gros je dois récupérer dans le registre les logiciels installé et les mettre dans un excel..

      j'ai trouvé un scripte sur le net permettant de faire cela en fessant remonter les unistall des logiciels mais seulement dans la boite tous les logiciels ne sont pas forcement installé avec leurs outils de désinstallation

      donc, en gros je dois récupérer les sous clée des clée et c'est là que je coince car à la base moi et le développement ça ne fait pas deux je commence juste!! pas cool
      0
  8. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Pour compléter mon poste précédant je pourrais éventuellement te donner quelque directive mas malheureusement pour le moment j'ai quelque soucis familiaux et ne pourais te répondre que dans huitaine, si pas de solution d'ici là je reviendrais.
    A+
    0
  9. admininfo Messages postés 390 Statut Membre 16
     
    je vais essayé d'avancer et de mettre au fur est à mesure se que je réussit à faire je doit le finir pour la 2éme semaine de juin donc ya un peu de temps

    merci pour t'on aide et courage pour tes soucies
    0