Pagina 1 di 1

[RISOLTO] Pacchetto f.lux

Pubblicato: 4 giugno 2021 - 11:10
di elelay
Buongiorno,

Sto cercando di creare un pacchetto per il piccolo strumento f.lux.
Il problema è che f.lux si installa nei profili utente del PC e più precisamente nella directory AppData Local.
Poiché l'installazione viene avviata come NT Authority\System, f.lux tenta di installarsi nel profilo utente del sistema, che ovviamente non esiste e pertanto restituisce un errore.
errore_installazione.png
install_error.png (9,31 KiB) Visualizzato 3355 volte
Ignorando l'errore tutto funziona, ma non è molto pulito.
C'è un modo, ad esempio, per avviare questa installazione come un altro utente? Come l'account amministratore locale?

Ecco il mio codice attuale:

Codice: Seleziona tutto

# -*- 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))

Oggetto: Pacchetto f.lux

Pubblicato: 4 giugno 2021 - 11:47
di dcardon
Ciao elelay,

un modo per gestire questo tipo di podoware è fare in modo che la funzione install() copi il file in c:\program files\f.lux e poi che session_setup() avvii l'installazione nella directory home dell'utente (ci sono esempi sul forum).

Detto questo, il modo migliore sarebbe contattare lo sviluppatore per assicurarsi che il suo software si installi correttamente in c:\program files. Su una rete ben protetta con SRP/AppLocker, questo tipo di comportamento del software dovrebbe essere evitato (a meno che non si stia cercando di recuperare un ransomware...).

Cordiali saluti,
Denis

Oggetto: Pacchetto f.lux

Pubblicato: 4 giugno 2021 - 14:32
di elelay
Ciao Denis,

grazie mille per la tua rapida risposta.
Se ho capito bene, questo significa che l'installazione avverrà solo al prossimo accesso dell'utente?

Cordiali saluti,

Oggetto: Pacchetto f.lux

Pubblicato: 7 giugno 2021 - 21:24
di dcardon
In setup.py, la sezione `def install()` viene eseguita come account di sistema, quindi non è molto utile per un'app mal sviluppata come Podoware che si installa automaticamente nell'AppData dell'utente. Pertanto, il modo migliore per gestire questa situazione è usare `def session_setup()`, e sì, l'app verrà "installata" (se si può anche solo chiamare "installazione" l'inserimento di DLL ed EXE nell'AppData...) quando l'utente effettua l'accesso.