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)

Exemples simples de fonctions couramment utilisées

Nous présentons ici quelques fonctions implémentées dans Setuphelpers et fréquemment utilisées pour développer des paquets WAPT.

Tests et manipulation de dossiers et fichiers

Créer un chemin avec récursion

La commande makepath

makepath(programfiles,'Mozilla','Firefox')

… fabrique la variable pour le chemin C:Program Files (x86)MozillaFirefox.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=makepath#setuphelpers.makepath

Créer et détruire des répertoires

La commande mkdirs

mkdirs('C:\\test')

… crée le répertoire C:\test.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=mkdirs#setuphelpers.mkdirs

La commande remove_tree

remove_tree(r'C:\tmp\target')

… détruit le répertoire C:\tmp\target.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=remove_tree#setuphelpers.remove_tree

Tester si des éléments de l’arborescence sont des fichiers ou des répertoires

La commande isdir

isdir(makepath(programfiles32,'software')):
    print('The directory exists')

… vérifie que C:\Program Files (x86)\software est un répertoire.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=isdir#setuphelpers.isdir

La commande isfile

isfile(makepath(programfiles32,'software','file')):
    print('file exist')

… vérifie que C:\Program Files (x86)\software\file est un fichier.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=isfile#setuphelpers.isfile

Tester si un répertoire est vide

La commande dir_is_empty

dir_is_empty(makepath(programfiles32,'software')):
    print('dir is empty')

… vérifie que le répertoire C:\Program Files (x86)\software est vide.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=dir_is_empty#setuphelpers.dir_is_empty

Copier un fichier

La commande filecopyto

filecopyto('file.txt',makepath(programfiles32,'software'))

… copie le fichier file.txt dans le répertoire C:\Program Files (x86)\software.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=filecopyto#setuphelpers.filecopyto

Copier un répertoire

La commande copytree2

copytree2('sources','C:\\projet')

… copie le dossier sources dans le répertoire C:\projet.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=copytree2#setuphelpers.copytree2

Récupérer la version d’un fichier

La commande get_file_properties

get_file_properties(makepath(programfiles32,'InfraRecorder','infrarecorder.exe'))['ProductVersion']

… affiche les propriétés du paquet.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=get_file_properties#setuphelpers.get_file_properties

Manipulation de clés de registre

Tester la présence d’une clé de registre

La commande registry_readstring

if registry_readstring(HKEY_LOCAL_MACHINE, "SOFTWARE\\Google\\Update\\Clients\\{8A69D345-D564-463c-AFF1-A69D9E530F96}", 'pv'):
    print('key exist')

… vérifie que la clé {8A69D345-D564-463c-AFF1-A69D9E530F96} existe dans le répertoire SOFTWARE\Google\Update\Clients de la ruche HKEY_LOCAL_MACHINE.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=registry_readstring#setuphelpers.registry_readstring

Afficher la valeur d’une clé de registre

La commande registry_readstring

print(registry_readstring(HKEY_LOCAL_MACHINE, r'SOFTWARE\Google\Update\Clients\{8A69D345-D564-463c-AFF1-A69D9E530F96}', 'pv'))

… lit la valeur de la clé {8A69D345-D564-463c-AFF1-A69D9E530F96} inscrite dans le répertoire SOFTWARE\Google\Update\Clients de la ruche HKEY_LOCAL_MACHINE.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=registry_readstring#setuphelpers.registry_readstring

Modifier la valeur d’une clé de registre

La commande registry_setstring

