Bonjour,
je souhaiterais extraire l'auteur et l'objet des packages *.msi qui se trouvent dans le répertoire %SystemRoot%\Installer
La commande dir ne semble pas permettre ceci. Quelqu'un aurait une idée svp ? de préférence en batch
Merci
Bonjour,
je souhaiterais extraire l'auteur et l'objet des packages *.msi qui se trouvent dans le répertoire %SystemRoot%\Installer
La commande dir ne semble pas permettre ceci. Quelqu'un aurait une idée svp ? de préférence en batch
Merci
Regarde du coté de WMI, les classes associées à Win32_SoftwareFeature et Win32_Product
Utilise le programme wmic.exe
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Merci pour ces indications. Par contre où trouver ce wmic.exe ? j'ai cherché partout dans l'ordi (XP) et rien trouvé
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
ben justement, pas de fichier wmic.exe dans ce répertoire, j'avais lancé une recherche partout dans C:\windows (sous-dossiers, fichiers cachés et système), il n'est nulle part
C'est important de savoir ça car il faudrait pouvoir extraire ces informations depuis n'importe quel poste vista ou xp à partir d'un programme que je proposerais en téléchargement, donc si ce wmic.exe est nécessaire il faudrait qu'il soit accessible à tous
Je crois qu'il est installé par défaut sur XP et WS 2003.
Sinon regarde ce package http://www.microsoft.com/downloads/d...displaylang=en
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
le truc c'est que j'ai un XP familial, c'est peut être dans le pro que c'est installé par défaut ?
J'ai installé le package WMITools qui a créé un répertoire du même nom dans C:\Program Files\WMI Tools mais aucune trace de wmic.exe dedans et pas non plus dans wbem après cette installation
J'ai exploré le cd de XP et rien de plus
Mince, comment se sortir de là ?
Merci
Là c'est rapé ! De plus si je me souviens bien WMI n'est pas dispo, la totaleEnvoyé par eZula
Un utilitaire dédié à la gestion des MSI me semble le plus approprié mais je n'en connais pas.Envoyé par eZula
[edit]
Il y a bien celui-ci mais sous .NET ...
http://blogs.pingpoet.com/overflow/a...6/02/2449.aspx
Le framework .NET est-il installé sur les postes cibles ?
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
hé oui ce qui est important c'est que ça marche aussi bien sous xp familial - pro que sous vista
Par rapport au framework la question que tu soulèves est juste, et devant l'incertitude (je ne sais rien de la config des ordis qui vont utiliser cet outil) il faudrait une solution généraliste. En vbs ce serait pas jouable d'après toi, ou avec un unixutil ?
je cherche le plus simple, le plus universel, le plus léger et que ça puisse s'appeler par un batch, j'en demande pas beaucoup hein
ce qui est curieux c'est que ces informations (vendeur & objet) sont visibles dans l'infobulle lorsqu'on passe le curseur sur les icones msi, où sont stockées ces infos ? simple curiosité de noob
Pour VBS cela semble possible d'après cette page. Mais là mieux vaut poster dans le forum approprié.
UnixUtil ne fait que reprendre les briques de base du shell Unix, le format MSI est spécifique à Windows.
J'ai bien compris et dans ton cas les batchs ne peuvent pas beaucoup comme dans tant d'autres. Ils peuvent mais surtout à l'aide de programme externe, il reste à trouver le programme correspondant à ton besoin, dans ton cas codé en "Win32".
Mais d'une manière générale l'automatisation de tâche et/ou la récupération de données de base, telles que celles que tu recherches, est l'enfant pauvre de la conception logiciel.
Par exemple on peut trouver surprenant que MS n'ai pas pensé livrer un outil additionnel à MSIExec, pourtant MS a tout sous la main.
MS a, à mon avis, corrigé le tir avec PowerShell mais il faut attendre encore une paire d'années pour qu'il devienne incontournable puisque VBS ne sera plus supporté...
Aucune idée à ce jour mais en creusant le SDK on peut le savoir, yaka
Tutoriels Delphi Win32/Delphi .NET/Oracle/PowerShell - FAQ Delphi - FAQ Delphi .NET
Beatus, qui prodest, quibus potest.
Ils sont stockés dans le package lui-même et sont récupérés grâce à l'interfaçage d'Explorer avec la bibliothèque msi (msi.dll).
L'idéal est quand même de faire un programme CLI dédié. Mais si tu y es réfractaire il y a aussi la solution OLE, puisque MSI dispose d'une interface référencée dans Windows.
Voici un exemple: getmsiinfo.vbs
accessible depuis cmd avec la syntaxe suivante:
cscript /i /nologo getmsiinfo.vbs /f:"path\yourfile.msi"
enjoy;
getmsiinfo.vbs
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 'sample for Read Summary Information in an msi package by maxim_um 'for http://www.developpez.net/forums/d650634/general-developpement/programmation-windows/scripts-batch/recuperer-lauteur-lobjet-package-msi/ 'usage: cscript /i /nologo getmsiinfo.vbs /f:"path\yourfile.msi" 'enjoy; MsiPackageName=WScript.Arguments.Named.Item("f") 'Summary Information Property id const PID_TITLE=2 const PID_AUTHOR=4 'manufacturer 'for more look http://msdn.microsoft.com/en-us/library/aa370310.aspx Set objMSI = CreateObject("WindowsInstaller.Installer") Set objMSISInfo = objMSI.SummaryInformation(MsiPackageName) infoPackage= "File : " & MsiPackageName & vbcrlf & _ infoPackage+ "Title : " & objMSISInfo.Property(PID_TITLE) & vbcrlf & _ infoPackage+ "Author: " & objMSISInfo.Property(PID_AUTHOR) & vbcrlf Wscript.Echo infoPackage
.NAS Server Project:
► Serveur de fichiers [NAS]
► Le Tableau de bord projets
► Contribution: Nom / Logo
► Identification des besoins
► Le groupe de travail ICMO
► Demande d'inscription ICMO
maxim_um
en effet j'ai remarqué ça en ouvrant ces packages avec le bloc-notes. J'ai tenté de récupérer ces infos avec findstr au début, puis avec grep mais le problème est de trouver des délimiteurs constants de surcroit, voilà à quoi ça ressembleIls sont stockés dans le package lui-même
ça me parait impossibleInstaller,MSI,Database $ Java(TM) SE Runtime Environment 6.0 Sun Microsystems, Inc.
Ta solution est impeccable, merci
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager