Déploiement de logiciels par GPO

Transcription

Déploiement de logiciels par GPO
Déploiement de logiciels par GPO
Vu qu'en ce moment j'expérimente un peu tous les aspects relatifs au déploiement de logiciels (mais aussi leur suppression
parce que le réseau est rempli de trucs inutiles), c'est assez frais pour que je ne dise pas trop de bêtises :) . (En plus j'ai déjà eu
l'occasion d'aborder le sujet sur Framagora)
D'abord, je précise que je bosse sur un serveur Windows 2003 en milieu scolaire, avec Magret pour la création automatique
des stratégies, la gestions des sessions, fichiers, etc mais, a priori, la présence de Magret ne devrait pas avoir trop de
conséquence sur la manière de procéder. L'ensemble du parc est sous Windows XP.
Il est possible de déployer les logiciels de deux manières : soit avec un fichier .msi, soit avec le fichier .exe (mais c'est un peu
moins simple).
Dans les deux cas il faut, sur le serveur, lancer la console de gestion de l'Active Directory (Outils d'administration >
Utilisateur et Ordinateur Active Directory ou Exécuter > dsa.msc)
Sélectionnez l'Unité d'Organisation sur laquelle vous souhaitez voir s'appliquer l'installation du logiciel. Il s'agit forcément
d'une salle ou d'un regroupement de stations mais pas d'un groupe d'utilisateur. Dans mon exemple, ce sera la salle S202, salle
où se trouve l'unique ordinateur qui me sert pour les tests (une vieille carcasse tant qu'à faire ;) )
Faites un clic-droit, cliquez sur Propriétés et allez dans l'onglet Stratégie de groupe
Créer une nouvelle stratégie (Nouveau) que vous renommez selon vos besoins. Ici elle s'appelle TEST, mais ça peut tout aussi
bien être le nom de la salle, le nom du logiciel à déployer ou le type de poste sur le quel vous souhaitez réutiliser la stratégie
utilisée pour le déploiement.
Sur la capture on peut voir une stratégie PPROFS que j'ai utilisé pour déployer OpenOffice.org 3 et les visionneuses MSOffice. Elle ne s'applique que sur les machines utilisées par des profs, elles ont presque toutes une configuration matérielle
différente ce qui empêche de procéder à un clonage des stations (contrairement aux salles utilisées par les élèves). C'est donc
une stratégie qui s'applique sur plusieurs Unités d'Organisation. Si vous avez besoin d'utiliser une stratégie déjà crée il suffit de
cliquer sur Ajouter et d'aller la chercher dans l'onglet Tous (d'où l'importance d'avoir un intitulé assez explicite)
1. Déploiement par fichiers .msi
Cliquez sur Modifier. Dans la colonne de gauche vous avez une arborescence, cliquez sur Paramètres du logiciel >
Installation de logiciel.
Sur la zone à droite, clic-droit Nouveau > Package... > Favoris Réseau et sélectionnez l'emplacement réseau sur lequel le
fichier .msi est partagé. En général, on place ce fichier d'installation dans le dossier \\votre_serveur\Netlogon pour simplifier
(la gestion des droits sous Windows c'est vraiment pénible) : les droits d'accès sont hérités et l'utilisateur SYSTEM y a accès
c'est ce qui compte.
Sur la capture, c'est le fichier d'installation de Shockwave qui est sélectionné.
Une fois appliqué, lorsque la station (S202) redémarre, se connecte une fois et re-redémarre, on voit apparaître avant même
l'invite d'ouverture de session : Préparation des connexions réseau > Activation des paramètres de l'ordinateur >
Installation du logiciel Adobe Shockwave Player
L'avantage, c'est que la procédure est simple, mais pour des logiciels un peu lourd, l'ordinateur reste bloqué pendant un
moment avant que l'utilisateur puisse se connecter. Il vaut donc mieux étaler les installations de plusieurs logiciels sur plusieurs
jours.
Pour de grosses mises à jour c'est pareil. J'avais installé Java 6 update 10, le lendemain la version 11 était sortie. J'ai voulu
simplement remplacer le package 10 par le 11 dans la stratégie, seulement, l'installation bloquait sur la dernière étape ce qui
rendait la station inutilisable.
Un autre avantage du .msi, c'est que si vous supprimez le package de la liste, on vous propose de : soit désinstaller le logiciel
des stations, soit le conserver.
2. Déploiement par fichiers .exe
En général, on trouve facilement le fichier .msi équivalent au .exe sur le site du logiciel. Mais parfois, il n'y en a pas. Notamment
pour Gimp (ça sera mon exemple). Il faut donc préparer le terrain un peu avant pour créer un script qui permettra une
installation silencieuse du logiciel.
Les paramètres à passer ne tombent pas du ciel, on peut trouver des informations utiles sur le site appdeploy.com par exemple
où d'autres se sont penchés sur le problème, mais on peut aussi obtenir des informations en tapant dans une console MSDos /? devant le fichier .exe d'installation (ça marche aussi avec les .msi mais les paramètres sont toujours les même) :
\\votre_serveur\netlogon\gimp\gimp-2.6.4-i686-setup.exe /?
Les information étant bien détaillées, on doit donc passer en paramètre /VERYSILENT pour une installation
silencieuse, /SPPRESSMSGBOXES pour éviter d'importuner l'utilisateur avec d'éventuels messages d'erreur, /NORESTART
pour éviter un éventuel redémarrage et /NOICONS pour ne pas afficher de raccourcis dans le Menu Démarrer. Il y a d'autres
paramètres (notamment la création d'un fichier de log), c'est à vous de voir en fonction.
On crée un fichier install_gimp.bat par exemple (Nouveau > Fichier.txt > Renommer en changeant l'extension) qui
contiendra le script de l'installation silencieuse. On l'édite avec le Bloc-note ou avec un n'importe quel éditeur de texte qui vous
convienne. Si vous rencontrez des problèmes avec les accents ("Menu Démarrer" transformé en "Menu Dümarrer" par
exemple) il faut passer par la commande MS-Dos "edit".
Le problème qui se pose c'est qu'il ne faut pas que Gimp s'installe à chaque démarrage de l'ordinateur. Pour cela, on va vérifier
si le fichier est bien présent dans Program Files ce qui donne :
if not exist "C:\Program Files\GIMP-2.0\bin\gimp-2.6.exe" \\votre_serveur\netlogon\Gimp\gimp2.6.4-i686-setup.exe /VERYSILENT /SPPRESSMSGBOXES /NORESTART /NOICONS Pour supprimer le raccourci du
bureau (commande del) :
del "C:\Documents and Settings\All Users\Bureau\GIMP 2.lnk"
Je supprime le raccourci parce que les raccourcis sont gérés de manière centralisée sur le serveur.
Une fois le script fini, testé (vérifiez les processus en cours avec le gestionnaire des tâches et observez si le résultat voulu est
bien obtenu) et validé. Il ne reste plus qu'à le déployer pour qu'il se lance au démarrage de la machine.
Donc, même endroit que pour les .msi, cliquez sur Modifier et dans l'arborescence cliquer sur Paramètres Windows >
Scripts (démarrage/arrêt) > Démarrage
Cliquez sur Afficher les fichiers pour pouvoir copier dans le dossier qui s'ouvre votre fichier install_gimp.bat.
Ensuite, cliquez sur Ajouter > Parcourir... et sélectionnez le fichier install_gimp.bat.
A ce stade là, redémarrage, ouverture de session, re-redémarrage et vous verrez apparaître sur les stations Préparation des
connexions réseau > Activation des paramètres de l'ordinateur > Exécution des scripts de démarrage
Remarques : Chez moi, l'emplacement des scripts est
C:\Windows\sysvol\sysvol\Nom_de_domaine_du_serveur.local\Policies\{9EF62B32-61C4-436C-9581218AFABB5A88}\Machine\Scripts\Startup, la série de caractères alphanumériques correspond à l'emplacement de la
stratégie TEST. Il y a également un dossier Adm qui contient les Modèles d'administrations.
Autre remarque : C:\Windows\sysvol\sysvol est le dossier partagé \\votre_serveur\sysvol et
C:\Windows\sysvol\sysvol\Nom_de_domaine_du_serveur.local\scripts est le dossier partagé \\votre_serveur\netlogon
Avec Magret, il est possible d'utiliser un scrpit batch appelé "magsys.bat" à placer dans netlogon qui se lancera sur l'ensemble
des stations du réseau au démarrage.
Commandes utiles pour la création de scripts batch
regedit /s \\votre_serveur\emplacement_partagé\fichier.reg permet de modifier la base de registre silencieusement.
del "C:\emplacement\fichier.ext" permet de supprimer un fichier.
rmdir "C:\emplacement\dossier" /s /q permet de supprimer un dossier.
mkdir "C:\emplacement\dossier" permet de créer un dossier.
hostname renvoie le nom de la machine (j'en ai eu besoin parce que dans certaines salles avec des postes destinés aux élèves,
il y a un poste prof qui doit être isolé).
Exemple de scripts
Installation de Java 6 update 12
if not exist "C:\Program Files\Java\jre6\bin\npjpi160_12.dll" \\serveur01\netlogon\Java\jre6u12-windows-i586-p-s.exe /s IEXPLORER=1 MOZILLA=1 REBOOT=Suppress
npjpi160_12.dll est le fichier utilisé comme plugin pour Netscape et dérivés, c'est le seul fichier qui contient le numéro de
version de Java dans le nom. Ça permet de faire d'une pierre deux coup : si une version antérieure de Java est installée, on fait
la mise à jour.
Suppression de Foxit Reader
Foxit Reader propose un installeur en .msi, mais lorsqu'il a été installé par le fichier .exe, il n'y a pas d'autre solution que de
supprimer manuellement les fichiers ou de passer sur chaque machine lancer la désinstallation. Alors voilà ce que ça donne de
manière sale :
if exist "C:\Program Files\Foxit Software\Foxit Reader\Foxit Reader.exe" regedit /s
"\\SERVEUR01\netlogon\Registre\foxit.reg"
if exist "C:\Program Files\Foxit Software" rmdir "C:\Program Files\Foxit Software" /s /q
if exist "C:\Documents and Settings\All Users\Menu D‚marrer\Programmes\Foxit Reader" rmdir
"C:\Documents and Settings\All Users\Menu D‚marrer\Programmes\Foxit Reader" /s /q
if exist "C:\Documents and Settings\All Users\Bureau\Foxit Reader.lnk" del "C:\Documents and
Settings\All Users\Bureau\Foxit Reader.lnk"
1. Suppression des clés du registre mises par Foxit Reader à l'installation. Le fichier foxit.reg contient ces lignes :
REGEDIT4
[-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Foxit Reader]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\FoxitReader.Document]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{14E8BBD8-1D1C-4D56-A4DA-D20B75EB814E}]
[-HKEY_LOCAL_MACHINE\SOFTWARE\Foxit Software]
2. Suppression du dossier "Program Files" du logiciel
3. / 4. Suppression des raccourcis qui traînent sur le Bureau et le Menu Démarrer.
Suppression d'Adobe Reader 7 et 8
La version 9 n'était pas installée sur le réseau et c'est tant mieux, c'est vraiment une horreur...
if exist "C:\Program Files\Adobe\Acrobat 7.0\Reader\AcroRd32.exe" msiexec /uninstall
"C:\Program Files\Adobe\Acrobat 7.0\Setup Files\RdrMin\ENU\Adobe Reader 7.0.msi" /quiet
if exist "C:\Program Files\Adobe\Acrobat 7.0" rmdir "C:\Program Files\Adobe\Acrobat 7.0" /s /q
if exist "C:\Program Files\Adobe\Reader 8.0\Reader\AcroRd32.exe" msiexec /uninstall "C:\Program
Files\Adobe\Reader 8.0\Setup Files\{AC76BA86-7AD7-1036-7B44-A81300000003}\AcroRead.msi" /quiet
if exist "C:\Program Files\Adobe\Reader 8.0" rmdir "C:\Program Files\Adobe\Reader 8.0" /s /q
if exist "C:\Program Files\Adobe\Adobe Help Viewer" rmdir "C:\Program Files\Adobe\Adobe Help
Viewer" /s /q
1. Désinstallation propre de la version 7 avec le .msi de "sauvegarde" stocké dans "Program Files"
2. Suppression du dossier qui reste (il y a une librairie activeX qui reste parfois, si le dossier ne peut être supprimer sur le
moment, il sera supprimé après redémarrage)
3. - 4. Même principe qu'au 1. - 2. pour la version 8
5. Suppression du dossier contenant les fichiers d'aide (on peut directement supprimer le dossier C:\Program Files\Adobe si
Photoshop ou un autre produit n'est pas installé quelque part)
Installer le plugin Flash 10 pour Netscape et dérivés
if not exist "C:\WINDOWS\system32\Macromed\Flash\NPSWF32.dll" \\serveur01
\netlogon\Flash\install_flash_player.exe /S
set valeur=reg query
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Adobe Flash Player
Plugin" /v DisplayVersion
set version=findstr /I /L /C:"REG_SZ"
for /f "tokens=1,2,3" %%a in ('%valeur%^|%version%') do if %%c neq 10.0.12.36 \\serveur01
\netlogon\Flash\install_flash_player.exe /S
1. Installation si aucune version de flash n'est installée, le fichier "NPSWF32.dll" est le fichier qui sert de plugin (on peut le
copier manuellement dans le dossier plugin de Firefox ça marche très bien :) ).
2. - 3. Recherche dans la base de registre qu'elle est la version de Flash installée
4. Installation si flash n'est pas la version 10.0.12.36 (on obtient le numéro de version en consultant la base de registre après
installation de la dernière version de flash sur une machine de test, la clé est celle qu'on trouve à la ligne 2.)
Le principe est identique pour la version ActiveX pour Internet Explorer avec le fichier "Flash10a.ocx" au lieu de
"NPSWF32.dll". On peut aussi appliquer la recherche de version dans la base de registre pour n'importe quel logiciel.