manipulación del perfil de usuario

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
cirílico
Mensajes: 1
Inscripción: 15 de diciembre de 2020 - 13:35

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
Aedenth
Mensajes: 15
Inscripción: 19 de septiembre de 2016 - 09:26

17 de diciembre de 2020 - 14:32

Hola,

cuando pruebas tu paquete desde PyScripter, la instalación se realiza en el contexto de tu usuario.

Cuando ejecutas la instalación en otra máquina, la instalación se realiza como el usuario SYSTEM, que no tiene un perfil en el sentido tradicional.

Si solo tienes un usuario en la máquina, tendrás que recuperar el nombre del último perfil de usuario que inició sesión y usar esa información para construir la ruta correcta a C:\users\

No estoy seguro de si WAPT tiene una función para recuperar el último usuario autenticado en una máquina.
Consulta la documentación de WAPT; de lo contrario, debe existir una clave de registro que contenga esa información.
Avatar de usuario
htouvet
Experto en WAPT
Mensajes: 436
Inscripción: 16 de marzo de 2015 - 10:48
Contacto :

17 de diciembre de 2020 - 14:44

en setuphelpers:

Código: Seleccionar todo

get_last_logged_on_user()
-> devuelve midominio\usuario

para un usuario local

.\usuario

También

Código: Seleccionar todo

get_loggedinusers()
devuelve una lista ['usuario']

Lista de perfiles de máquinas:

Código: Seleccionar todo

 local_users_profiles()
['C:\\Windows\\ServiceProfiles\\LocalService',
 'C:\\Windows\\ServiceProfiles\\NetworkService',
 'C:\\Users\\htouvet',
 'C:\\Users\\user1']
TI tranquila
Bloqueado