[RESOLU] killalltasks ne tue pas des taches en cours

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
brice73
Messages : 20
Inscription : 13 févr. 2023 - 08:05

15 févr. 2023 - 17:21

Bonjour,

J'ai un problème avec la fonction killalltasks qui ne permet pas de terminer des processus lors d'une installation de paquet.

Dans la fonction def install() d'un paquet d'un logiciel portable (Phyloboite.exe), l'exe de l'application est lancée avec la commande suivante :

Code : Tout sélectionner

run('C:\AppsPortables\Phyloboite\Phyloboite.exe')
L'application se lance (en mode de compatibilité Windows XP Service Pack3 comme recommandé par l'assistant de compatibilité) et le script d'installation se poursuit mais la commande killalltasks (toujours dans def install() ) ne permet pas ensuite de fermer l'application. Par ailleurs, la fonction 'isrunning' appliquée sur chaque tâche ne renvoie pas "True".

La variable globale taskstokill est définie dans setup.py comme suit :

Code : Tout sélectionner

taskstokill= ['Phyloboite.exe','_Phylo00.exe']
et la fonction killalltasks est appelée comme ceci:

Code : Tout sélectionner

killalltasks(taskstokill,include_children=True)

Pourtant, l'ouverture du gestionnaire de tâches indique bien l'exécution en cours des deux processus 'Phyloboite.exe' et '_Phylo00.exe' , et en ouvrant manuellement une fenêtre d'invite de commande DOS, il est possible de tuer manuellement ces deux tâches.

Le problème a peut être à voir avec le mode de compatibilité qui lance l'installation en plein écran et fait perdre la main sur tout le reste (barre des tâches, bouton démarrer...) ?

WAPT Entreprise 2.3.0.13505
serveur WAPT sous Ubuntu 20.04
Administration/création de paquets sous Windows 10
WAPT Entreprise 2.4.0.14080
serveur WAPT sous Ubuntu 20.04
Administration/création de paquets sous Windows 10
Avatar de l’utilisateur
dcardon
Expert WAPT
Messages : 1401
Inscription : 18 juin 2014 - 09:58
Localisation : Saint Sébastien sur Loire
Contact :

16 févr. 2023 - 18:07

Bonjour Brice,

Pour mieux isoler le pb :
* est ce que vous pouvez essayer de le killer depuis un pyscripter pour voir si c'est un pb de contexte.
* est ce que vous pouvez essayer de le killer depuis un cmd avec un taskkill /f /im monprogramme.exe

merci,

Denis
Denis Cardon - Tranquil IT
Communiquez autour de vous sur WAPT! Envoyez nous vos url de blog et d'articles dans la catégorie votre avis du forum, nous les mettrons en avant sur le site WAPT
brice73
Messages : 20
Inscription : 13 févr. 2023 - 08:05

17 févr. 2023 - 13:13

Bonjour Denis,

Le programme Phyloboite.exe, lorsqu'il est exécuté, lance le processus _Phylo00.exe. J'arrive effectivement à tuer ces deux processus en tuant le processus fils _Phylo00.exe, soit avec une invite de commande, soit dans l'interpréteur en ligne de pyscripter avec killalltasks. (pour ce faire je dois toutefois passer par le gestionnaire de tâches, réduire le processus qui une fois lancé occupe tout l'écran et non dans une fenêtre, puis lancer une invite de commande ou pyscripter).

En fait le problème principal est que l'application portable que je souhaite déployer (Phyloboite.exe) demande des droits administrateur pour s'exécuter. A cette fin , je créée une clé de registre dans la fonction install() pour que tous les utilisateurs puissent exécuter l'application avec des droits administrateurs et en mode de compatibilité avec Windows XP SP3 :

Code : Tout sélectionner

registry_setstring(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers","C:\AppsPortables\Phyloboite\Phyloboite.exe","~ RUNASADMIN WINXPSP3 RUNASINVOKER", type=REG_SZ)
Le problème est que malgré cela, une fois l'application déployée sur des postes, il est en fait nécessaire d'ouvrir une fois l'application avec un compte administrateur avant que les utilisateurs ne puissent eux-mêmes lancer l'application avec des droits d'administrateur.

Pour contourner ce problème d'UAC, je voulais donc tenter d'ouvrir puis refermer l'application lors de son installation. Après plusieurs essais , et suite à l'inopérabilité de killalltasks dans install(), j'avais créé un fichier exe (à partir d'un fichier .bat) qui fait cela et qui est lancé lors de l'installation (dans la fonction install() ). Les tests d'installation/désinstallation sous pyscripter ne montrent pas de problèmes particuliers, l'application s'ouvre quelques secondes (3) , puis se referme, et l'installation se termine. Toutefois, après un test de déploiement réel avec installation à l'arrêt des machines, l'installation de cette application ne se termine pas et semble tourner indéfiniment.

Auriez-vous une solution pour remédier à ce problème d'une application portable qui nécessite des droits d'administrateur pour être lancée?

ps1 : pour information, le fichier .bat à partir duquel est créé le fichier .exe contient les commandes suivantes :

Code : Tout sélectionner

start C:\AppsPortables\Phyloboite\Phyloboite.exe && timeout /t 3 && taskkill /f /im "_Phylo00.exe"


