Página 1 de 1

[RESUELTO] Creando un paquete para modificar el registro de Windows

Publicado: 20 de febrero de 2020 - 10:59 a. m.
por Minus
Buen día

Me gustaría usar Wapt para implementar una modificación en una clave en el registro de Windows relacionada con la configuración de Outlook en ciertas PC

Mi archivo .reg básico se ve así:

Código: Seleccionar todo

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\AutoDiscover]
"ExcludeExplicitO365Endpoint"=dword:00000001
Así que creé dos archivos por lotes como sigue:

El primero es instalar la clave (AntiPopup.bat):

Código: Seleccionar todo

@echo off
REG ADD HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\AutoDiscover /f /v ExcludeExplicitO365Endpoint /t REG_DWORD /d "00000001"
El segundo es eliminar la clave (RemoveAntiPopup.bat)

Código: Seleccionar todo

@echo off
REG DELETE HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\AutoDiscover /v ExcludeExplicitO365Endpoint /f
Inicialmente, probé los archivos por lotes en una máquina virtual y funcionaron sin problemas

Sin embargo, una vez creado el paquete WAPT con el siguiente setup.py:

Código: Seleccionar todo

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

uninstallkey = []

def install():
    print('AntiPopup.bat: Execute...')
    run(r'AntiPopup.bat')

def uninstall():
    print('RemoveAntiPopup.bat: Execute...')
    run(r'RemoveAntiPopup.bat')
La instalación continúa sin errores, pero la clave no se crea en la máquina virtual.

Pensando que podría haber un problema con la aplicación de un archivo por lotes, convertí los archivos por lotes en archivos exe con derechos de administrador.

Probé los archivos ejecutables directamente en la VM; crean y eliminan la clave correctamente

Creé el archivo setup.py de la siguiente manera:

Código: Seleccionar todo

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

uninstallkey = []

def install():
    print('AntiPopup.exe: Execute...')
    run(r'AntiPopup.exe')

def uninstall():
    print('RemoveAntiPopup.exe: Execute...')
    run(r'RemoveAntiPopup.exe')
Y ahí, el mismo problema que antes: el paquete corre bien sin errores, pero el archivo .exe no se aplica, como si no se estuviera ejecutando

¿Podrías ayudarme, por favor? Tengo que crear varios paquetes pequeños como este.

Gracias de antemano

### Información requerida###
Servidor que ejecuta Debian 9
Equipo de administración de Windows 10 Pro (1909)
Versión del servidor WAPT: 1.8.1
Versión del agente WAPT: 1.8.1.6740
Versión de configuración de WAPT: 1.8.1.6740
Versión de implementación de WAPT: 1.8.1.6740
Estado de la base de datos: OK (1.7.6.6)

Re: Creación de un paquete para modificar el registro de Windows

Publicado: 20 de febrero de 2020 - 13:46
por agauvrit
Hola,

es más sencillo con la función correcta: https://www.wapt.fr/fr/doc/wapt-create- ... gistry-key

Alexandre

Re: Creación de un paquete para modificar el registro de Windows

Publicado: 20 de febrero de 2020 - 14:02
por Minus
Para un principiante que aprende Python, ¿es adecuado este tipo de archivo setup.py simple?

Código: Seleccionar todo

# -*- coding: utf-8 -*-
from setuphelpers import *
 
registry_setstring(HKEY_CURRENT_USER, "SOFTWARE\\Microsoft\\Office\\16.0\\Outlook\\Autodiscover",'ExcludeExplicitO365Endpoint','00000001', type=REG_DWORD)

Re: Creación de un paquete para modificar el registro de Windows

Publicado: 20 de febrero de 2020 - 14:11
por agauvrit
Acabo de recibir una reprimenda de mi colega: es una clave HKCU, así que no se puede modificar en el contexto del sistema, solo en el contexto del usuario. (Gracias, Simon)

La respuesta correcta es:

Código: Seleccionar todo

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

uninstallkey = []

def install():
    pass

def uninstall():
    pass
    
def session_setup():
    registry_setstring(HKEY_CURRENT_USER, r"SOFTWARE\Microsoft\Office\16.0\Outlook\Autodiscover",'ExcludeExplicitO365Endpoint',1, type=REG_DWORD)
Para entender cómo funciona session_setup(): https://www.wapt.fr/fr/doc/wapt-create- ... entorno

Primero, debes instalar el paquete > luego ejecutar el comando

Código: Seleccionar todo

wapt-get session-setup ALL
en la estación de trabajo para ejecutar la función session_setup

Alejandro

Re: Creación de un paquete para modificar el registro de Windows

Publicado: 20 de febrero de 2020 - 14:17
por Minus
Muchas gracias por la información y disculpen las molestias. :?

El comando `wapt-get session-setup ALL` es correcto; se puede ejecutar fácilmente mediante una GPO.

Entonces, ¿qué pasaría si fuera una clave HKLM? ¿Cómo debería ser el archivo setup.py?

Re: Creación de un paquete para modificar el registro de Windows

Publicado: 20 de febrero de 2020 - 17:47
por agauvrit
Para HKLM > contexto del sistema

Código: Seleccionar todo

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

uninstallkey = []

def install():
    registry_setstring(HKEY_LOCAL_MACHINE, r"SOFTWARE\Microsoft\Office\16.0\Outlook\Autodiscover",'ExcludeExplicitO365Endpoint',1, type=REG_DWORD)
    

Re: Creación de un paquete para modificar el registro de Windows

Publicado: 21 de febrero de 2020 - 09:17
por Minus
¡Genial!

Muchísimas gracias por toda esta información.