Batch ou VBS extraction de donnée sur un fich
admininfo
Messages postés
333
Date d'inscription
Statut
Membre
Dernière intervention
-
admininfo Messages postés 333 Date d'inscription Statut Membre Dernière intervention -
admininfo Messages postés 333 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Batch ou VBS extraction de donnée sur un fich
- Vbs windows - Accueil - Optimisation
- Fichier batch - Guide
- Fiche de pointage excel - Télécharger - Tableur
- Effacer les données de navigation sur android - Guide
- Batch converter - Télécharger - Photo & Graphisme
8 réponses
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
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
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
je cherche à les extraire
merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
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+
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+
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.
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.
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
en tout cas merci pour ta réponse
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)
"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)
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
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