Batch ou VBS extraction de donnée sur un fich

Fermé
admininfo Messages postés 333 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 1 avril 2014 - 19 avril 2012 à 13:46
admininfo Messages postés 333 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 1 avril 2014 - 24 avril 2012 à 12:45
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



A voir également:

8 réponses

admininfo Messages postés 333 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 1 avril 2014 16
19 avril 2012 à 14:54
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
admininfo Messages postés 333 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 1 avril 2014 16
19 avril 2012 à 15:33
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
admininfo Messages postés 333 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 1 avril 2014 16
20 avril 2012 à 10:59
up svp merci
0
admininfo Messages postés 333 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 1 avril 2014 16
23 avril 2012 à 08:36
rup
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
23 avril 2012 à 10:09
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
admininfo Messages postés 333 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 1 avril 2014 16
23 avril 2012 à 12:20
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
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 130
23 avril 2012 à 12:14
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
admininfo Messages postés 333 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 1 avril 2014 16
Modifié par admininfo le 23/04/2012 à 12:23
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
heyquem Messages postés 759 Date d'inscription mercredi 17 juin 2009 Statut Membre Dernière intervention 29 décembre 2013 130
23 avril 2012 à 12:35
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
admininfo Messages postés 333 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 1 avril 2014 16
24 avril 2012 à 12:44
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
lermite222 Messages postés 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
23 avril 2012 à 23:19
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
admininfo Messages postés 333 Date d'inscription lundi 27 juillet 2009 Statut Membre Dernière intervention 1 avril 2014 16
24 avril 2012 à 12:45
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