Page 1 sur 1

Désinstallation silencieuse de la 2.x ou 3.x

Posté : 15 juin 2009 15:09
par Bidouille
Cette procédure ne fonctionne que pour l'environnement Windows

Il peut s'avérer nécessaire d'avoir à désinstaller une version de manière silencieuse. Je pense à cela lorsque son parc est pourvu de versions hétéroclite que l'on veut mettre à jour.

Bien sûr, on peut désinstaller à la mimine si l'on a quelques postes mais l'opération devient naturellement fastidieuse si l'on dépasse la dizaine de machines.

Lorsque vous désinstallez depuis le panneau de configuration via "Ajout / suppression de programme", Windows lance en fait son outil MSIexec. On peut le lancer en mode console mais il faut dans ce cas ajouter le code produit (ProductCode) qui figure dans le fichier :

Code : Tout sélectionner

%programfiles%/OpenOffice.org X/program/version.ini

La difficulté réside donc à récupérer de manière automatique ce code pour le passer en ligne de commande.

Pour vous aider, voici un petit script qui le fait de manière automatique pour la version 3.x :

Code : Tout sélectionner

@echo off
Title Desinstallation de la version OpenOffice.org 3
rem Ecrit par Cyril Beaussier
setlocal enableDelayedExpansion
rem se placer dans le répertoire qui va bien
cd %programfiles%
cd "OpenOffice.org 3"
cd program
for /f "delims=" %%i in ('type "version.ini" ^|findstr /i /r "ProductCode"') do (
   set code=%%i
   echo !code:~12,50! > c:\code.txt
)
set /p code=<c:\code.txt
rem lancement en mode silence sans IHM
msiexec /qn /x %code%


.

Re: Désinstallation silencieuse de la 2.x ou 3.x

Posté : 21 mai 2010 10:29
par Bidouille
Script pour désinstaller la version 2.4 et une 3.x

Code : Tout sélectionner

@echo off
rem Script batch écrit par Cyril Beaussier
Title Desinstallation en mode silencieux des versions 2.4 et 3.x de OOo
set repOOo24=OpenOffice.org 2.4
set repOOo3x=OpenOffice.org 3
setlocal enableDelayedExpansion
rem se placer dans le répertoire qui va bien
rem attention exception pour Win7 avec %programfiles(x86)%
cd %programfiles%
if not exist "%repOOo24%\license.txt" goto version3
echo Desinstallation de %repOOo24%
cd %repOOo24%
cd program
for /f "delims=" %%i in ('type "version.ini" ^|findstr /i /r "ProductCode"') do (
   set code=%%i
   echo !code:~12,50! > c:\code.txt
)
set /p code=<c:\code.txt
rem lancement en mode silence sans IHM
msiexec /qn /x %code%
:version3
if not exist "%repOOo3x%\license.txt" goto fin
echo Desinstallation de %repOOo3x%
cd %repOOo3x%
cd program
for /f "delims=" %%i in ('type "version.ini" ^|findstr /i /r "ProductCode"') do (
   set code=%%i
   echo !code:~12,50! > c:\code.txt
)
set /p code=<c:\code.txt
rem lancement en mode silence sans IHM
msiexec /qn /x %code%
:fin
echo Fin du script