(ps2: une autre chose qui est curieux est que la fonction killalltasks tue bien le processus _Phylo00.exe en cours lors de la désinstallation à l'appel de la fonction uninstall() ).



D'avance merci
WAPT Entreprise 2.4.0.14080
serveur WAPT sous Ubuntu 20.04
Administration/création de paquets sous Windows 10
Avatar de l’utilisateur
dcardon
Expert WAPT
Messages : 1401
Inscription : 18 juin 2014 - 09:58
Localisation : Saint Sébastien sur Loire
Contact :

17 févr. 2023 - 14:27

Bonjour Brice,

je n'ai pas de réponse à votre problème, par contre comme piste de recherche il vous faudrait faire le test d'installation en compte Local SYSTEM, qui est utilisé par l'agent WAPT sur le poste pour voir comment il se comporte.

Pour faire le test vous pouvez installer le paquet tis-sysinternals-pstools et lancer

Code : Tout sélectionner

psexec -s -i cmd.exe


Puis faire l'installation dans ce cmd.exe. Une différence notable entre le compte Administrateur local et le compte Local System est que Local SYSTEM n'a pas de Bureau par défaut. Ca fait bugger certain installeur/logiciels mal écrit...

Pour le pb de lancement en tant tant qu'administrateur, je vous conseille de vérifier quels sont les fichiers qui ont réellement besoin d'être en lecture écriture pour le logiciel en question avec un processexplorer ou équivalent, et de mettre les bonnes ACL sur les fichiers/répertoires/clef de registre correspondantes.

Cordialement,

Denis
Denis Cardon - Tranquil IT
Communiquez autour de vous sur WAPT! Envoyez nous vos url de blog et d'articles dans la catégorie votre avis du forum, nous les mettrons en avant sur le site WAPT
brice73
Messages : 20
Inscription : 13 févr. 2023 - 08:05

17 févr. 2023 - 14:44

Bonjour Denis,

Merci pour vos conseils que je vais tenter de creuser.

En testant autre chose sur le poste de test, je viens de m'apercevoir que malgré l'inextinction de l'agent WAPT pendant l'installation de l'application Phyloboite (j'ai fini par annuler la tache après une dizaine de minutes, s'agissant d'un paquet de moins de 10 Mo), il semble que l'application se soit bien installée et j'ai pu la lancer directement avec un compte utilisateur courant. Toutefois, le paquet reste mentionné en erreur/need install et l'agent WAPT ne s'éteint pas à l'arrêt du poste lorsque l'installation est lancée, donc la procédure d'installation et de déploiement n'est pas opérationnelle...

Cordialement,
WAPT Entreprise 2.4.0.14080
serveur WAPT sous Ubuntu 20.04
Administration/création de paquets sous Windows 10
Avatar de l’utilisateur
dcardon
Expert WAPT
Messages : 1401
Inscription : 18 juin 2014 - 09:58
Localisation : Saint Sébastien sur Loire
Contact :

17 févr. 2023 - 16:27

Bonjour Brice,

il y a un timeout sur la fonction run() qui fait qu'après un certain temps elle kill tout ce qui a été lancé et renvoie un code d'erreur.

Cordialement,

Denis
Denis Cardon - Tranquil IT
Communiquez autour de vous sur WAPT! Envoyez nous vos url de blog et d'articles dans la catégorie votre avis du forum, nous les mettrons en avant sur le site WAPT
brice73
Messages : 20
Inscription : 13 févr. 2023 - 08:05

23 févr. 2023 - 18:07

Finalement, l'installation du paquet fonctionne, le fichier exe appelé permet d'ouvrir puis de fermer l'application lors de l'installation, résolvant le problème d'UAC. :) Le problème d'installation du paquet venait peut-être d'un problème de (lenteur de) réseau sur un des postes tests. Le logiciel a pu être déployé sur de nombreux postes, les quelques erreurs d'installation ont pu être résolues simplement en les relançant.
WAPT Entreprise 2.4.0.14080
serveur WAPT sous Ubuntu 20.04
Administration/création de paquets sous Windows 10
Avatar de l’utilisateur
dcardon
Expert WAPT
Messages : 1401
Inscription : 18 juin 2014 - 09:58
Localisation : Saint Sébastien sur Loire
Contact :

24 févr. 2023 - 09:42

Bonjour Brice,

merci pour le retour. Pour le pb de lenteur réseau, vous voulez dire que l'installeur se connecte à une ressource réseau pour finir son installation? Si possible il est recommander d'avoir des paquets wapt autocontenu pour éviter ce genre de soucis (ie avoir tout dans le paquet). L'agent WAPT télécharge les paquets et les mets en cache en journée (toutes les 1h30) et les installe à l'extinction de la machine ou quand on lui demande de le faire. Cela évite d'avoir des soucis avec la connectivité réseau lors de l'installation.

Je passe le topic en résolu.

Cordialement,

Denis
Denis Cardon - Tranquil IT
Communiquez autour de vous sur WAPT! Envoyez nous vos url de blog et d'articles dans la catégorie votre avis du forum, nous les mettrons en avant sur le site WAPT
brice73
Messages : 20
Inscription : 13 févr. 2023 - 08:05

26 févr. 2023 - 14:30

Bonjour Denis,
Initialement, je ne cochais pas la case de téléchargement des paquets lors de la mise à jour du client, et un poste de test avait une connexion réseau limitée et très lente. Les premières tentatives d'installations avaient échoué. En validant le téléchargement des paquets et ayant augmenté le timeout (celui fichier exe créé à partir du fichier bat) et en testant sur un autre poste, l' installation fonctionnait.
Cordialement,
WAPT Entreprise 2.4.0.14080
serveur WAPT sous Ubuntu 20.04
Administration/création de paquets sous Windows 10
Verrouillé