manipolazione del profilo utente
Pubblicato: 15 dicembre 2020 - 13:54
Salve,
sto cercando di installare un pacchetto di aggiornamento di Firefox dalla versione 52.9esr alla 68.9esr.
Il problema è che questo aggiornamento crea un nuovo profilo utente predefinito.
L'idea è di eseguire un backup del file C:\Users\Username\AppData\Roaming\Mozilla\Firefox\profiles.ini in un'altra cartella durante l'installazione (nel mio esempio, C:\temp) e poi ripristinarlo nella sua posizione originale dopo l'installazione, in modo da mantenere l'accesso al profilo utente (contenente segnalibri, password, ecc.).
Per fare ciò, ho: `
from setuphelpers import *
uninstallkey = []
def install():
#copia del file profiles.ini da AppData a c:\Temp
print('salvataggio del file profiles.ini')
filecopyto(user_appdata()+'\Mozilla\Firefox\profiles.ini','c:\Temp')
#terminazione del processo Firefox.exe
print('chiusura di Firefox')
killalltasks("firefox.exe")
#aggiornamento a Firefox 68.9.0esr (32 bit)
print('aggiornamento a Firefox 68.9.0esr (32 bit)')
install_exe_if_needed("Firefox Setup 68.9.0esr.exe",'/s',key='')
.....
Tutto funziona correttamente quando eseguo l'installazione da PyScripter sulla mia macchina di sviluppo (con Windows 10 Pro); Il programma copia correttamente il file profiles.ini da C:\Users\Username\AppData\Roaming\Mozilla\Firefox\ a C:\Temp.
Quando avvio l'installazione del mio pacchetto dalla console su un'altra macchina (server Debian 9, Wapt 1.7.4), ricevo un errore di installazione:
IOError: [Errno 2] Nessun file o directory di questo tipo: u'C:\\Windows\\system32\\config\\systemprofile\\AppData\\Roaming\\Mozilla\\Firefox\\profiles.ini'.
Il file profiles.ini viene cercato nella posizione sbagliata.
Ho provato diversi approcci, incluso l'utilizzo di `
from os import path
appdatapath = path.expandvars('%APPDATA%')
filecopyto(appdatapath+'\Mozilla\Firefox\profiles.ini','c:\Temp')`
, ma il problema persiste: il pacchetto funziona correttamente in locale sulla macchina di sviluppo usando PyScripter, ma ricevo lo stesso errore quando provo a installarlo dalla console su un'altra macchina di test.
C'è un dettaglio che mi sfugge: perché il mio script cerca il file nella posizione corretta quando installo da PyScripter e poi lo cerca in `C:\Windows\system32\config\systemprofile\AppData\Roaming\Mozilla\Firefox` quando lo installo dalla console?
Grazie in anticipo per l'aiuto.
Cordiali saluti,
Cyril G
sto cercando di installare un pacchetto di aggiornamento di Firefox dalla versione 52.9esr alla 68.9esr.
Il problema è che questo aggiornamento crea un nuovo profilo utente predefinito.
L'idea è di eseguire un backup del file C:\Users\Username\AppData\Roaming\Mozilla\Firefox\profiles.ini in un'altra cartella durante l'installazione (nel mio esempio, C:\temp) e poi ripristinarlo nella sua posizione originale dopo l'installazione, in modo da mantenere l'accesso al profilo utente (contenente segnalibri, password, ecc.).
Per fare ciò, ho: `
from setuphelpers import *
uninstallkey = []
def install():
#copia del file profiles.ini da AppData a c:\Temp
print('salvataggio del file profiles.ini')
filecopyto(user_appdata()+'\Mozilla\Firefox\profiles.ini','c:\Temp')
#terminazione del processo Firefox.exe
print('chiusura di Firefox')
killalltasks("firefox.exe")
#aggiornamento a Firefox 68.9.0esr (32 bit)
print('aggiornamento a Firefox 68.9.0esr (32 bit)')
install_exe_if_needed("Firefox Setup 68.9.0esr.exe",'/s',key='')
.....
Tutto funziona correttamente quando eseguo l'installazione da PyScripter sulla mia macchina di sviluppo (con Windows 10 Pro); Il programma copia correttamente il file profiles.ini da C:\Users\Username\AppData\Roaming\Mozilla\Firefox\ a C:\Temp.
Quando avvio l'installazione del mio pacchetto dalla console su un'altra macchina (server Debian 9, Wapt 1.7.4), ricevo un errore di installazione:
IOError: [Errno 2] Nessun file o directory di questo tipo: u'C:\\Windows\\system32\\config\\systemprofile\\AppData\\Roaming\\Mozilla\\Firefox\\profiles.ini'.
Il file profiles.ini viene cercato nella posizione sbagliata.
Ho provato diversi approcci, incluso l'utilizzo di `
from os import path
appdatapath = path.expandvars('%APPDATA%')
filecopyto(appdatapath+'\Mozilla\Firefox\profiles.ini','c:\Temp')`
, ma il problema persiste: il pacchetto funziona correttamente in locale sulla macchina di sviluppo usando PyScripter, ma ricevo lo stesso errore quando provo a installarlo dalla console su un'altra macchina di test.
C'è un dettaglio che mi sfugge: perché il mio script cerca il file nella posizione corretta quando installo da PyScripter e poi lo cerca in `C:\Windows\system32\config\systemprofile\AppData\Roaming\Mozilla\Firefox` quando lo installo dalla console?
Grazie in anticipo per l'aiuto.
Cordiali saluti,
Cyril G