Anfängerhilfe in Bezug auf Modul winreg

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
cryonic
User
Beiträge: 3
Registriert: Freitag 8. April 2011, 15:24

Hallo,

da ich noch Anfänger bin, Kleinigkeiten habe ich schon mit Python gemacht, stehe ich nun vor einem Problem und zwar möchte ich als praktische und gleichzeitig sinnvolle Übung auf der Arbeit, meine .reg Dateien Sammlung zukünftig via Python ausführen.
nach mehrfachen probieren und lesen des moduls auf python.org, muß ich jetzt kapitulieren, da keine Beispiele aufgeführt sind und ich die Funktionen einfach nicht anhand von fehlenden veranschaulichten Beispielen verstehe, würde ich mich freuen wenn man es mir erklären könnte bzw. den code mal aufschreibt, damit ich mir den rest erarbeiten kann.

z.b. folgende zwei Registry Einträge als Beispiel.

Code: Alles auswählen

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Microsoft Forefront\Client Security\1.0\AM\Signature Updates]
"CheckAlternateDownloadLocation"=dword:0

Code: Alles auswählen

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Microsoft Forefront\Client Security\1.0\SSA\ScanAction]

"Parameter"="<ScanJob Version='1.0' Culture='1031'> <Manifest ConfigFile='VulnerabilityDefinitions.manifest' ConfigVersion='1.0.0.0'/> </ScanJob>"
in dieser schreibweise, kann ich das als .reg datei ausführen und die keys in der Registry anlegen.

wie gelingt mir das per python ?

habe python 3.2

schon mal vielen dank

Edit: Suchfunktion habe ich schon benutzt, nur hat mir das leider nicht geholfen

Edit2:

Code: Alles auswählen

_winreg.SetValueEx(key, value_name, reserved, type, value)¶

    Stores data in the value field of an open registry key.

    key is an already open key, or one of the predefined HKEY_* constants.

    value_name is a string that names the subkey with which the value is associated.

    type is an integer that specifies the type of the data. See Value Types for the available types.

    reserved can be anything – zero is always passed to the API.

    value is a string that specifies the new value.

    This method can also set additional value and type information for the specified key. The key identified by the key parameter must have been opened with KEY_SET_VALUE access.

    To open the key, use the CreateKey() or OpenKey() methods.
bin mit dieser Erklärung leider total überfordert und finde keinen weg dieses ""Parameter"="<ScanJob Version='1.0' Culture='1031'> <Manifest ConfigFile='VulnerabilityDefinitions.manifest' ConfigVersion='1.0.0.0'/> </ScanJob>" in die korrekte Syntax zu setzen

hoffe ich habe mein Problem gut beschrieben

Edit3:

Code: Alles auswählen

import winreg
winreg.CreateKey(
          winreg.HKEY_LOCAL_MACHINE,
         "SOFTWARE\\Policies\\Microsoft\\Microsoft Forefront\\Client Security\\1.0\\AM\\Signature Updates")
winreg.SetValueEx(????, "CheckAlternateDownloadLocation", ????, winreg.REG_DWORD=0, ???? 
nochmal zur Veranschaulichung, wo mein Problem ist mit der Verständlichkeit
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Ich vermute mal, dass das erste sowas wie `winreg.HKEY_BLAH` sein muss, das dritte kann irgendwas sein (wird ignoriert. Frag' nicht, was das für nen Sinn ergibt), und das letzte sollte der neue Wert sein, den du setzen möchtest.
cryonic
User
Beiträge: 3
Registriert: Freitag 8. April 2011, 15:24

hmm, scheinen sich leider nicht so viele mit aus zu kennen, bei diesem modul :(
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Hast du denn versucht, meine Tipps umzusetzen?
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

cryonic hat geschrieben:hmm, scheinen sich leider nicht so viele mit aus zu kennen, bei diesem modul :(
Eins ist mir nicht ganz klar geworden. Du schreibst, dass du die .reg-Dateien ausführen möchtest und dann bringst du das winreg-Modul ins Spiel.

Irgendwie passt das nicht zusammen. Was möchtest du denn jetzt wirklich? Soll die reg-Datei (mit regedit) so ausgeführt werden, dass die Werte in die Registry eingetragen werden oder möchtest du auf die reg-Dateien verzichten und alles manuell mit dem winreg-Modul machen?
cryonic
User
Beiträge: 3
Registriert: Freitag 8. April 2011, 15:24

möchtest du auf die reg-Dateien verzichten und alles manuell mit dem winreg-Modul machen
exakt, so möchte ich das machen
Xynon1
User
Beiträge: 1267
Registriert: Mittwoch 15. September 2010, 14:22

Wie man mit winreg Keys erstellt, hatte ich hier schonmal geschrieben: http://www.python-forum.de/viewtopic.ph ... it=+winreg

Aber mir ist immernoch nicht ganz klar warum du auf regedit verzichten willst!? Denn Python muss nachträglich installiert werden, regedit ist ja Standard unter Win. Warum also der wechsel wenn du schon fertige .reg-Dateien hast.
Traue keinem Computer, den du nicht aus dem Fenster werfen kannst.
Xynon auf GitHub
Benutzeravatar
/me
User
Beiträge: 3561
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Beim Versuch, mich an die Zeiten zu erinnern, in denen ich noch direkt auf der Windows-API herumgeturnt bin, kommen so ganz dunkel gedankliche Reste von Codefragmenten zum Vorschein.

Versuch mal als ersten Parameter von SetValueEx() den bisher von dir ignorierten Rückgabewert von CreateKey() zu verwenden.
Antworten