Fonctionnalités supplémentaires

Personnaliser le contexte utilisateur

Un des principaux interêts de WAPT est l’installation et la désinstallation silencieuse de logiciels, et ceci même quand un utilisateur restreint est connecté.

L’agent WAPT fonctionne en compte système et il pourra personnaliser des paramètres en contexte utilisateur de manière dynamique.

Les personnalisations de l’environment utilisateur s’appuient sur la fonction session_setup définie dans la librairie WAPT Setuphelpers.

Principe de fonctionnement

La personnalisation en contexte utilisateur fonctionne comme suit :

  • on décrit les instructions dans la fonction session_setup() du fichier setup.py du paquet WAPT ;
  • quand le paquet est déployé, les instructions sont stockées dans la base de données locale de l’agent WAPT ;
  • quand l’utilisateur se connecte à la machine, les instructions sont exécutées dans la limite d’une exécution par utilisateur et par paquet WAPT ;

Indication

Pour effectuer une tâche à chaque démarrage, il sera plus performant de créer une tâche planifiée, de déployer une GPO locale ou de lancer un script de Démarrage.

Exemple : créer un raccourci personnalisé

Une des possibilités offertes par SetupHelpers est la création de raccourcis individuels sur le bureau utilisateur, à la différence du bureau « Public » commun à tous les utilisateurs.

Nous utiliserons pour ça la fonction create_user_desktop_shortcut() pour créer un raccourci contenant le nom de l’utilisateur et qui passera en argument à Firefox le site https://tranquil.it par exemple.

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
    print('installing tis-firefox-esr')
    install_exe_if_needed("Firefox Setup 45.5.0esr.exe",
                          silentflags="-ms",
                          key='Mozilla Firefox 45.4.0 ESR (x64 fr)'
                          min_version="45.5.0"
                          killbefore="firefox.exe")

def session_setup():
  create_user_desktop_shortcut("Mozilla Firefox de %s" % get_current_user(),
                               r'C:\Program Files\Mozilla Firefox\firefox.exe',
                               arguments="-url https://tranquil.it")

Exemple: déployer un logiciel portable avec WAPT

Un bon exemple de paquet applicatif WAPT est celui d’un logiciel dit portable. Pour cela, il faudra :

  • créer le répertoire d’installation dans C:\Program Files (x86) ;
  • copier l’application dans le dossier ;
  • créer un raccourci sur le bureau de l’utilisateur ;
  • gérer la désinstallation de l’application portable ;
  • fermer l’application si elle est en cours d’exécution ;

Exemple avec ADWCleaner

  • créer un paquet groupe et modifier le fichier control pour en faire un paquet applicatif ;
wapt-get make-group-template tis-adwcleaner
package           : tis-adwcleaner
version           : 6.041-1
architecture      : all
section           : base
priority          : standard
maintainer        : Tranquil-IT Systems
description       : ADW Cleaner

The file C:\waptdev\tis-adwcleaner-wapt is created.

  • download and copy/ paste adwcleaner.exe binary in C:\waptdev\tis-adwcleaner-wapt directory;
  • open and make desired changes to C:\waptdev\tis-adwcleaner-wapt\setup.py installation file;
# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

targetdir = makepath(programfiles32,'adwcleaner')
exename = 'adwcleaner_6.041.exe'

def install():
  mkdirs(targetdir)
  filecopyto(exename,targetdir)
  create_programs_menu_shortcut('ADWCleaner',target=makepath(targetdir,exename))
  # control est un objet PackageEntry correspondant au paquet en cours d'installation
  register_windows_uninstall(control)

def uninstall():
  killalltasks(exename)
  remove_programs_menu_shortcut('ADWCleaner')
  if isdir(targetdir):
      remove_tree(targetdir)
  unregister_uninstall('tis-adwcleaner')