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

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
Menos
Mensajes: 13
Inscripción: 2 de agosto de 2019 - 9:05 a. m.

20 de febrero de 2020 - 10:59

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)
Avatar de usuario
agauvrit
Experto en WAPT
Mensajes: 238
Inscripción: 17 de noviembre de 2016 - 10:25
Ubicación: Nantes
Contacto :

20 de febrero de 2020 - 13:46

Hola,

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

Alexandre
Menos
Mensajes: 13
Inscripción: 2 de agosto de 2019 - 9:05 a. m.

20 de febrero de 2020 - 14:02

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)
Avatar de usuario
agauvrit
Experto en WAPT
Mensajes: 238
Inscripción: 17 de noviembre de 2016 - 10:25
Ubicación: Nantes
Contacto :

20 de febrero de 2020 - 14:11

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
Menos
Mensajes: 13
Inscripción: 2 de agosto de 2019 - 9:05 a. m.

20 de febrero de 2020 - 14:17

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?
Avatar de usuario
agauvrit
Experto en WAPT
Mensajes: 238
Inscripción: 17 de noviembre de 2016 - 10:25
Ubicación: Nantes
Contacto :

20 de febrero de 2020 - 17:47

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)
    
Menos
Mensajes: 13
Inscripción: 2 de agosto de 2019 - 9:05 a. m.

21 de febrero de 2020 - 09:17

¡Genial!

Muchísimas gracias por toda esta información.
Bloqueado