You are not logged in.
Bonjour,
L'import des logiciels via l'agent Windows importe de nombreux logiciels que l'on ne voit pas dans "Ajout/Suppression de programmes". Ces logiciels sont en fait des sous-composants de logiciels. Un des exemples est le pack Office, qui génère des dizaines de lignes à lui tout seul.
Dans le registre (HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\xxxx), ces composants portent l'attribut "SystemComponent = 1".
Ma suggestion serait de récupérer cette valeur via l'agent FusionInventory, et d'utiliser les dictionnaires logiciels pour :
- soit ne rien faire... et l'import se comportera comme actuellement
- soit affecter le composant à une catégorie
- soit ignorer l'import
Côté Agent, je pense qu'il faudrait :
- Déclarer le champ "SYSTEMCOMPONENT" dans ...\FusionInventory\Agent\Inventory.pm
Ligne 43 : SOFTWARES => [ gw/ ...... SYSTEMCOMPONENT/ ],
- Collecter la valeur dans ...\FusionInventory\Agent\Task\Inventory\Win32\Softwares.pm
Ligne 237 : SYSTEMCOMPONENT => hex2dec($data->{'/SystemComponent'}),
Côté plugin fusioninventory, je suis moins à l'aise... je ne sais pas trop où chercher pour ajouter la notion de "SystemComponent" dans les règles de dictionnaire.
Si quelqu'un se sent le cœur de jeter un coup d'œil, merci d'avance !
Patrice
Offline
Bonjour,
J'ai le même souci que toi. Je ne suis pas sûr que ta proposition soit le meilleur choix au vu du nom "SystemComponent".
Une idée de solution sans patch : travailler directement avec les dictionnaires logiciels. Je pense que c'est tout à fait possible. J'ai fait pas mal de règles dans mon cas pour les logiciels qui mettent leur version dans le nom (java, adobe reader pour n'en citer que quelques uns).
Grosso modo je ferais une ou plusieurs règles de ce genre :
Logiciel | expression régulière vérifie | /^(Microsoft Office) ((Access|Project|Groove|Excel|Outlook)( Professional)?)( (MUI).*)?( ([\d]{4}))/
Action Logiciel | Assigner valeur depuis expression rationnelle | Microsoft Office #1 #7
Pour avoir un aperçu de cette expression régulière utilsie ce service en ligne : http://www.phpliveregex.com/
Recopie l'expression régulière et en dessous des chaines de caractères à matcher, une par ligne.
J'ai utilisé à partir de mon GLPI les chaines suivantes :
Microsoft Office Access 2010
Microsoft Office Access MUI (French) 2010
Microsoft Office Project Professional 2010
Reste à faire en sorte que les entrées avec MUI ne soient pas remontées, mais je manque de temps pour affiner.
Avec les expressions régulières tu dois largement pouvoir faire ce que tu veux. Je n'ai pas encore planché dessus car ce n'est pas encore passé dans mes priorités.
J'espère que tout cela t'aidera, et si tu as besoin de plus d'infos, n'hésite pas à répondre ici.
Offline
Etant tombé sur ce topic en cherchant quelques infos, je vous partage ma solution sur ce même problème rencontré,
c'est simplement une regex un peu différente:
/^(Microsoft Office|Microsoft).(Word|Visio|Office|Outlook|Access|Project|Groove|PowerPoint|Publisher|Project|OneNote|Excel|Outlook|Professional|Standard|Professionnel)/
Probablement pas 100% parfait mais sur les premiers tests ç marche pas trop mal...
En espérant dépanner ceux qui pourraient coincer un peu
Offline
Bonjour
Si ton expression donne de bons résultats, tu pourrais l'améliorer pour capturer la version ?
Offline
Là comme ça je ne saurai pas te dire, mais je pense qu'en ajustant avec une capture de chiffres en fin, ça devrait pouvoir le faire. ( à condition bien sûr que le numéro de version qui est une année actuellement, reste en fin de chaine de caractère ex: Microsoft Office Professionnel 2010/2013/2016 .....
Offline