Seite 1 von 1

winreg.SetValueEx | PermissionError: [WinError 5] Zugriff verweigert

Verfasst: Sonntag 17. Juli 2022, 18:03
von web-codex
Hallo zusammen, :D

ich spiele mich gerade mit der winreg library.
Ich möchte in der Registry einen Wert ändern, erhalte aber einen Zugriffsfehler.

Auch wenn ich die UAC komplett runter setze, Windows-Defender und Windows-Firewall deaktiviere,
erhalte ich diesen Fehler. Ich habe ebenfalls den Script via CLI als Administrator ausgeführt und
erhalte das gleiche Problem.

Das Lesen funktioniert, jedoch eine Änderung des Wertes von einem Schlüssel nicht.

Code: Alles auswählen

Ausgabe als Tupel: 
('Value', 'Allow', 1)
Traceback (most recent call last):
  File "C:\Users\XYZ\PycharmProjects\regtest\main.py", line 15, in <module>
    winreg.SetValueEx(reg_openkey1, 'Value', 0, winreg.REG_SZ, 'Deny')
PermissionError: [WinError 5] Zugriff verweigert
Hier wäre das Script:

Code: Alles auswählen

import winreg

reg_openkey1 = winreg.OpenKey(
                            winreg.HKEY_LOCAL_MACHINE,
                            "SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\CapabilityAccessManager\\ConsentStore\\webcam\\"
                            )

reg_key1 = winreg.EnumValue(reg_openkey1, 0)
print(reg_key1)

value = 'Deny'
name = 'Value'
reg_type = winreg.QueryValueEx(reg_openkey1, name)
winreg.SetValueEx(reg_openkey1, 'Value', 0, winreg.REG_SZ, 'Deny')
winreg.CloseKey(reg_openkey1)
Hat jemand eine Idee, Lösungs- und Verbesserungsvorschläge?

Danke & viele Grüße! :wink:

Re: winreg.SetValueEx | PermissionError: [WinError 5] Zugriff verweigert

Verfasst: Sonntag 17. Juli 2022, 19:35
von __deets__
Warum schreibst du Nummern an deine Variablen ran? Und wenn an reg_key und reg_openkey, aber nicht an value oder Name?

Zu deinem Problem: als Administrator ausführen hilft hoffentlich.

Re: winreg.SetValueEx | PermissionError: [WinError 5] Zugriff verweigert

Verfasst: Sonntag 17. Juli 2022, 19:47
von web-codex
Hallo __deets__ ,

vielen Dank für deine Antwort.
Die Nummern sind nur dort, weil ich unter dem Script testweise eine weitere Ausführung
auf die Schnelle kopiert hatte (normal verwende ich auch keine Nummern).

Als Administrator ausführen funktioniert nicht, habe ich bereits versucht.

Re: winreg.SetValueEx | PermissionError: [WinError 5] Zugriff verweigert

Verfasst: Sonntag 17. Juli 2022, 21:02
von Sirius3
Kannst du den Wert denn per regedit ändern?

Re: winreg.SetValueEx | PermissionError: [WinError 5] Zugriff verweigert

Verfasst: Sonntag 17. Juli 2022, 22:16
von web-codex
Manuell kann ich den Wert ändern von Deny zu Allow und umgekehrt natürlich.