Page 1 sur 1

[RESOLU] Paquet f.lux

Publié : 04 juin 2021 - 11:10
par elelay
Bonjour,

J'essaye de créer un paquet pour le petit outil f.lux.
Le problème étant que f.lux s'installe dans les profils utilisateurs du PC et plus précisément dans le répertoire AppData Local.
Et comme l'installation est lancée en tant que NT Authority\System, f.lux essaye de s'installer dans le profil utilisateur du système, qui n'existe pas évidemment et renvoi donc une erreur.
install_error.png
install_error.png (9.31 Kio) Consulté 860 fois
En ignorant l'erreur tout fonctionne, mais bon ce n'est pas très propre.
Est-ce qu'il y aurait moyen par exemple de lancer cette installation en tant qu'un autre utilisateur ? Style le compte administrateur local ?

Voici mon code actuellement :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

bin_name = 'flux-setup.exe'
package_version = control.version.split('-',1)[0]

def install():
    killalltasks("flux.exe")
    install_exe_if_needed(bin_name,'/S /alluser',key='',min_version=package_version)

def uninstall():
    killalltasks("flux.exe")
    for user in local_users_profiles():
        flux_uninstall_path = makepath(user, '\AppData\Local\FluxSoftware\Flux\uninstall.exe')
        if isfile(flux_uninstall_path):
            run('{} /S'.format(flux_uninstall_path))

Re: Paquet f.lux

Publié : 04 juin 2021 - 11:47
par dcardon
Bonjour elelay,

une manière de traiter ce genre de podoware est que la fonction install() copie le fichier dans c:\program files\f.lux et que le session_setup() lance l'installe dans le répertoire utilisateur (il y a des exemples sur le forum).

Ceci dit la meilleur manière serait de voir avec le développeur pour faire en sorte que son logiciel s'installe proprement dans c:\program files. Sur un réseau bien sécurisé avec du SRP/AppLocker ce genre de comportement logiciel est à proscrire (à moins que l'on cherche à récupérer des ransomware...)

Cordialement,
Denis

Re: Paquet f.lux

Publié : 04 juin 2021 - 14:32
par elelay
Bonjour Denis,

Merci beaucoup pour la rapidité de votre réponse.
Si je comprends bien, cela veut dire que l'installation ne se fera qu'à la prochaine ouverture de session de l'utilisateur ?

Cordialement,

Re: Paquet f.lux

Publié : 07 juin 2021 - 21:24
par dcardon
dans le setup.py la section def install() s'exécute en compte système, donc ça ne sert pas à grand chose pour une appli podoware (appli développée avec les pieds) qui s'installe dans le AppData utilisateur. Donc la meilleur manière de gérer cela est d'utiliser le def session_setup(), et oui l'appli sera "installée" (si l'on peut appeler "installer" le fait de poser des dll et exe dans le AppData...) au moment de l'ouverture de session de l'utilisateur.