manipulación del perfil de usuario
Publicado: 15 de diciembre de 2020 - 13:54
Hola,
estoy intentando instalar un paquete de actualización de Firefox de la versión 52.9esr a la 68.9esr.
El problema es que esta actualización crea un nuevo perfil de usuario predeterminado.
La idea es hacer una copia de seguridad del archivo C:\Users\Username\AppData\Roaming\Mozilla\Firefox\profiles.ini en otra carpeta durante la instalación (en mi ejemplo, C:\temp) y luego restaurarlo a su ubicación original una vez finalizada la instalación, para conservar el acceso al perfil de usuario (que contiene marcadores, contraseñas, etc.).
Para ello, tengo: `
from setuphelpers import *
uninstallkey = []
def install():
#copiando el archivo profiles.ini de AppData a c:\Temp
print('guardando el archivo profiles.ini')
filecopyto(user_appdata()+'\Mozilla\Firefox\profiles.ini','c:\Temp')
#terminando el proceso Firefox.exe
print('cerrando Firefox')
killalltasks("firefox.exe")
#actualizando a Firefox 68.9.0esr (32 bits)
print('actualizando a Firefox 68.9.0esr (32 bits)')
install_exe_if_needed("Firefox Setup 68.9.0esr.exe",'/s',key='')
.....
Todo va bien cuando ejecuto mi instalación desde PyScripter en mi máquina de desarrollo (con Windows 10 Pro); Copia correctamente el archivo profiles.ini de C:\Users\Username\AppData\Roaming\Mozilla\Firefox\ a C:\Temp.
Cuando ejecuto la instalación de mi paquete desde la consola en otra máquina (servidor Debian 9, Wapt 1.7.4), obtengo un error de instalación:
IOError: [Errno 2] No existe tal archivo o directorio: u'C:\\Windows\\system32\\config\\systemprofile\\AppData\\Roaming\\Mozilla\\Firefox\\profiles.ini'
Está buscando el archivo profiles.ini en el lugar incorrecto.
He probado varios métodos, incluyendo `
from os import path
appdatapath = path.expandvars('%APPDATA%')
filecopyto(appdatapath+'\Mozilla\Firefox\profiles.ini','c:\Temp')`
, pero el problema persiste: el paquete funciona correctamente en mi máquina de desarrollo con PyScripter, pero obtengo el mismo error al intentar instalarlo desde la consola en otra máquina de prueba.
Hay un detalle que se me escapa: ¿por qué mi script busca el archivo en la ubicación correcta al instalarlo desde PyScripter, y luego lo busca en `C:\Windows\system32\config\systemprofile\AppData\Roaming\Mozilla\Firefox` al instalarlo desde la consola?
Gracias de antemano por su ayuda.
Atentamente,
Cyril G
estoy intentando instalar un paquete de actualización de Firefox de la versión 52.9esr a la 68.9esr.
El problema es que esta actualización crea un nuevo perfil de usuario predeterminado.
La idea es hacer una copia de seguridad del archivo C:\Users\Username\AppData\Roaming\Mozilla\Firefox\profiles.ini en otra carpeta durante la instalación (en mi ejemplo, C:\temp) y luego restaurarlo a su ubicación original una vez finalizada la instalación, para conservar el acceso al perfil de usuario (que contiene marcadores, contraseñas, etc.).
Para ello, tengo: `
from setuphelpers import *
uninstallkey = []
def install():
#copiando el archivo profiles.ini de AppData a c:\Temp
print('guardando el archivo profiles.ini')
filecopyto(user_appdata()+'\Mozilla\Firefox\profiles.ini','c:\Temp')
#terminando el proceso Firefox.exe
print('cerrando Firefox')
killalltasks("firefox.exe")
#actualizando a Firefox 68.9.0esr (32 bits)
print('actualizando a Firefox 68.9.0esr (32 bits)')
install_exe_if_needed("Firefox Setup 68.9.0esr.exe",'/s',key='')
.....
Todo va bien cuando ejecuto mi instalación desde PyScripter en mi máquina de desarrollo (con Windows 10 Pro); Copia correctamente el archivo profiles.ini de C:\Users\Username\AppData\Roaming\Mozilla\Firefox\ a C:\Temp.
Cuando ejecuto la instalación de mi paquete desde la consola en otra máquina (servidor Debian 9, Wapt 1.7.4), obtengo un error de instalación:
IOError: [Errno 2] No existe tal archivo o directorio: u'C:\\Windows\\system32\\config\\systemprofile\\AppData\\Roaming\\Mozilla\\Firefox\\profiles.ini'
Está buscando el archivo profiles.ini en el lugar incorrecto.
He probado varios métodos, incluyendo `
from os import path
appdatapath = path.expandvars('%APPDATA%')
filecopyto(appdatapath+'\Mozilla\Firefox\profiles.ini','c:\Temp')`
, pero el problema persiste: el paquete funciona correctamente en mi máquina de desarrollo con PyScripter, pero obtengo el mismo error al intentar instalarlo desde la consola en otra máquina de prueba.
Hay un detalle que se me escapa: ¿por qué mi script busca el archivo en la ubicación correcta al instalarlo desde PyScripter, y luego lo busca en `C:\Windows\system32\config\systemprofile\AppData\Roaming\Mozilla\Firefox` al instalarlo desde la consola?
Gracias de antemano por su ayuda.
Atentamente,
Cyril G