Topic: Scripts personnalisés (remontée logiciel)

Bonjour tout le monde,

Je me permets de ré-ouvrir un sujet qui à déjà était traité mais qui ne m'a pas donné satisfaction car cela ne fonctionne pas chez moi. Le précédent sujet est à cette adresse (http://forum.fusioninventory.org/viewtopic.php?id=570).

Mon problème est que j'ai bien repris le script qui est mis en ligne en faisant bien sûr toutes les modification lié au fichier que je cherche mais la remontée ne se fait pas, j'aimerais donc savoir si vous voyez quelque chose qui ne va pas dans mon script et si il faut faire quelque chose pour que l'agent prenne en compte le script.

package FusionInventory::Agent::Task::Inventory::OS::MySoftware;

use strict;
use warnings;

sub isInventoryEnabled {1}

sub doInventory {
    my $params = shift;
    my $inventory = $params->{inventory};

    if (-f 'c:/logiciel interne/Logiciel_1.txt') {
        $inventory->addSoftware ({
                'NAME'          => 'Logiciel_1',
                'VERSION'       => '1.0',
                'COMMENTS'      => 'Application Métier',
                'FROM'          => 'Entreprise'
                });
    }
}

1;

En vous remerciant d'avance j'espère que vous saurez y répondre. Je cherche également de mon côté pour trouver une solution à mon problème.

Cordialement

Re: Scripts personnalisés (remontée logiciel)

T'as vérifié que le

if (-f 'c:/logiciel interne/Logiciel_1.txt') {

fonctionne?

Co-leader, official developper
DCS official PARTNER: dcs.glpi@dcsit-group.com

Re: Scripts personnalisés (remontée logiciel)

Merci pour ta réponse rapide.

Comment je peux faire pour le vérifier?

Re: Scripts personnalisés (remontée logiciel)

Désolé de relancer mais c'est très important car on m'a chargé de cette mission pour un stage et je ne trouve rien sur le web.

Merci

Re: Scripts personnalisés (remontée logiciel)

T'écris du code que tu ne comprend pas?

Co-leader, official developper
DCS official PARTNER: dcs.glpi@dcsit-group.com

Re: Scripts personnalisés (remontée logiciel)

Je n'ai jamais utilisé perl auparavant ni fait de grosse programmation donc c'est nouveau pour moi. J'ai fait quelques modifications au fichier et j'ai une erreur log que je ne comprends pas.

Voici le script :
package FusionInventory::Agent::Task::Inventory::Win32::MySoftwares;

use strict;
use warnings;



sub isEnabled {
     return 1;
}

sub doInventory {

    my $params = shift;
    my $inventory = $params->{inventory};
   
   
    if (-f 'c:\logiciel_1\Logiciel_1.txt'){
   
        $inventory->addSoftware ({
                'NAME'          => 'logiciel_1',
                'VERSION'       => '1.0',
                'COMMENTS'      => 'Application Metier',
                'FROM'          => 'MyCompany'
                });           
       
}

}
1;

Et l'erreur log est : 
[Wed Apr 30 15:57:16 2014][debug] unexpected error in FusionInventory::Agent::Task::Inventory::Win32::MySoftwares: Can't use string ("datadir") as a HASH ref while "strict refs" in use at ../agent/FusionInventory/Agent/Task/Inventory/Win32/MySoftwares.pm line 15.

Re: Scripts personnalisés (remontée logiciel)

J'ai enfin trouvé la solution avec de l'aide voila donc mon script final qui fonctionne parfaitement :

package FusionInventory::Agent::Task::Inventory::Win32::MySoftwares;

use strict;
use warnings;



sub isEnabled {
     return 1;
}


sub doInventory {
    my (%params) = @_;
   
   my $inventory = $params{inventory};
   my $fichappli="C:\\logiciel_1\\Logiciel_1.txt";
   
   
    if (-e $fichappli) {
   
        _addSoftware(inventory => $inventory, entry => {
                 'NAME'          => 'Logiciel_1',
                'VERSION'       => '1.1',
               'COMMENTS'      => 'Application Metier',
                'FROM'          => 'MyCompany'
            });

    }
}

sub _addSoftware {
    my (%params) = @_;

    my $entry = $params{entry};

 

    $params{inventory}->addEntry(section => 'SOFTWARES', entry => $entry);
}


1;

Par contre j'aurais souhaité savoir si il était possible avec if de faire une recherche de fichier avec le caractère spécial *.

Merci

Re: Scripts personnalisés (remontée logiciel)

Salut,

désolé de déterrer ce topic mais j'ai des petits problèmes dans le cadre de mon stage.

En effet je voudrais faire remonter une donnée de la base de registre pour les lister dans le fusionInventory.

J'ai beaucoup de mal avec les scripts é.é.

[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\... ... ] --> c'est une variable contenue dans cette partie de la base de registre.

Cordialement