Seite 1 von 1

[GELÖST] registry_set funktioniert nicht?

Veröffentlicht: 5. Juni 2019 - 11:39 Uhr
von renaud.counhaye
Hallo zusammen,

Aktuell auf den Servern
WAPT-Serverversion: 1.7.4
WAPT-Agent-Version: 1.7.4.6077
WAPT-Setup-Version: 1.7.4.6077
WAPT Deploy Version: 1.7.4.6077
Datenbankstatus: OK (1.7.4.0)

Ich habe ein neues Skript, um automatische Neustarts von Windows 10 durch Windows Update zu blockieren

Code: Alle auswählen

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)
Ich habe versucht, den Pfad mithilfe von Backslashes (\\) zu ändern und das 'r' am Anfang zu entfernen (dessen Sinn ich übrigens nicht verstehe), aber ich erhalte immer noch diesen Fehler, wenn ich versuche, es lokal über Pyscripter auszuführen:
*** Remote-Interpreter neu initialisiert ***
ist Windows 10
Traceback (letzter Aufruf):
Datei "C:\waptdev\ymg-WU10-autorebootblock-wapt\setup.py", Zeile 23, in
install()
Datei "C:\waptdev\ymg-WU10-autorebootblock-wapt\setup.py", Zeile 17, in install
registry_set('HKEY_LOCAL_MACHINE',r'SOFTWARE/Policies/Microsoft/Windows/WindowsUpdate/AU','NoAutoRebootWithLoggedOnUsers',1,type=REG_DWORD)
Datei "C:\Program Files (x86)\wapt\setuphelpers.py", Zeile 1654, in registry_set
with reg_openkey_noredir(root,path,sam=KEY_WRITE,create_if_missing=True) as key: Datei
"C:\Program Files (x86)\wapt\setuphelpers.py", Zeile 1431, in reg_openkey_noredir
result = _winreg.OpenKey(rootkey,subkeypath,0, sam | _winreg.KEY_WOW64_64KEY)
TypeError: Das Objekt ist kein PyHKEY-Objekt


Und ich erhalte einen ähnlichen Fehler, wenn ich anschließend versuche, es über die Konsole bereitzustellen:
Windows 10-Traceback (letzter Aufruf):
Datei "C:\Program Files (x86)\wapt\common.py", Zeile 3818, in install_wapt
exitstatus = setup.install()
Datei "c:\users\rcu\appdata\local\temp\waptx2yigf\setup.py", Zeile 17, in install
Datei "C:\Program Files (x86)\wapt\setuphelpers.py", Zeile 1654, in registry_set
with reg_openkey_noredir(root,path,sam=KEY_WRITE,create_if_missing=True) as key:
Datei "C:\Program Files (x86)\wapt\setuphelpers.py", Zeile 1431, in reg_openkey_noredir
result = _winreg.OpenKey(rootkey,subkeypath,0, sat | _winreg.KEY_WOW64_64KEY)
TypeError: Das Objekt ist.
TypeError: Das Objekt ist kein PyHKEY-Objekt
Könnte es sich um einen Berechtigungsfehler handeln?

Vielen Dank, beste Grüße,
Renaud.

Betreff: registry_set funktioniert nicht? [GELÖST]

Veröffentlicht: 5. Juni 2019 - 14:47 Uhr
von renaud.counhaye
Ich konnte mein Problem mit dieser Zeile beheben:
registry_set(HKEY_LOCAL_MACHINE,makepath('SOFTWARE','Policies','Microsoft','Windows','WindowsUpdate','AU'),'NoAutoRebootWithLoggedOnUsers',1,type=REG_DWORD)

Betreff: registry_set funktioniert nicht? [GELÖST]

Veröffentlicht: 5. Juni 2019 - 15:09 Uhr
von Patrice_minagri
Guten Morgen,

Ich hätte registry_set wie folgt geschrieben:

Code: Alle auswählen

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

Code: Alle auswählen

registry_set('HKEY_LOCAL_MACHINE',r'SOFTWARE/Policies/Microsoft/Windows/WindowsUpdate/AU','NoAutoRebootWithLoggedOnUsers',1,type=REG_DWORD)
Obwohl der Wert 1 in der Anweisung für Daten vom Typ REG_DWORD die Form 0x01 haben muss (ich erinnere mich nicht genau).

Dies funktioniert mit \\

Aufrichtig.

Patrice

Betreff: registry_set funktioniert nicht? [GELÖST]

Veröffentlicht: 5. Juni 2019 - 16:36 Uhr
von renaud.counhaye
Hallo Patrice, :)

wie ich schon sagte, habe ich den Pfad mit Backslashes versucht, aber es hat leider nicht funktioniert. :/
Vielleicht hatte ich einfach Pech?

Viele Grüße