Attention : le support de WAPT 1.8.2 a pris fin le 30 juin 2022.

Il y a plusieurs vulnérabilité présente dans la branche WAPT 1.8.2.7393. Merci de mettre à jour sur la version supportée la plus récente. Liste des CVEs (non exhaustive) :
  • * python engine : python 2.7 (CVE-2020-10735, CVE-2015-20107, CVE-2022-0391, CVE-2021-23336, CVE-2021-3177, CVE-2020-27619, CVE-2020-26116, CVE-2019-20907, CVE-2020-8492, etc.)
  • * cryptography : openssl : CVE-2022-2068, CVE-2022-1292, CVE-2022-0778, CVE-2021-4160, CVE-2021-3712, CVE-2021-23841, CVE-2021-23840, CVE-2021-23839, CVE-2020-1971, CVE-2020-1968, CVE-2019-1551
  • * python dependencies : cryptography (CVE-2020-36242, CVE-2020-25659), eventlet (CVE-2021-21419), jinja2 (CVE-2020-28493), psutil (CVE-2019-18874), waitress (CVE-2022-31015), lxml (CVE-2021-4381, CVE-2021-28957, CVE-2020-27783, CVE-2018-19787), ujson (CVE-2022-31117, CVE-2022-31116, CVE-2021-45958), python-ldap (CVE-2021-46823)

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

La personnalisation du session_setup n’aura lieu qu’une fois par utilisateur et par version de paquet ; un raccourci créé dans ce contexte ne l’est qu’une fois et non à chaque démarrage. Pour exécuter une tâche à chaque démarrage, il est préférable de définir une tâche Windows planifiée qui sera lancée par une GPO locale ou par un script de démarrage.

Exemple : créer un raccourci personnalisé

One of the possibilities offered by Setuphelpers is adding personalized shortcuts on user desktops, instead of a desktop shortcut common to all users.

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

Le fichier C:\waptdev\tis-adwcleaner-wapt est créé.

  • télécharger puis copier / coller l’exécutable adwcleaner.exe dans le répertoire C:waptdevtis-adwcleaner-wapt ;

  • ouvrir et modifier ensuite le fichier d’installation C:waptdevtis-adwcleaner-waptsetup.py ;

# -*- 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')