registry_set ne fonctionne pas? [RESOLU]

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
* English support on www.reddit.com/r/wapt
* Le support en français se fait sur ce forum
* Merci de préfixer le titre du thread par [RESOLU] si il est résolu.
renaud.counhaye
Messages : 30
Inscription : 13 déc. 2017 - 11:45

05 juin 2019 - 11:39

Bonjour à tous,

Actuellement sur serveurs
Version WAPT Server : 1.7.4
Version WAPT Agent : 1.7.4.6077
version WAPT Setup : 1.7.4.6077
Version WAPT Deploy : 1.7.4.6077
Statut de la base: OK (1.7.4.0)

J'ai ce nouveau script pour bloqué les redémarrage automatique de Windows 10 avec Windows Update

Code : Tout sélectionner

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)
J'ai beau changer le chemin avec des \\ et sans le r devant (qui soit dit en passant je ne comprend pas son utilité) j'ai toujours cet erreur en tentant de l'exécuter localement via Pyscripter :
*** Remote Interpreter Reinitialized ***
is windows 10
Traceback (most recent call last):
File "C:\waptdev\ymg-WU10-autorebootblock-wapt\setup.py", line 23, in <module>
install()
File "C:\waptdev\ymg-WU10-autorebootblock-wapt\setup.py", line 17, in install
registry_set('HKEY_LOCAL_MACHINE',r'SOFTWARE/Policies/Microsoft/Windows/WindowsUpdate/AU','NoAutoRebootWithLoggedOnUsers',1,type=REG_DWORD)
File "C:\Program Files (x86)\wapt\setuphelpers.py", line 1654, in registry_set
with reg_openkey_noredir(root,path,sam=KEY_WRITE,create_if_missing=True) as key:
File "C:\Program Files (x86)\wapt\setuphelpers.py", line 1431, in reg_openkey_noredir
result = _winreg.OpenKey(rootkey,subkeypath,0, sam | _winreg.KEY_WOW64_64KEY)
TypeError: The object is not a PyHKEY object


Et j'ai une erreur similaire si je tente de le déployer via la console ensuite :
is windows 10Traceback (most recent call last):
File "C:\Program Files (x86)\wapt\common.py", line 3818, in install_wapt
exitstatus = setup.install()
File "c:\users\rcu\appdata\local\temp\waptx2yigf\setup.py", line 17, in install
File "C:\Program Files (x86)\wapt\setuphelpers.py", line 1654, in registry_set
with reg_openkey_noredir(root,path,sam=KEY_WRITE,create_if_missing=True) as key:
File "C:\Program Files (x86)\wapt\setuphelpers.py", line 1431, in reg_openkey_noredir
result = _winreg.OpenKey(rootkey,subkeypath,0, sam | _winreg.KEY_WOW64_64KEY)
TypeError: The object is not a PyHKEY object
TypeError: The object is not a PyHKEY object
Serais-ce une erreur de permissions?

Merci, cordialement,
Renaud.
Dernière modification par renaud.counhaye le 05 juin 2019 - 14:48, modifié 1 fois.
Renaud Counhaye
Technicien système réseaux
Central Functions Division
Ymagis Group
Image
renaud.counhaye
Messages : 30
Inscription : 13 déc. 2017 - 11:45

05 juin 2019 - 14:47

J'ai pu corriger mon probleme avec cette ligne :
registry_set(HKEY_LOCAL_MACHINE,makepath('SOFTWARE','Policies','Microsoft','Windows','WindowsUpdate','AU'),'NoAutoRebootWithLoggedOnUsers',1,type=REG_DWORD)
Renaud Counhaye
Technicien système réseaux
Central Functions Division
Ymagis Group
Image
Patrice_minagri
Messages : 28
Inscription : 21 oct. 2016 - 16:56

05 juin 2019 - 15:09

Bonjour,

J'aurai plutôt écrit le registry_set comme suit :

Code : Tout sélectionner

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

Code : Tout sélectionner

registry_set('HKEY_LOCAL_MACHINE',r'SOFTWARE/Policies/Microsoft/Windows/WindowsUpdate/AU','NoAutoRebootWithLoggedOnUsers',1,type=REG_DWORD)
Encore que le valeur 1 doit prendre la forme de 0x01dans l'instruction pour des données de type REG_DWORD (je ne sais plus de tête).

Cela fonctionne avec des \\

Cordialement.

Patrice
renaud.counhaye
Messages : 30
Inscription : 13 déc. 2017 - 11:45

05 juin 2019 - 16:36

Bonjour Patrice :)

Comme dis plus tôt j'avais bien essayer le chemin avec des \\ mais ça n'avais pas fonctionner pour moi :/
Coup de bol peut être?

Cheers
Renaud Counhaye
Technicien système réseaux
Central Functions Division
Ymagis Group
Image
Répondre