[..] Comparateur de fichiers
Règles du forum
- Merci de consulter la section "Règles du forum" et plus particulièrement "Règles et Mentions Légales du site autoitscript.fr" avant d'écrire un message.
- ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
[..] Comparateur de fichiers
Bonjour,
je suis à la recherche d'un programme qui serait capable de lister tous les fichiers d'un dossier avec ses paramètres (MD5, date, version) et de stocker les infos dans un fichier ou une bdd (portable) puis par la suite qu'on puisse comparer un autre dossier avec ce qui a déjà été sauvegarder et en cas de différence nous afficher les fichiers qui sont différents.
Qqn connaîtrait un soft existant qui fait cela? Ou qqn en a fait un? Sinon je devrais en coder, mais pourquoi réinventer la roue.
J'espère avoir bien expliqué ma demande. Merci d'avance pour vos réponses.
je suis à la recherche d'un programme qui serait capable de lister tous les fichiers d'un dossier avec ses paramètres (MD5, date, version) et de stocker les infos dans un fichier ou une bdd (portable) puis par la suite qu'on puisse comparer un autre dossier avec ce qui a déjà été sauvegarder et en cas de différence nous afficher les fichiers qui sont différents.
Qqn connaîtrait un soft existant qui fait cela? Ou qqn en a fait un? Sinon je devrais en coder, mais pourquoi réinventer la roue.
J'espère avoir bien expliqué ma demande. Merci d'avance pour vos réponses.
- Tlem
- Site Admin

- Messages : 11818
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Si vous utilisez un chechsum de fichier (comme le MD5 par exemple), la version et la date n'ont plus de raison d'être !!!
Si un système par checksum vous intéresse, alors utilisez par exemple md5.exe ou encore fsum.exe qui permettent de générer un fichier avec le md5 de tous les fichiers d'un dossier (et dans le cas de fsum.exe vous pouvez aussi utiliser d'autres protocoles tel sha1 a sha512). Il y a sur le forum un autre sujet qui parle de md5.exe. Faites quelques recherches.
Si un système par checksum vous intéresse, alors utilisez par exemple md5.exe ou encore fsum.exe qui permettent de générer un fichier avec le md5 de tous les fichiers d'un dossier (et dans le cas de fsum.exe vous pouvez aussi utiliser d'autres protocoles tel sha1 a sha512). Il y a sur le forum un autre sujet qui parle de md5.exe. Faites quelques recherches.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Mon problème n'est pas de créer un table avec tous les checksum, mais de comparer la table existant avec un autre dossier.
La date et la version, c'est pour au final donner un information claire à l'utilisateur car le checksum ne parle à personne.
La date et la version, c'est pour au final donner un information claire à l'utilisateur car le checksum ne parle à personne.
- Tlem
- Site Admin

- Messages : 11818
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Peut être, mais vous pouvez très bien avoir un fichier totalement identique, mais avec une date différente !
Pour le reste, un md5 étant une somme de contrôle, si le md5 du fichier de l'autre dossier est identique, alors les fichiers sont identiques !
Et puis les utilitaires dont je vous ai parlé permette le contrôle d'un dossier entier. Lisez la documentation de ceux-ci.
Pour le reste, un md5 étant une somme de contrôle, si le md5 du fichier de l'autre dossier est identique, alors les fichiers sont identiques !
Et puis les utilitaires dont je vous ai parlé permette le contrôle d'un dossier entier. Lisez la documentation de ceux-ci.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- sksbir
- Niveau 7

- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Bonjourricky a écrit :Mon problème n'est pas de créer un table avec tous les checksum, mais de comparer la table existant avec un autre dossier.
La date et la version, c'est pour au final donner un information claire à l'utilisateur car le checksum ne parle à personne.
Et "l'utilisateur", il va faire quoi de cette information ? On peut supposer que va suivre à cette 1ere étape de comparaison une autre étape de mise à jour non ?
Dans ce cas, il existe un logiciel déjà existant : unison. Je l'utilise intensivement pour synchroniser des "réplicas" ( c'est à dire des dossiers présents à 2 endroits différents et que je désire synchroniser ). Le logiciel fonctionne en 2 étapes : affichage des différences de chaque coté ( on peut avoir effectué un travail sur les 2 cotés depuis la derniere synchronisation, il le détectera ), que l'utilisateur décide ensuite de synchroniser ou pas...
- ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Je vais tenter de vous expliquer plus clairement ce dont j'ai besoin.
Ou je travaille, nous avons plus versions d'un soft. Je dois lister tous les fichiers par type de version et stocker le résultat dans un fichier une une bdd. Ce programme doit être portable.
Ensuite, j'aimerais exécuter ce programme sur une machine X et le programme va rechercher la présence de notre logiciel et si notre logiciel est installé il va lister les fichiers et comparer avec sa BDD et il doit être capable de nous dire quelle version est installée et si ce n'est pas 100% identique, qu'il nous indique la version qu'y si rapproche le plus et les fichiers qui différent!
Donc le but n'est pas une manipulation de fichiers, mais juste comparer des fichiers
@Tlem : J'ai bien regardé les softs que tu m'as proposé, mais j'ai rien trouvé d'intéressant.
Ou je travaille, nous avons plus versions d'un soft. Je dois lister tous les fichiers par type de version et stocker le résultat dans un fichier une une bdd. Ce programme doit être portable.
Ensuite, j'aimerais exécuter ce programme sur une machine X et le programme va rechercher la présence de notre logiciel et si notre logiciel est installé il va lister les fichiers et comparer avec sa BDD et il doit être capable de nous dire quelle version est installée et si ce n'est pas 100% identique, qu'il nous indique la version qu'y si rapproche le plus et les fichiers qui différent!
Donc le but n'est pas une manipulation de fichiers, mais juste comparer des fichiers
@Tlem : J'ai bien regardé les softs que tu m'as proposé, mais j'ai rien trouvé d'intéressant.
- sksbir
- Niveau 7

- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Comparateur de fichiers
A la lecture de ton dernier post, j'ai l'impression que le soft en question est installé un peu bizarrement sur les machines : A croire qu'on se trouve dans un environnement unix... Quand au "juste comparer des fichiers", j'ai comme un doute : si 95% de ton parc n'est pas conforme, après l'étape d'évaluation, tu vas bien devoir effectuer des actions de corrections. Autant t'y préparer tout de suite ( au moins psychologiquement
)...
Quoi qu'il en soit, tu as deux approches :
- soit c'est vraiment un soft installé ( qu'on voit dans ajout/suppression de programme ) ---> utiliser un programme d'inventaire
- soit, c'est un soft .. disons "portable" ( dans le sens de "pas installé" ) , et visiblement bidouillé après déploiement car il se trouve que des mix de version coexistent sur la même machine, et c'est ce genre de chose que tu voudrais détecter.
C'est en tout cas ce que tu indiques implicitement avec cette notion de "celui qui s'y rapproche le plus". Notion qui est à expliquer bien plus clairement : selon quel critère ? par exemple, plus de 5 fichiers différents = programme différent ? ou alors 40 fichiers version A, 34 fichiers version B, 3 fichiers version C : donc le programme est de la version.. A ,B ou C ????
Quoi qu'il en soit, tu as deux approches :
- soit c'est vraiment un soft installé ( qu'on voit dans ajout/suppression de programme ) ---> utiliser un programme d'inventaire
- soit, c'est un soft .. disons "portable" ( dans le sens de "pas installé" ) , et visiblement bidouillé après déploiement car il se trouve que des mix de version coexistent sur la même machine, et c'est ce genre de chose que tu voudrais détecter.
C'est en tout cas ce que tu indiques implicitement avec cette notion de "celui qui s'y rapproche le plus". Notion qui est à expliquer bien plus clairement : selon quel critère ? par exemple, plus de 5 fichiers différents = programme différent ? ou alors 40 fichiers version A, 34 fichiers version B, 3 fichiers version C : donc le programme est de la version.. A ,B ou C ????
- ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Non, c'est encore plus simple à comprendre.
Il y a une version de base fourni par le développeur (qui se trouve dans les pays de l'est) et il fait de la m... et introduit des bugs. Afin de corriger ses bugs il nous re-fournit pas un pack complet mais uniquement les fichiers avec le problème corrigé. Mais à force, tu ne sais plus à quel niveau tu es et tu ne sais plus si tu as installé (enfin, remplacé les fichiers) le nouveau patch ou pas!
Donc le but, est de sauvegarder la liste des fichiers à un moment donné (référence) et à n'importe quel moment pouvoir savoir ou en en est.
Un programme est différent, dès le moment ou un fichier est différent. Par exemple, on prend la version du fichier exe qui est 9.6.x.x et on va comparer avec toutes les tables qui contiennent le même début de version et qu'il nous donne la version ou il y a le moins de fichiers différents et la liste des fichiers différents!
Il y a une version de base fourni par le développeur (qui se trouve dans les pays de l'est) et il fait de la m... et introduit des bugs. Afin de corriger ses bugs il nous re-fournit pas un pack complet mais uniquement les fichiers avec le problème corrigé. Mais à force, tu ne sais plus à quel niveau tu es et tu ne sais plus si tu as installé (enfin, remplacé les fichiers) le nouveau patch ou pas!
Donc le but, est de sauvegarder la liste des fichiers à un moment donné (référence) et à n'importe quel moment pouvoir savoir ou en en est.
Un programme est différent, dès le moment ou un fichier est différent. Par exemple, on prend la version du fichier exe qui est 9.6.x.x et on va comparer avec toutes les tables qui contiennent le même début de version et qu'il nous donne la version ou il y a le moins de fichiers différents et la liste des fichiers différents!
- sksbir
- Niveau 7

- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Comparateur de fichiers
ha ok. bon, déjà, à mon avis, ça n'existe pas déjà tout fait, un programme chargé d'un inventaire pareil...
J'ai encore quelques questions :
- le pack "d'origine", il laisse une trace dans "ajout /suppression de programme" ? Il a été livré sous quelle forme ? un répertoire avec un setup.exe dedans et pleins d'autres fichiers ? juste un setup.exe ? un zip ?
- mêmes questions avec les packs de correction.
- Tu as quel moyen d'exécuter un programme sur les machines cibles.. Avec quelle contexte ? sccm ? registre ? AD ? script de login ? participation active des utilisateurs ? toi via prise de main à distance ou autre ?
- on n'analyse que des fichiers EXE ?
- tu as quelque part sous ton contrôle toutes les versions ? ( le pack d'origine, et tous les correctifs émis... )
- Par exemple, on prend la version du fichier exe qui est 9.6.x.x et on va comparer avec toutes les tables qui contiennent le même début de version et qu'il nous donne la version ou il y a le moins de fichiers différents et la liste des fichiers différents! . Désolé, je n'ai pas compris ton exemple.
A mon avis, la bonne démarche consiste à rechercher une "signature" sur chaque PC où a été installé le programme.
Tu devras créer un 1er programme qui doit:
- 1/ créer un fichier de "signature" = un fichier texte ( à créer avec filewriteline ) contenant 2 colonnes : nom complet du fichier scanné, et hash MD5 . le nom du fichier = nom de machine_inventaire.txt
- 2/ tu te débrouilles pour lancer ce programme sur tous les PC concernés, et à recupérer tous les fichiers d'inventaire générés par ce 1er programme dans un seul répertoire par exemple sur ton propre PC.
- 3/ tu fais un 2eme programme qui va faire te générer un tableau sur 2 colonnes à partir de tous les fichiers d'inventaire que tu as centralisé dans un répertoire : nom du fichier d'inventaire ( et donc nom de la machine ) , et hash MD5 du fichier d'inventaire.
- 4/ analyse de l'étendue de ton probleme de base : tu mets ton tableau dans excel, et tu regardes combien de HASH différents tu as obtenu. Chaque hash différent = un programme installé différement.
Avec un peu de chance, tu n'auras que quelques hashs différents : disons hash A, hash B, hash C.
Tu devras alors retracer à quoi correspond le hash A: par exemple = programme de base + patch N°2 et N°5..., hash B = programme de base avec patch 2 5 et 7,etc...
J'ai encore quelques questions :
- le pack "d'origine", il laisse une trace dans "ajout /suppression de programme" ? Il a été livré sous quelle forme ? un répertoire avec un setup.exe dedans et pleins d'autres fichiers ? juste un setup.exe ? un zip ?
- mêmes questions avec les packs de correction.
- Tu as quel moyen d'exécuter un programme sur les machines cibles.. Avec quelle contexte ? sccm ? registre ? AD ? script de login ? participation active des utilisateurs ? toi via prise de main à distance ou autre ?
- on n'analyse que des fichiers EXE ?
- tu as quelque part sous ton contrôle toutes les versions ? ( le pack d'origine, et tous les correctifs émis... )
- Par exemple, on prend la version du fichier exe qui est 9.6.x.x et on va comparer avec toutes les tables qui contiennent le même début de version et qu'il nous donne la version ou il y a le moins de fichiers différents et la liste des fichiers différents! . Désolé, je n'ai pas compris ton exemple.
A mon avis, la bonne démarche consiste à rechercher une "signature" sur chaque PC où a été installé le programme.
Tu devras créer un 1er programme qui doit:
- 1/ créer un fichier de "signature" = un fichier texte ( à créer avec filewriteline ) contenant 2 colonnes : nom complet du fichier scanné, et hash MD5 . le nom du fichier = nom de machine_inventaire.txt
- 2/ tu te débrouilles pour lancer ce programme sur tous les PC concernés, et à recupérer tous les fichiers d'inventaire générés par ce 1er programme dans un seul répertoire par exemple sur ton propre PC.
- 3/ tu fais un 2eme programme qui va faire te générer un tableau sur 2 colonnes à partir de tous les fichiers d'inventaire que tu as centralisé dans un répertoire : nom du fichier d'inventaire ( et donc nom de la machine ) , et hash MD5 du fichier d'inventaire.
- 4/ analyse de l'étendue de ton probleme de base : tu mets ton tableau dans excel, et tu regardes combien de HASH différents tu as obtenu. Chaque hash différent = un programme installé différement.
Avec un peu de chance, tu n'auras que quelques hashs différents : disons hash A, hash B, hash C.
Tu devras alors retracer à quoi correspond le hash A: par exemple = programme de base + patch N°2 et N°5..., hash B = programme de base avec patch 2 5 et 7,etc...
Modifié en dernier par sksbir le jeu. 30 janv. 2014 14:59, modifié 1 fois.
- ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Alors, le pack d'origine laisse des traces dans la registre, car c'est un msi, mais c'est moi qui lui entrerait le chemin, car le msi ne mets pas le chemin d'install dans le registre.
Toute mise à jour se fait manuellement. Et ce programme doit être lancé manuellement ou par un autre programme.
On doit répertorier les fichiers dll et les fichiers exe. J'ai en ma possession tous les différents pack car c'est moi qui les prépare et les mets en production.
Dans ce programme, on veut stocker les versions (exemple) 9.4.x.x, les version 9.5.x.x et les versions 9.6.x.x
Dans la version 9.4.x.x il y a eu la 9.4.0.1, 9.4.0.2 et la 9.4.0.3.
Dans la version 9.5.x.x il y a eu la 9.5.1.0, 9.5.1.2 et la 9.4.1.3.
Dans la version 9.6.x.x il y a eu la 9.6.0.0, 9.5.1.0 et la 9.4.2.0.
si le programme test.exe son numéro de version commence par 9.6.x.x, on va comparer uniquement la les fichiers de la série 9.6.x.x et pas les autres listes. Est-ce plus clair?
Toute mise à jour se fait manuellement. Et ce programme doit être lancé manuellement ou par un autre programme.
On doit répertorier les fichiers dll et les fichiers exe. J'ai en ma possession tous les différents pack car c'est moi qui les prépare et les mets en production.
Dans ce programme, on veut stocker les versions (exemple) 9.4.x.x, les version 9.5.x.x et les versions 9.6.x.x
Dans la version 9.4.x.x il y a eu la 9.4.0.1, 9.4.0.2 et la 9.4.0.3.
Dans la version 9.5.x.x il y a eu la 9.5.1.0, 9.5.1.2 et la 9.4.1.3.
Dans la version 9.6.x.x il y a eu la 9.6.0.0, 9.5.1.0 et la 9.4.2.0.
si le programme test.exe son numéro de version commence par 9.6.x.x, on va comparer uniquement la les fichiers de la série 9.6.x.x et pas les autres listes. Est-ce plus clair?
- sksbir
- Niveau 7

- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Relis la méthode que je te propose ( j'ai édité ma réponse précédente ). Elle est plus pragmatique car elle s'appuie sur ce que tu vas réellement trouver sur les PC de ton parc, et pas ce que tu es supposé y trouver.
Tu dis ceci : Dans la version 9.4.x.x il y a eu la 9.4.0.1, 9.4.0.2 et la 9.4.0.3. Mais en fait, les version 9.4.0.1 et 2 et 3 existent réellement ou pas ?
- C'est juste toi (ou l'éditeur ) qui les appelle comme ça parce que ça correspond à un "patch" qui a remplacé une DLL par ici et un OCX par là ?
- ou alors, on peut vraiment trouver une valeur "9.4.0.2" par exemple en faisant clic-droit--> propriété sur un élément du programme ?
Et pour le MSI, regarde ce que j'ai proposé il y a longtemps ici.
On peut trouver le chemin d'installation du MSI, et pleins d'autres renseignements grace à l'objet "WindowsInstaller.Installer"
Tu dis ceci : Dans la version 9.4.x.x il y a eu la 9.4.0.1, 9.4.0.2 et la 9.4.0.3. Mais en fait, les version 9.4.0.1 et 2 et 3 existent réellement ou pas ?
- C'est juste toi (ou l'éditeur ) qui les appelle comme ça parce que ça correspond à un "patch" qui a remplacé une DLL par ici et un OCX par là ?
- ou alors, on peut vraiment trouver une valeur "9.4.0.2" par exemple en faisant clic-droit--> propriété sur un élément du programme ?
Et pour le MSI, regarde ce que j'ai proposé il y a longtemps ici.
On peut trouver le chemin d'installation du MSI, et pleins d'autres renseignements grace à l'objet "WindowsInstaller.Installer"
- ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Concernant lu numéro de version, le exe aura 9.6.0.0 et c'est nous qui définissons le version 9.6.0.1 car on créé un pack avec ce numéro!
Concernant ce que tu as mis dans le post précédent, malheureusement ta méthode n'est pas applicable.
Impossible de créer un fichier signature, car il y a déjà des machines à travers le monde. De plus, on sait ce qu'on a livré.
Le but est vraiment de créer une base de données afin d'avoir toutes les versions dedans. De plus, je ne peux pas me baser que sur le md5, car quand si on a des différences dire au technicien que le fichier à le hash "0x1FB1AFC37DC6E74E6565BED0E1C0636D" ça ne va pas lui parler. Tandis que si on dit que le fichier a une date de modification du 01.01.2014 avec la version 9.0.0.5, ça beaucoup plus parlant.
Concernant ton script dont tu parles, malheureusement je n'ai pas du tout le dossier d'installation final. Donc, il n'est pas utilisable. Mais ce point là, n'est pas important. Car je veux pouvoir lui donner le chemin, donc c'est un détail.
Concernant ce que tu as mis dans le post précédent, malheureusement ta méthode n'est pas applicable.
Impossible de créer un fichier signature, car il y a déjà des machines à travers le monde. De plus, on sait ce qu'on a livré.
Le but est vraiment de créer une base de données afin d'avoir toutes les versions dedans. De plus, je ne peux pas me baser que sur le md5, car quand si on a des différences dire au technicien que le fichier à le hash "0x1FB1AFC37DC6E74E6565BED0E1C0636D" ça ne va pas lui parler. Tandis que si on dit que le fichier a une date de modification du 01.01.2014 avec la version 9.0.0.5, ça beaucoup plus parlant.
Concernant ton script dont tu parles, malheureusement je n'ai pas du tout le dossier d'installation final. Donc, il n'est pas utilisable. Mais ce point là, n'est pas important. Car je veux pouvoir lui donner le chemin, donc c'est un détail.
- Tlem
- Site Admin

- Messages : 11818
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Certes, mais si vous lui dites : Le fichier C:\Program Files\Mon Appli\Le Dossier du patch\La Dll du Patch.dll doit avoir telle signature. Si ce n'est pas le cas c'est pas la bonne version.ricky a écrit :dire au technicien que le fichier à le hash "0x1FB1AFC37DC6E74E6565BED0E1C0636D" ça ne va pas lui parler.
Autre solution : Faire un master centralisé et synchroniser les machines des différents sites avec la méthode de sksbir.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Comparateur de fichiers
@Tlem, c'est une bonne idée, mais comme précisé plus haut. On a des machines à travers le monde. Et le 95% n'ont pas accès à internet pour des questions de sécurité (Banques, aéroports, police, bunkers de police,...) et également dans des pays sensibles (Maroc, Syrie, Ukraine, Lybie,...).
- sksbir
- Niveau 7

- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Et ça ne répond pas à la question de savoir si "9.6.0.1" est écrit quelque part .. si c'est une information concrète qu'on peut retrouver dans les fichiers du programme sur les machines cibles. ( parce que que le pack s'appelle v9.6.0.1 ou toto, il s'exécute pareil, et il est mis à la poubelle une fois exécuté...)ricky a écrit :Concernant lu numéro de version, le exe aura 9.6.0.0 et c'est nous qui définissons le version 9.6.0.1 car on créé un pack avec ce numéro!
Voici une proposition:
- Sur ton serveur de mastérisation, il te faut donc une arborescence
\
\v_9.6.0.0\
\v_9.6.0.0\... fichiers et sous répertoires de la v9.6.0.0
\v_9.6.0.1\... fichiers et sous répertoires de la v9.6.0.1
etc...
Tu écris un 1er script de création d'un fichier d'inventaire qui se charge de créer un fichier à 2 colonnes
HASH | chemin du fichier (y compris la version)
Ensuite, il te faut un 2eme script : celui que tu vas déployer partout, et qui utilise le fichier d'inventaire.
Ce 2eme script se contente de parcourir l'arborescence du programme installé sur le poste cible, et il récupère le hash de chaque fichier rencontré.
Pour chaque fichier, il parcours alors TOUTE la table à la recherche d'un hash identique. Il reste plus qu'à présenter le résultat en éliminant la colonne du hash, ( toute la table : car le fichier TOTO.DLL peut être présent à la fois dans la version 9.6.4.2 et 9.6.5.3 par exemple... )
Tu ne gardes que ce qu'il y a entre les 2 1er "\" de la 2eme colonne ( avec stringsplit... ) et ça donnerait des résultats de la forme:
c:\monprogramme\main.exe --> v_9.6.0.1
c:\monprogramme\monocx.ocx --> v_9.6.0.1
c:\monprogramme\monocx.ocx --> v_9.6.0.3
( car dans mon exemple : monocx.ocx se trouve présent dans la 9.6.0.1 et 9.6.0.3 et se retrouve donc avec un hash identique dans la table, mais à deux lignes différentes. )
Une variante possible : épurer la 2eme colonne de la table en utilisant stringsplit avec le 1er script.
- ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Non, le numéro de version c'est moi qui le donnerai.
Je ne veux pas travailler avec plein de fichiers, actuellement j'ai 58 versions de soft différentes et ça va augmenter, donc je peux pas me permettre d'avoir 58 fichiers de version plus le programme. Ou je me tourne vers de la bdd portable ou du totalement intégré et à chaque fois qu'il y a une nouvelle version je le recompile.
Je ne veux pas travailler avec plein de fichiers, actuellement j'ai 58 versions de soft différentes et ça va augmenter, donc je peux pas me permettre d'avoir 58 fichiers de version plus le programme. Ou je me tourne vers de la bdd portable ou du totalement intégré et à chaque fois qu'il y a une nouvelle version je le recompile.
- sksbir
- Niveau 7

- Messages : 384
- Enregistré le : lun. 26 oct. 2009 17:57
- Localisation : Lyon
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Apparemment, tu sais très précisément ce que tu ne veux pas.
Non, le numéro de version c'est moi qui le donnerai. : Tu donneras un N° de version à quoi au juste ?
Je ne veux pas travailler avec plein de fichiers, actuellement j'ai 58 versions de soft différentes : et ces 58 versions, elles ne sont pas stockées quelque part sous forme de fichiers ?
Ce qui manque, c'est de quelles informations tu disposes au juste pour faire tes analyses et construire le référentiel qui te servira ensuite sur les machines cibles.
Si tant est que c'est bien ça que tu veux faire...D'ailleurs, tu n'expliques même pas qu'il y a des machines cibles, et des machines de références, alors que c'est forcément le cas. ces 58 versions de soft, tu comptes faire comment pour les recenser ?
Sinon, on s'en tiendra à ta demande initiale : comparer une liste de fichier avec une autre sans préciser le contexte . Et pour ça, les réponses ont déjà été données.
Non, le numéro de version c'est moi qui le donnerai. : Tu donneras un N° de version à quoi au juste ?
Je ne veux pas travailler avec plein de fichiers, actuellement j'ai 58 versions de soft différentes : et ces 58 versions, elles ne sont pas stockées quelque part sous forme de fichiers ?
Ce qui manque, c'est de quelles informations tu disposes au juste pour faire tes analyses et construire le référentiel qui te servira ensuite sur les machines cibles.
Si tant est que c'est bien ça que tu veux faire...D'ailleurs, tu n'expliques même pas qu'il y a des machines cibles, et des machines de références, alors que c'est forcément le cas. ces 58 versions de soft, tu comptes faire comment pour les recenser ?
Sinon, on s'en tiendra à ta demande initiale : comparer une liste de fichier avec une autre sans préciser le contexte . Et pour ça, les réponses ont déjà été données.
- Tlem
- Site Admin

- Messages : 11818
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Ok, mais dans ce cas, comment comptez vous faire pour vérifier les versions des fichiers locaux ?ricky a écrit :On a des machines à travers le monde. Et le 95% n'ont pas accès à internet pour des questions de sécurité
Sinon, faites un ou plusieurs CD mastrer (cryptés) que vous enverrez aux différents sites et faites une moulinette de mise à jour.
Après, si la communication par internet n'est pas possible. L'envoi d'une clé USB ou d'un CD n'est pas possible non plus, vous pouvez essayez par fax, mais ça va être un peut plus long.
Mis à part cette plaisanterie facile, si vous n'avez pas de moyen de communication vers ces sites en dehors du papier ou du téléphone, ça va pas être des plus simple.
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
- ricky
- Niveau 7

- Messages : 443
- Enregistré le : ven. 06 févr. 2009 09:25
- Localisation : Suisse
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Oui, tu as raison, je sais ce que je veux pas, et la gestion de plusieurs versions, c'est la catastrophe.
Si nous devons connaître l'état actuel de la machine, nous avons actuellement un programme créé spécifiquement pour le SAV basé sur Sysinfolog (mais adapté pour nos besoins) et je peux récolter la liste des fichiers afin de l'analyser dans nos ateliers.
Ce que je recherche c'est le meilleur moyen pour faire cette comparaison mais surtout, la meilleure solution pour stoker ces informations et cela dans un programme qui soit portable. L'idéal serait d'avoir un exe et un fichiers avec les données.
Si nous devons connaître l'état actuel de la machine, nous avons actuellement un programme créé spécifiquement pour le SAV basé sur Sysinfolog (mais adapté pour nos besoins) et je peux récolter la liste des fichiers afin de l'analyser dans nos ateliers.
Ce que je recherche c'est le meilleur moyen pour faire cette comparaison mais surtout, la meilleure solution pour stoker ces informations et cela dans un programme qui soit portable. L'idéal serait d'avoir un exe et un fichiers avec les données.
- Tlem
- Site Admin

- Messages : 11818
- Enregistré le : ven. 20 juil. 2007 21:00
- Localisation : Bordeaux
- Status : Hors ligne
Re: [..] Comparateur de fichiers
Dans ce cas, pourquoi ne pas rajouter un outil qui fera dans un fichier texte, "une cartographie" des programmes et/ou DLL avec l'emplacement, la taille, la version, le MD5 et toutes autres informations utiles que vous pourrez comparer dans vos ateliers à "la cartographie" d'une structure définie. 
Thierry
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...
Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