registry_setstring(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Windows Live\\Common",'TOUVersion','16.0.0.0', type=REG_SZ)

… modifie la valeur de la clé TOUVersion dans le répertoire SOFTWARE\Microsoft\Windows Live de la ruche HKEY_CURRENT_USER.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=registry_setstring#setuphelpers.registry_setstring

Créer et supprimer des raccourcis

create_desktop_shortcut / remove_desktop_shortcut

La commande create_desktop_shortcut

create_desktop_shortcut(r'WAPT Console Management',target=r'C:\Program Files (x86)\wapt\waptconsole.exe')

C:\Program Files (x86)\wapt\

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=create_desktop_shortcut#setuphelpers.create_desktop_shortcut

La commande remove_desktop_shortcut

remove_desktop_shortcut('WAPT Console Management')

… supprime le raccourci WAPT Console Management du répertoire C:\Users\Public ; le raccourci est supprimé pour tous les utilisateurs.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=remove_desktop_shortcut#setuphelpers.remove_desktop_shortcut

create_desktop_shortcut / remove_desktop_shortcut

Indication

Ces fonctions sont utilisées avec le session_setup.

La commande create_user_desktop_shortcut

create_user_desktop_shortcut(r'WAPT Console Management',target=r'C:\Program Files (x86)\wapt\waptconsole.exe')

C:\Program Files (x86)\wapt\

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=create_user_desktop_shortcut#setuphelpers.create_user_desktop_shortcut

Remove a shortcut from the current users

La commande remove_user_desktop_shortcut

remove_user_desktop_shortcut('WAPT Console Management')

… supprime le raccourci WAPT Console Management du bureau de l’utilisateur.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=remove_user_desktop_shortcut#setuphelpers.remove_user_desktop_shortcut

Environment Windows / Logiciels / Services

windows_version

La commande windows_version

windows_version()<Version('6.2.0'):

… vérifie que la version de Windows est strictement inférieure à 6.2.0.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=windows_version#setuphelpers.windows_version

Liste des numéros de version de Windows.

iswin64

La commande iswin64

if iswin64():
    print('Pc x64')
else:
    print('Pc not x64')

… vérifie que le processeur de la machine est 64bits.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=iswin64#setuphelpers.iswin64

programfiles / programfiles32 / programfiles64

Renvoie les différentes localisations de Program Files

La commande programfiles64

print(programfiles64())

Renvoie le répertoire natif du programme, c.à.d. C:Program Files (x86) pour les architecture win64 et win32.

print(programfiles())

Renvoie le chemin vers le répertoire Programs Files (x86) (sur architecture win64) ou Programs Files (sur architecture win32).

print(programfiles32())

user_appdata / user_local_appdata

Indication

Ces fonctions sont utilisées avec le session_setup.

La commande user_appdata

print(user_appdata())

… renvoie le profil appdata itinérant de l’utilisateur courant (C:\Users\%username%\AppData\Roaming).

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=user_appdata#setuphelpers.user_appdata

La commande user_local_appdata

print(user_local_appdata())

… renvoie le profil appdata local de l’utilisateur courant (C:\Users\%username%\AppData\Local).

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=user_local_appdata#setuphelpers.user_local_appdata

disable_file_system_redirection

La commande disable_file_system_redirection

with disable_file_system_redirection():
    filecopyto('file.txt',system32())

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=disable_file_system_redirection#setuphelpers.disable_file_system_redirection

Gère le contexte pour désactiver temporairement le redirecteur wow3264.

get_computername / get_current_user

La commande get_current_user

print(get_current_user())

… affiche l’identifiant de l’utilisateur connecté.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=get_current_user#setuphelpers.get_current_user

La commande get_computername

print(get_computername())

… affiche le nom de la machine sans le domaine.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=get_computername#setuphelpers.get_computername

La commande get_domain_fromregistry

get_domain_fromregistry()

… renvoie le nom de la machine avec le domaine.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=get_domain_fromregistry#setuphelpers.get_domain_fromregistry

installed_softwares / uninstall_cmd

installed_softwares

La commande installed_softwares

installed_softwares('winscp')

… renvoie la liste des logiciels inscrits dans la base de registre machine sous forme de tableau.

[{'install_location': u'C:\\Program Files\\WinSCP\\', 'version': u'5.9.2', 'name': u'WinSCP 5.9.2', 'key': u'winscp3_is1', 'uninstall_string': u'"C:\\Program Files\\WinSCP\\unins000.exe"', 'publisher': u'Martin Prikryl', 'install_date': u'20161102', 'system_component': 0}]

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=installed_softwares#setuphelpers.installed_softwares

uninstall_cmd

La commande uninstall_cmd

uninstall_cmd('winscp3_is1')

… renvoie la commande de désinstallation silencieuse :

"C:\Program Files\WinSCP\unins000.exe" /SILENT

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=uninstall_cmd#setuphelpers.uninstall_cmd

désinstaller des logiciels

for soft in installed_softwares('winscp3'):
    if Version(soft['version']) < Version('5.0.2'):
        run(WAPT.uninstall_cmd(soft['key']))
  • pour chaque élément de la liste retournée par installed_softwares avec le mot clé winscp ;

  • si la version dans la liste est plus petite que 5.0.2 ;

  • alors lancer la désinstallation avec uninstall_cmd et en indiquant la uninstallkey ;

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://dev.tranquil.it/sphinxdocs/source/setuphelpers.html?highlight=uninstall_cmd#setuphelpers.uninstall_cmd

killalltasks

La commande killalltasks

killalltasks('firefox')

… termine l’exécution du logiciel Firefox.

Indication

Pour plus d’informations ou pour connaître les paramètres complémentaires de la commande, consultez la documentation de référence (en anglais) en visitant :

https://www.wapt.fr/en/api-doc-1.5/source/setuphelpers.html?highlight=killalltasks#setuphelpers.killalltasks

Utiliser les champs du fichier control

def setup():
    print(control['version'])

… affiche le champ version du fichier control du paquet WAPT.

def setup():
    print(control['version'].split('-',1)[0])

… affiche le numéro de version du fichier control sans le numéro de version de packaging WAPT.

Appeler des actions WAPT dans des paquets WAPT

Installer un paquet

La commande install

WAPT.install('tis-scratch')

… installe tis-scratch sur la machine.

Supprimer un paquet

La commande remove

WAPT.remove('tis-scratch')

… désinstalle tis-scratch de la machine.

Oublier un paquet

La commande forget_packages

WAPT.forget_packages('tis-scratch')

… informe WAPT de ne plus suivre le paquet tis-scratch ; WAPT ne connaîtra plus l’existence de ce paquet.

Indication

Si vous voulez supprimer tis-scratch, il faudra soit réinstaller le paquet (wapt-get install "tis-scratch"), puis le supprimer (wapt-get remove "tis-scratch"), ou bien le supprimer manuellement à partir du panneau de configuration Windows Ajout / Suppression de Programmes.