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

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
web-codex
User
Beiträge: 9
Registriert: Sonntag 17. Juli 2022, 17:25

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:
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
web-codex
User
Beiträge: 9
Registriert: Sonntag 17. Juli 2022, 17:25

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.
Sirius3
User
Beiträge: 18279
Registriert: Sonntag 21. Oktober 2012, 17:20

Kannst du den Wert denn per regedit ändern?
web-codex
User
Beiträge: 9
Registriert: Sonntag 17. Juli 2022, 17:25

Manuell kann ich den Wert ändern von Deny zu Allow und umgekehrt natürlich.
Antworten