• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Script d'installation + de mise à jour
#1
Bonjour tout le monde,

J'ai une question concernant mon script de déploiement de l'agent Fusioninventory via GPO.
En effet, j'aimerais que ce dernier installe l'agent sur les postes, lorsque ce dernier n'est pas présent. Si l'agent est déjà présent, j'aimerais alors qu'il vérifie la version de l'agent, et, si cette dernière est inférieur à la version la plus récente présente dans le répertoire ou les versions en .exe sont présentes, qu'il se mette à jour.

Je vous joint mon script, mais j'ai bien peur qu'il ne fonctionne pas. N'étant pas un pro du batch.

========== SCRIPT =====================================================================================================================================



ECHO **********************************************************************
ECHO **** Installation automatisée par GPO par l'agent FusionInventory ****
ECHO **** A utiliser via une GPO ****
ECHO **********************************************************************

rem **** Indique la version de l'agent qui est installé

set VERSION=232

rem **** URL d'accès au serveur GLPI

set FISERVER=http://x.x.x.x/glpi/plugins

rem **** Indiquez ici le chemin d'accès complet au serveur vers l'exécutable de l'installation de l'agent

set INSTALLSERVER=\\serveurglpi\Partage

rem **** Verification de l'architecture 32 ou 64bits

IF EXIST "%programfiles(x86)%" goto 64b
echo Système 32 bits détecté
set PROGFOLDER=%programfiles%
echo Dossier d'installation : %PROGFOLDER%\FusionInventory-Agent
goto suite

:64b
echo Système 64bits détecté
set PROGFOLDER=%programfiles(x86)%
echo Dossier d'installation : %PROGFOLDER%\FusionInventory-Agent
goto suite

Confuseduite
IF EXIST "%PROGFOLDER%\FusionInventory-Agent\" goto test

:test
set VERSIONLAPLUSRECENTE=<\\serveurglpi\Partage\VersionLaPlusRecente.txt
IF %VERSION% GEQ %VERSIONLAPLUSRECENTE% goto end
IF %VERSION% LSS %VERSIONLAPLUSRECENTE% goto upgrade

:upgrade
echo Upgrade requise
set N1=2
set N2=3
set N3=8
%INSTALLSERVER%\fusioninventory-agent_windows-x86_%N1%.%N2%.%N3%.exe /server="%FISERVER%/fusioninventory" /debug=1 /runnow /UPGRADE /acceptlicense /S
IF NOT ERRORLEVEL 0 goto end
echo %VERSIONLAPLUSRECENTE% > "C:\VersionFusionInventory.txt"

rem **** Etiquette d'installation de l'agent fusion inventory sur la machine cliente

echo Installation
%INSTALLSERVER%\fusioninventory-agent_windows-x86_2.3.2.exe /server="%FISERVER%/fusioninventory" /debug=1 /runnow /acceptlicense /S
IF NOT ERRORLEVEL 0 goto end
echo %VERSION% > "C:\VersionFusionInventory.txt"
goto end

REM **** Etiquette de vérifiation du fichier "DEPLOYEDVERSION.txt" si la version de l'agent FusionInventory est mis à jour


:end
ECHO INSTALLATION TERMINEE
pause

=======================================================================================================================================================


Pensez vous que ça pourrait fonctionner comme ça ? Ou mon script n'est pas du tout bon ?
Du coup, pour mettre à jour vers une version plus récente, il suffirait de changer la valeur dans VersionLaPlusRecente.txt, et les valeurs de N1, N2, et N3. Enfin, je vois ça comme ça Smile

Merci à vous Smile
Cordialement,
  Reply
#2
Ben je pense qu'il faut que tu test quoi.... Wink
  Reply
#3
Certes, j'y ais pensé, mais je me demandais si vraiment ça tenais la route. Je ne suis pas développeur, et comme je sais que certains ici développe (ou on développé) en batch, j'aurais souhaité leur avis avant de le tester Smile
  Reply
#4
Bonjour,

J'ai essayé, après modification, mon script.

Voilà le nouveau :

================================================================================================================================================================


ECHO **********************************************************************
ECHO **** Installation automatisée par GPO par l'agent FusionInventory ****
ECHO **** A utiliser via une GPO ****
ECHO **********************************************************************

rem **** Indique la version de l'agent

for /f "delims=" %%X in ('type C:\VersionFusionInventory.txt') do (
set VERSIONINSTALEE=%%X
)

set VERSION = 232

rem **** URL d'accès au serveur GLPI (Windows Server 2008R2)

set FISERVER=http://172.19.1.10/glpi/plugins

rem **** Indiquez ici le chemin d'accès complet au serveur vers l'exécutable de l'installation de l'agent

set INSTALLSERVER=\\sgv-sv-glpi\Partage

rem **** Verification de l'architecture 32 ou 64bits

IF EXIST "%programfiles(x86)%" goto 64b
echo Système 32 bits détecté
set PROGFOLDER=%programfiles%
echo Dossier d'installation : %PROGFOLDER%\FusionInventory-Agent
goto suite

:64b
echo Système 64bits détecté
set PROGFOLDER=%programfiles(x86)%
echo Dossier d'installation : %PROGFOLDER%\FusionInventory-Agent
goto suite

Confuseduite
IF EXIST "%PROGFOLDER%\FusionInventory-Agent\" goto test
IF NOT EXIST "%PROGFOLDER%\FusionInventory-Agent\" goto installation

:test
for /f "delims=" %%X in ('type \\sgv-sv-glpi\Partage\VersionLaPlusRecente.txt') do (
set VERSIONLAPLUSRECENTE=%%X
)
echo %VERSIONLAPLUSRECENTE%
IF %VERSIONINSTALEE% GEQ %VERSIONLAPLUSRECENTE% goto end
IF %VERSIONINSTALEE% LSS %VERSIONLAPLUSRECENTE% goto upgrade

:upgrade
echo Upgrade requise
set N1=2
set N2=3
set N3=8
%INSTALLSERVER%\fusioninventory-agent_windows-x86_%N1%.%N2%.%N3%.exe /server="%FISERVER%/fusioninventory" /debug=1 /runnow /UPGRADE /acceptlicense /S
IF NOT ERRORLEVEL 0 goto end
echo %VERSIONLAPLUSRECENTE% > "C:\VersionFusionInventory.txt"

rem **** Etiquette d'installation de l'agent fusion inventory sur la machine cliente

:installation
echo Installation
%INSTALLSERVER%\fusioninventory-agent_windows-x86_2.3.2.exe /server="%FISERVER%/fusioninventory" /debug=1 /runnow /acceptlicense /S
IF NOT ERRORLEVEL 0 goto end
echo %VERSION% > "C:\VersionFusionInventory.txt"
goto end

:end
ECHO INSTALLATION TERMINEE
pause

================================================================================================================================================================

Seulement, même lorsqu'il est déjà installé, j'ai l'impression que le script ne passe pas par Upgrade mais va à installation. Donc ça ne fonctionne pas.
Quelqu'un sais d'où cela peut provenir ?
Y a t-il un moyen de faire du débogage avec du batch ? Histoire de voir par ou le programme passe ? Comme en C# par exemple avec VisualStudio.

Merci à vous Smile
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)