[RESUELTO] ¿register_set no funciona?

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
renaud.counhaye
Mensajes: 31
Inscripción: 13 de diciembre de 2017 - 11:45

5 de junio de 2019 - 11:39

Hola a todos,

Actualmente en servidores
Versión del servidor WAPT: 1.7.4
Versión del agente WAPT: 1.7.4.6077
Versión de configuración de WAPT: 1.7.4.6077
Versión de implementación de WAPT: 1.7.4.6077
Estado de la base de datos: OK (1.7.4.0)

Tengo este nuevo script para bloquear los reinicios automáticos de Windows 10 con Windows Update

Código: Seleccionar todo

from setuphelpers import *
#list de paquets à oublier tout simplement.

uninstallkey = []

#def main():
def install():
    if(windows_version() >= Version('10.0')):
        print('is windows 10')
        #reg
        registry_set('HKEY_LOCAL_MACHINE',r'SOFTWARE/Policies/Microsoft/Windows/WindowsUpdate/AU','NoAutoRebootWithLoggedOnUsers',1,type=REG_DWORD)
        # registry_set(HKEY_LOCAL_MACHINE, r'SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System','MaxGPOScriptWait',180,type=REG_DWORD)
        print('key set. reboot required to be taken in count.')
    else:
        print('not w10')

if __name__ == '__main__': #run debug
    install()

def uninstall():
    if(reg_key_exists('HKEY_LOCAL_MACHINE',r'SOFTWARE/Policies/Microsoft/Windows/WindowsUpdate/AU','NoAutoRebootWithLoggedOnUsers')):
        registry_set('HKEY_LOCAL_MACHINE',r'SOFTWARE/Policies/Microsoft/Windows/WindowsUpdate/AU','NoAutoRebootWithLoggedOnUsers',0,type=REG_DWORD)
Intenté cambiar la ruta usando barras invertidas (\\) y eliminando la 'r' del frente (lo cual, por cierto, no entiendo el propósito), pero todavía recibo este error cuando intento ejecutarlo localmente a través de Pyscripter:
*** Intérprete remoto reinicializado ***
es windows 10
Traceback (última llamada más reciente):
Archivo "C:\waptdev\ymg-WU10-autorebootblock-wapt\setup.py", línea 23, en
install()
Archivo "C:\waptdev\ymg-WU10-autorebootblock-wapt\setup.py", línea 17, en install
registry_set('HKEY_LOCAL_MACHINE',r'SOFTWARE/Policies/Microsoft/Windows/WindowsUpdate/AU','NoAutoRebootWithLoggedOnUsers',1,type=REG_DWORD)
Archivo "C:\Program Files (x86)\wapt\setuphelpers.py", línea 1654, en registry_set
con reg_openkey_noredir(root,path,sam=KEY_WRITE,create_if_missing=True) como clave:
Archivo "C:\Program Files (x86)\wapt\setuphelpers.py", línea 1431, en reg_openkey_noredir
result = _winreg.OpenKey(rootkey,subkeypath,0, sam | _winreg.KEY_WOW64_64KEY)
TypeError: El objeto no es un objeto PyHKEY


Y obtengo un error similar si intento implementarlo a través de la consola después:
es windows 10Traceback (última llamada más reciente):
Archivo "C:\Program Files (x86)\wapt\common.py", línea 3818, en install_wapt
exitstatus = setup.install()
Archivo "c:\users\rcu\appdata\local\temp\waptx2yigf\setup.py", línea 17, en install
Archivo "C:\Program Files (x86)\wapt\setuphelpers.py", línea 1654, en registry_set
con reg_openkey_noredir(root,path,sam=KEY_WRITE,create_if_missing=True) como clave:
Archivo "C:\Program Files (x86)\wapt\setuphelpers.py", línea 1431, en reg_openkey_noredir
result = _winreg.OpenKey(rootkey,subkeypath,0, sat | _winreg.KEY_WOW64_64KEY)
TypeError: El objeto no es un objeto PyHKEY
TypeError: El objeto no es un objeto PyHKEY
¿Podría ser un error de permisos?

Gracias, un cordial saludo,
Renaud.
Última edición realizada por renaud.counhaye el 5 de junio de 2019 a las 14:48, editado 1 vez.
Renaud Counhaye,
Técnico de Sistemas de Red,
División de Funciones Centrales
, Grupo Ymagis
Imagen
renaud.counhaye
Mensajes: 31
Inscripción: 13 de diciembre de 2017 - 11:45

5 de junio de 2019 - 14:47

Pude solucionar mi problema con esta línea:
registry_set(HKEY_LOCAL_MACHINE,makepath('SOFTWARE','Policies','Microsoft','Windows','WindowsUpdate','AU'),'NoAutoRebootWithLoggedOnUsers',1,type=REG_DWORD)
Renaud Counhaye,
Técnico de Sistemas de Red,
División de Funciones Centrales
, Grupo Ymagis
Imagen
Patrice Minagri
Mensajes: 57
Inscripciones: 21 Oct 2016 - 16:56 horas.

5 de junio de 2019 - 15:09

Buen día,

Yo habría escrito el registry_set de la siguiente manera:

Código: Seleccionar todo

registry_set(HEY_LOCAL_MACHINE, "Software\\Policies\\Microsoft\\Windows\\WindowsUpdate\\AU, 'NoAutorebootWithLoggedOnUsers', 1, type=REG_DWORD)
en lugar de :

Código: Seleccionar todo

registry_set('HKEY_LOCAL_MACHINE',r'SOFTWARE/Policies/Microsoft/Windows/WindowsUpdate/AU','NoAutoRebootWithLoggedOnUsers',1,type=REG_DWORD)
Aunque el valor 1 debe tomar la forma de 0x01 en la instrucción para datos de tipo REG_DWORD (no lo recuerdo ahora).

Esto funciona con \\

Atentamente.

Patrice
WAPT 1.7.4
renaud.counhaye
Mensajes: 31
Inscripción: 13 de diciembre de 2017 - 11:45

5 de junio de 2019 - 16:36

Hola Patrice, :)

como te comenté antes, intenté usar la ruta con barras invertidas, pero no me funcionó. :/ ¿
Quizás fue solo suerte?

Saludos.
Renaud Counhaye,
Técnico de Sistemas de Red,
División de Funciones Centrales
, Grupo Ymagis
Imagen
Bloqueado