5.1. Gestion de conflit entre la configuration Wapt et les GPO¶
Certains GPOs appliqués par le contrôleur de domaine peuvent entrer en conflit avec les stratégies de configuration appliquées par WAPT.
Fondamentalement, ce qui se passera, c’est qu’une politique réinitialisera de manière récurrente l’autre politique. Si les scripts d’audit de WAPT vérifient ces options de configuration, les audits oscilleront constamment entre |OK| et |ERROR|.
En règle générale, si vous disposez de la version WAPT Enterprise qui implémente audit, vous obtiendrez les meilleurs résultats en utilisant WAPT pour appliquer des politiques pour les 3 raisons suivantes :
Il peut y avoir une différence entre les OU que l’Active Directory affiche dans la console standard RSAT et l’endroit où le point final sait réellement qu’il se trouve dans l’arborescence de l’Active Directory. Cela explique en grande partie pourquoi vous pensez parfois appliquer une GPO sur un hôte d’une OU, et que vous constatez ensuite que la politique ne s’est pas appliquée à l’hôte ou à certains membres d’une OU. L’agent WAPT sait exactement de quelles OU l’appareil est membre.
Windows ne dispose d’aucun moyen natif de signaler si les GPO ont été correctement appliqués ou non. Lorsque l’on utilise WAPT pour configurer des stratégies, la fonction d’audit du paquet de configuration WAPT est un moyen simple de s’assurer que la stratégie a été correctement appliquée. La politique apparaîtra dans la console WAPT comme |OK| ou |ERROR|. Si vous utilisez les instructions print() dans votre script d’audit, vous pouvez alors savoir où et pourquoi votre configuration a échoué.
C’est pourquoi nous recommandons d’utiliser les paquets de configuration WAPT plutôt que les GPO pour déployer les politiques dans vos flottes, dans la mesure du possible.
5.2. Installation ayant besoin d’un redémarrage système¶
Il se peut que vous ayez besoin d’installer une application impliquant un redémarrage système.
Voici un exemple de code qui vous permet de le faire :
fromsetuphelpersimport*definstall():last_boot=str(host_metrics()['last_bootup_time']).rsplit('.',1)[0]file_last_bootup_time=r'C:\last_bootup_time'ifnotisfile(file_last_bootup_time):print('first time installation is executed')# Insert here the code to be executed before the reboot.withopen(file_last_bootup_time,'w')asf:f.write(last_boot)return"NEEDREBOOT"else:withopen(file_last_bootup_time,'r')asf:data=f.read()ifdata==last_boot:print("Install already executed but system has not rebooted")return"NEEDREBOOT"else:print("Install already executed and system rebooted, I can continue")# Insert here the code to be executed after the reboot.
5.3. Mise à jour des paquets WAPT de Python 2 à Python 3¶
Attention
Avec WAPT 2.0, le fonctionnement interne de WAPT est passé à python3. Les paquets WAPT DOIVENT aussi suivre la nouvelle syntaxe python3.
5.4. Le service wapt crash durant une installation ou suppression de paquet¶
Certains clients ont signalé des pannes du service wapt.
En creusant un peu, nous avons réalisé que ces problèmes étaient dus au fait que Bitdefender interdisait l’exécution de Powershell. En conséquence, Bitdefender arrêtait le processus du serveur wapt.
Ceci peut être étendu à tous les programmes antivirus. Restez vigilant.
Lorsqu’on souhaite tester l’installation d’un paquet sur son PC de développement de paquet à partir de PyScripter, on obtient le message :
Lancez PyScripter en utilisant un compte Local Administrator et refaites l’action souhaitée.
5.5.2. Mon paquet WAPT est trop volumineux et je n’arrive pas à l’uploader sur le dépôt¶
Quand un paquet est trop volumineux, il faut en général lancer le builder localement puis l’uploader avec WinSCP.
Assembler le paquet dans PyScripter ou manuellement.
Indication
Le paquet WAPT dans C:\waptdev.
Télécharger et installer WinSCP
En utilisant WinSCP, uploadez votre paquet dans le dépôt selon la version du référentiel WAPT..
Une fois le téléchargement terminé, recréer le fichier d’index Packages sur le dépôt WAPT en utilisant la commande suivante et en remplaçant repository par le repository location selon la version du dépôt WAPT.
wapt-scanpackagesrepository
5.5.3. Erreur de violation d’accès lors de la re-signature du paquet WAPT¶
Si l’erreur Access violation apparaît, c’est parce que le paquet est trop gros.
Si WAPT fournit un code d’erreur, chercher ce code d’erreur sur Internet.
Exemple avec un MSI : 1618 : Une autre installation est déjà en cours. Un redémarrage devrait solutionner le problème.
Note
Les différents codes d’erreur MSI sont disponibles ici.
Se déplacer physiquement sur la machine en erreur et relancer l’installation silencieuse en ligne de commande. Vérifier ensuite que le logiciel à bien été installé.
Attention
Une fois l’installation silencieuse lancée, ne pas intervenir.
L’objectif est de reproduire le comportement de l’Agent WAPT.
Si l’installation fonctionne en mode silencieux, en contexte utilisateur, cela peut signifier que l’installeur ne supporte pas l’installation en compte SYSTEM.
Si cela ne fonctionne toujours pas, lancer l’installation manuellement. Il est possible qu’une erreur apparaisse indiquant explicitement le problème. Exemple (Dépendance manquante : .Net , Java, etc..).
Il est possible que l’installeur ne supporte pas l’écrasement d’une installation précédente, alors prévoir la désinstallation des anciennes version avant d’installer la nouvelle version.
5.5.4.2. Erreur "timed out after seconds with output “600.0” »¶
Certains paquets dans la Console WAPT retournent l’erreur :
"Error timed out after seconds with output '600.0'"
Par défaut lors d’une installation (avec run, install_msi_if_needed ou install_exe_if_needed) WAPT va attendre 600 secondes que l’installeur lui rende la main.
Si l’installeur n’a pas terminé dans ce délai, WAPT coupera l’installation en « cours.
Si vous tentez d’installer un gros logiciel (Office, Solidworks, Libreoffice Katia, Adobe Creative Suite), il est possible que l’intervalle de 600 secondes ne soit pas suffisant.
Vous devez alors, augmenter cette valeur avec l’argument timeout, ex: timeout = 1200.
WAPT s’appuie sur Windows pour installer les binaires .msi avec install_msi_if_need et les binaires .exe avec install_exe_if_need ».
Par défaut, WAPT accepte les codes de retour : 0 (OK) et 3010 (redémarrage nécessaire), et il vérifie la clé de désinstallation résultante (uninstall key).
Malheureusement, nous ne pouvons pas faire entièrement confiance à ces codes de retour, c’est pourquoi WAPT effectue des contrôles supplémentaires après l’installation pour s’assurer que tout s’est bien passé :
Il vérifie la présence de la clé de désinstallation sur la machine.
Il vérifie que la version est bien égale ou supérieure à celle renseignée du fichier control.
Si ce n’est pas le cas, il en déduit que le logiciel n’est peut-être pas présent sur la machine.
La fonction bascule alors volontairement le paquet WAPT en erreur. L’installation sera retentée lors de chaque upgrade, jusqu’à ce que le paquet WAPT ne génère plus d’erreur.
Avant toute chose, il convient de se connecter sur la machine en erreur et de vérifier manuellement si le logiciel est correctement installé . Si ce n’est pas le cas, se référer à la documentation sur les problèmes d’installation d’un paquet..
Si le logiciel est bien installé, cela signifie peut être que la clé de désinstallation ou la version fournie dans le paquet n’est pas bonne.
Récupérer la bonne clé de désinstallation et corriger le paquet WAPT en conséquence.
Si l’erreur se produit avec install_msi_if_needed cela signifie que l’installeur MSI est mal conçu et renvoie une mauvaise clé de désinstallation.
5.5.4.4. Erreur "has been installed and the uninstall key found but version is not good"¶
Certains paquets dans la Console WAPT retournent l’erreur :
Avec les commandes install_msi_if_needed or install_exe_if_needed, des vérifications supplémentaires sont effectuées pour vérifier que tout s’est bien passé.
Attention
Avant toute chose, il convient de se connecter sur la machine en erreur et de vérifier manuellement si le logiciel est correctement installé . Si ce n’est pas le cas, se référer à la documentation sur les problèmes d’installation d’un paquet..
Les informations étant extraites depuis l’installeur MSI, cela signifie que le fichiers MSI ne renvoie pas la bonne version ou que la clé de désinstallation retournée n’est pas la bonne version.
Vous pouvez vérifier en utilisant l’utilitaire de ligne de commande Windows.
wapt-getlist-registry
Si la clé retournée n’est pas celle renseignée dans la partie installation du fichier setup.py , il n’est pas possible d’utiliser la fonction install_msi_if_needed.
Vous DEVEZ revoir la section install de votre setup.py, utiliser la fonction run() et gérer manuellement les exceptions.
Cela signifie probablement que la version renseignée dans la fonction install_exe_if_needed n’est pas la bonne. Corriger le paquet WAPT en conséquence.
Note
Si l’argument min_version n’a pas été renseigné, WAPT va tenter de récupérer automatiquement la version depuis l’installeur .exe.
Pour vérifier la clé de désinstallation utilisée et le numéro de version, utiliser la commande :
wapt-getlist-registry
Si aucune version n’est fournie avec la commande list-registry, cela signifie que la clé de désinstallation du logiciel ne fournit pas de version.
Il existe deux solutions :
Utiliser l’argument get_version pour fournir un chemin vers une autre uninstallkey.
definstall():defversnaps2(key):returnkey['name'].replace('NAPS2 ','')install_exe_if_needed('naps2-5.3.3-setup.exe',silentflags='/VERYSILENT',key='NAPS2 (Not Another PDF Scanner 2)_is1',get_version=versnaps2)
Fournir une valeur vide en argument pour min_version afin d’indiquer à WAPT qu’aucune version n’est à vérifier.
min_version=' '
Attention
Avec cette méthode on ne vérifiera plus la version lors de mise à jour !
5.5.4.5. Erreur "DNSName values should be passed as an A-label string"¶