5.1.1. Comment désinstaller un logiciel qui n’a pas été installé avec WAPT ?¶
Après avoir déployé WAPT, vous pouvez avoir besoin de supprimer des logiciels hérités déjà installés sur vos postes. WAPT peut automatiser ce processus sur plusieurs machines à l’aide d’un paquet personnalisé contenant du code Python.
Avertissement
Cette méthode ne fonctionne que pour les logiciels installés au niveau du système.
Afficher la solution
1. Identifier et tester le logiciel cible
Identifiez le logiciel à désinstaller et installez-le sur une machine de test afin de valider le comportement du paquet.
2. Créer un paquet WAPT vide
Dans la Console WAPT, naviguez vers :
Inventaire des paquets ‣ Créer un modèle de paquet à partir d’un fichier d’installation ‣ Modèle de paquet ‣ Paquet vide
Remplacez le nom du logiciel dans le code par le nom de l’application que vous souhaitez désinstaller.
Si vous le souhaitez, ajoutez le nom du processus du logiciel au champ impacted-process du fichier control du paquet. Par exemple, pour WinSCP, utilisez winscp.exe.
5. Tester le paquet
Exécutez le paquet sur votre machine locale et vérifiez que le logiciel est bien désinstallé comme prévu.
6. Construire et téléverser le paquet
Dans la Console WAPT, naviguez vers :
Inventaire des paquets ‣ Importer un paquet ‣ Construire et téléverser le paquet
Sélectionnez le paquet que vous avez modifié.
7. Déployer le paquet
Déployez le paquet sur les machines cibles pour désinstaller le logiciel.
5.1.2. Pourquoi les politiques de configuration WAPT entrent-elles en conflit avec les paramètres de stratégie de groupe ?¶
Certaines GPO appliquées par le contrôleur de domaine peuvent entrer en conflit avec les politiques de configuration appliquées par WAPT.
Lorsque deux politiques gèrent le même paramètre, l’une peut écraser l’autre de façon répétée. Si des scripts d’audit WAPT surveillent ce paramètre, le résultat de l’audit peut alterner entre |OK| et |ERROR|.
Pour les utilisateurs de WAPT Enterprise, l’utilisation de paquets de configuration WAPT pour appliquer les politiques présente plusieurs avantages.
Afficher l'explication et les recommandations
1. Exploiter la connaissance de l’appartenance aux OU par l’agent WAPT
Les OU affichées dans la console RSAT standard ne correspondent pas toujours à l’emplacement qu’un poste déclare dans Active Directory.
Il peut alors être difficile de déterminer pourquoi une GPO n’a pas été appliquée à un ordinateur ou à un groupe d’ordinateurs donné. L’agent WAPT remonte les OU auxquelles appartient la machine.
2. Auditer l’application des politiques avec WAPT
Windows ne fournit pas de moyen natif simple pour vérifier que chaque GPO a été correctement appliquée.
Les scripts d’audit de WAPT Enterprise peuvent vérifier si une configuration a été appliquée et remonter le résultat dans la Console WAPT sous la forme |OK| ou |ERROR|.
Ajouter des instructions print() dans un script d’audit peut également aider à identifier la cause de l’échec d’une configuration.
3. Protéger les données de configuration sensibles
Les fichiers de configuration des GPO peuvent exposer des informations confidentielles, telles que des noms d’utilisateur et des mots de passe, à une interception.
WAPT fournit un mécanisme de chiffrement des données sensibles afin qu’elles ne puissent être déchiffrées que par le poste destinataire. Voir Chiffrer des données sensibles dans un paquet.
Recommandation
Dans la mesure du possible, utilisez des paquets de configuration WAPT plutôt que des GPO pour déployer et auditer les politiques de configuration sur l’ensemble de votre parc.
5.1.3. Comment exclure certains postes d’un paquet déployé sur une OU ?¶
Lorsqu’un paquet est déployé au niveau d’une OU, l’héritage peut entraîner son application à toutes les machines concernées de cette OU. Si le paquet est une dépendance ou un conflit, il n’est pas possible d’exclure nativement certaines machines de ce déploiement hérité.
Afficher la solution
Deux approches sont possibles.
Option 1 : Installer le paquet manuellement
Si le paquet ne doit être installé que sur certains postes de l’OU, retirez-le du déploiement au niveau de l’OU et installez-le manuellement sur les machines cibles.
Option 2 : Utiliser un méta-paquet
Créez un méta-paquet contenant une logique personnalisée pour déterminer quelles machines doivent recevoir le paquet et lesquelles doivent en être exclues.
5.1.4. Comment installer un logiciel qui nécessite un redémarrage du système ?¶
Certaines applications nécessitent un redémarrage du système avant que le processus d’installation puisse se poursuivre. L’exemple suivant montre comment un paquet peut détecter si l’ordinateur a redémarré et reprendre l’installation en conséquence.
Afficher un exemple de code Python
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 installation execution')# 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("Installation already executed, but the system has not rebooted")return"NEEDREBOOT"else:print("Installation already executed and system rebooted; continuing")# Insert here the code to be executed after the reboot.
5.2.2. Pourquoi le service WAPT plante-t-il lors de l’installation ou de la suppression d’un paquet ?¶
Certains utilisateurs ont signalé que le service WAPT plante lors de l’installation ou de la suppression d’un logiciel. Dans les cas analysés, Bitdefender bloquait l’exécution de PowerShell, ce qui provoquait l’arrêt du processus WAPT.
Afficher l'explication et la recommandation
1. Vérifier les journaux et les politiques de l’antivirus
Vérifiez si l’antivirus bloque PowerShell ou arrête des processus liés à WAPT.
2. Examiner la configuration de l’antivirus
Si l’antivirus est en cause, examinez ses politiques et déterminez si une exception appropriée peut être configurée, conformément aux exigences de sécurité de votre organisation.
3. Rechercher un comportement similaire avec d’autres produits de sécurité
Ce problème peut également se produire avec d’autres antivirus ou produits de protection des postes. Restez vigilant lors de l’analyse des plantages du service WAPT.
5.3.1. Les paquets pour lesquels une mise à jour est disponible n’apparaissent-ils plus en rouge dans l’onglet « Dépôts privés » ?¶
Depuis la version 2.7 de WAPT, la mise en évidence en rouge a été supprimée car elle pouvait prêter à confusion. La vérification des mises à jour prend en compte toutes les caractéristiques des paquets (système d’exploitation, version, langue, architecture, etc.), qui n’étaient pas pleinement prises en compte par l’ancienne mise en évidence en rouge.
Cette fonctionnalité a été correctement réimplémentée dans la fenêtre « Importer depuis un dépôt ». Il suffit de sélectionner « Plus récent que dans mon dépôt » et « Compatible avec les machines connues » pour identifier avec précision les mises à jour disponibles. Pour plus d’informations sur le processus ici.
5.3.2. Pourquoi ai-je une erreur de base de données en lecture seule lors de la création d’un paquet avec PyScripter ?¶
Lorsque vous essayez d’installer un paquet depuis PyScripter, l’erreur suivante peut apparaître :
Afficher la solution
Lancez PyScripter avec un compte Administrateur local, puis relancez l’opération.
5.3.3. Comment re-signer les paquets après le remplacement d’une clé privée ?¶
Les paquets des dépôts ont été signés avec l’ancienne clé privée. Après le remplacement de cette clé, vous DEVEZ re-signer chaque paquet du dépôt avec la nouvelle clé.
Afficher la solution
Vous pouvez re-signer les paquets avec l’une ou l’autre méthode :
5.3.4. Que faire si un paquet WAPT est trop volumineux pour être téléversé ?¶
Une erreur Streamwriteerror peut se produire si l’ordinateur qui importe le paquet ne dispose pas d’assez d’espace disque libre.
Pendant l’importation, le paquet peut être extrait, signé, construit puis téléversé. Ce processus peut nécessiter environ trois fois la taille du paquet en espace disque disponible.
5.4.1. Pourquoi l’installation d’un paquet WAPT échoue-t-elle alors que le logiciel n’est pas installé ?¶
Une erreur s’est produite lors de l’exécution du fichier setup.py du paquet. La Console WAPT affiche le détail de l’erreur, ce qui peut aider à en identifier la cause.
WAPT relance l’installation à chaque cycle de upgrade jusqu’à ce que le paquet ne retourne plus d’erreur.
Afficher la solution
1. Analyser le code d’erreur
Si WAPT retourne un code d’erreur, recherchez ce code pour en identifier la signification.
Par exemple, l’erreur MSI 1618 indique qu’une autre installation est déjà en cours. Redémarrer l’ordinateur peut résoudre le problème.
2. Reproduire l’installation sur l’ordinateur cible
Rendez-vous sur l’ordinateur concerné et exécutez le paquet avec l’utilitaire en ligne de commande de WAPT. Vérifiez si le logiciel s’installe correctement.
Une fois l’installation silencieuse terminée, ne faites rien d’autre pendant le test. Le but est de reproduire le comportement de l’agent WAPT.
3. Vérifier le contexte d’exécution
Si le paquet s’installe silencieusement dans le contexte utilisateur mais échoue via WAPT, l’installeur ne prend peut-être pas en charge l’installation dans le contexte SYSTEM.
4. Lancer l’installeur manuellement si nécessaire
Si le problème persiste, lancez l’installation manuellement pour révéler d’éventuelles erreurs explicites, telles que des dépendances manquantes.
5. Vérifier la présence de versions plus anciennes du logiciel
Certains installeurs ne peuvent pas s’installer par-dessus une version plus ancienne. Si nécessaire, supprimez explicitement les anciennes versions avant d’installer la nouvelle.
5.4.2. Pourquoi un paquet échoue-t-il avec un délai d’expiration après 600 secondes ?¶
Certains paquets retournent l’erreur suivante dans la Console WAPT :
Error timed out after seconds with output '600.0'
Par défaut, WAPT attend 600 secondes que des commandes telles que run et install_msi_if_needed se terminent. Si l’installeur ne se termine pas dans ce délai, WAPT interrompt l’installation.
Afficher la solution
Augmentez le délai d’expiration de la commande d’installation si l’installation du logiciel est susceptible de durer plus longtemps.
Par exemple, la commande suivante fixe le délai d’expiration à 1200 secondes :
Cela peut être nécessaire pour les applications volumineuses telles que Microsoft Office, SolidWorks, LibreOffice, CATIA ou Adobe Creative Suite.
5.4.3. Pourquoi WAPT signale-t-il que le logiciel a été installé mais que la clé de désinstallation est introuvable ?¶
Certains paquets retournent l’erreur suivante dans la Console WAPT :
XXX has been installed but the uninstall key can not be found.
WAPT utilise des fonctions d’installation Windows pour installer les binaires MSI et EXE, telles que install_msi_if_needed et install_exe_if_needed.
Par défaut, WAPT accepte les codes de retour 0 (succès) et 3010 (redémarrage requis), puis effectue des vérifications supplémentaires pour s’assurer que l’installation a réussi.
Ces vérifications comprennent le contrôle de l’existence de la clé de désinstallation et le contrôle que la version du logiciel installé est égale ou supérieure à la version indiquée dans le fichier control du paquet.
Si ces vérifications échouent, WAPT marque le paquet en erreur et relance l’installation lors des cycles upgrade suivants.
Afficher la solution
1. Vérifier que le logiciel est correctement installé
Avant de modifier le paquet, contrôlez directement l’ordinateur concerné et vérifiez si le logiciel a réellement été installé.
2. Vérifier la clé de désinstallation et la version du logiciel
Si le logiciel est correctement installé, la clé de désinstallation ou la version configurée dans le paquet est peut-être incorrecte.
Récupérez la bonne clé de désinstallation et mettez à jour le paquet WAPT en conséquence.
3. Vérifier le comportement de l’installeur MSI
Si le problème survient avec install_msi_if_needed, l’installeur MSI retourne peut-être une clé de désinstallation incorrecte.
5.4.4. Pourquoi WAPT signale-t-il que la clé de désinstallation a été trouvée mais que la version du logiciel est incorrecte ?¶
Certains paquets retournent l’erreur suivante dans la Console WAPT :
XXX has been installed and the uninstall key found but version is not good.
Des fonctions telles que install_msi_if_needed et install_exe_if_needed effectuent des vérifications supplémentaires pour s’assurer que l’installation a réussi.
Cas 1 : Le paquet utilise ``install_msi_if_needed``
L’installeur MSI peut fournir une information de version incorrecte, ou la clé de désinstallation peut être incorrecte.
Exécutez la commande suivante pour inspecter les informations du logiciel installé :
wapt-getlist-registry
Si la clé retournée diffère de celle configurée dans la section d’installation de setup.py, vous ne pourrez peut-être pas utiliser install_msi_if_needed.
Revoyez le code d’installation, utilisez run() et gérez manuellement les vérifications et les exceptions de l’installeur.
Cas 2 : Le paquet utilise ``install_exe_if_needed``
Le numéro de version fourni à install_exe_if_needed est peut-être incorrect.
Examinez la configuration du paquet et vérifiez la clé de désinstallation et la version du logiciel avec :
wapt-getlist-registry
Si la commande ne retourne pas de version, l’installeur ne fournit peut-être ni clé de désinstallation ni information de version.
Deux solutions de contournement sont possibles :
Option A : Fournir une fonction de version personnalisée
Utilisez l’argument get_version pour récupérer la version depuis une autre clé de désinstallation.
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)
Option B : Désactiver la vérification de version
Définir une valeur vide pour min_version indique à WAPT de ne pas vérifier la version du logiciel.
min_version=' '
Attention
Avec cette méthode, les versions des logiciels ne sont plus vérifiées lors des mises à jour.
5.4.5. Pourquoi l’enregistrement échoue-t-il avec une erreur DNSName A-label ?¶
L’erreur suivante peut apparaître lors d’opérations sur les paquets ou sur les hôtes :
FATAL ERROR : ValueError: DNSName values should be passed as an A-label string. This means unicode characters should be encoded via a library like idna.
Afficher la solution
Vérifiez le nom du poste et assurez-vous qu’il ne contient pas de caractères spéciaux ou non ASCII.