J'ai beaucoup de postes en erreur dans mon parc suite à une GPO qui je pense, à corrompu les installations existantes de Silverlight.
Le symptôme c'est qu'aucune màj de Silverlight via le WSUS (ou autrement) ne passe sur ces postes qui affiche un code d'erreur 643. J'ai rien trouvé de mieux que de supprimer manuellement Silverlight sur ces machines (via un script trouvé sur le site de Microsoft) mais pour gagner du temps je voudrais le faire via une GPO, de plus tous ne sont pas impactés...
Les postes qui ont un Silverlight fonctionnel mais qu'on ne peut pas désinstaller / mettre à jour ont tous la même version : 5.1.40728.0.
J'ai donc essayé de faire ce script :
Code :
- @ECHO OFF
- SETLOCAL EnableDelayedExpansion
- FOR /F "tokens=3 delims=." %%A IN ('REG QUERY "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Silverlight" /v "Version"') DO SET "Version=%%A"
- ECHO %Version%
- IF (%Version%==40728) (
- REG DELETE "HKLM\Software\Microsoft\Silverlight" /f
- REG DELETE "HKEY_CLASSES_ROOT\Installer\Products\D7314F9862C648A4DB8BE2A5B47BE100" /f
- REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\D7314F9862C648A4DB8BE2A5B47BE100" /f
- REG DELETE "HKEY_CLASSES_ROOT\TypeLib\{283C8576-0726-4DBC-9609-3F855162009A}" /f
- REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\install.exe" /f
- REG DELETE "HKEY_CLASSES_ROOT\AgControl.AgControl" /f
- REG DELETE "HKEY_CLASSES_ROOT\AgControl.AgControl.5.1" /f
- REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{89F4137D-6C26-4A84-BDB8-2E5A4BB71E00}" /f
- RMDIR /s /q "%ProgramFiles%\Microsoft Silverlight"
- RMDIR /s /q "%ProgramFiles(x86)%\Microsoft Silverlight"
- ECHO.
- ECHO Installation of Silverlight 5.1.41212.0 ...
- silverlight.5.1.41212.0.exe /q /doNotRequireDRMPrompt /noupdate
- ECHO.
- ECHO Finish !
- ) ELSE (
- ECHO Installation OK !
- )
- PAUSE
|
NOTE : Les ECHO ne me serviront à rien une fois le script en place, on est d'accord, c'est juste pour m'aider à voir si les conditions sont remplies...
C'est le début du IF qui me chagrine et j'ai beau y réfléchir je trouve pas. L'idéale serai un comparateur inférieur ou égale à la place de == comme ça mon script prendrait aussi en compte les versions plus vieilles qui existent potentiellement, je ferais d'une pierre deux coup.
Ensuite je voudrais faire une GPO machine avec ce script qui sur le poste lira la clé de registre, puis en fonction du résultat déclenche la suppression manuelle suivi de la réinstallation de la nouvelle version. Pour le cas des postes OK, rien ne serai fait car déjà bon.
Merci pour votre aide
---------------
Topic Achat/Vente - Ancien Feed-back