Announcement

Collapse
No announcement yet.

Durch Registry iterieren und die Rechte setzten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Durch Registry iterieren und die Rechte setzten

    Hallo zusammen,

    ich habe das Problem, dass auf verschiedenen (W2000) Rechnern einige Schlüssel in der Registry jegliche Zugriffsrechte verloren haben - keine Ahnung, wie das passiert.
    Dort steht (in Regedt32 -> Sicherheit -> -Berechtigungen) tatsächlich nichts mehr im Rechtedialog. Die Schlüssel erscheinen grau in der Baumanzeige von RegEdt32 und jeglicher Zugriffsversuch erzeugt eine Fehlermeldung.

    Die Wiederherstellung ist äußerst mühsam. Zuerst erfolgt die Übernahme des Besitzes des Schlüssels als lokaler Admin. Dann kann man wieder einen Benutzer eintragen und ihm Rechte zuweisen. Leider funktioniert nicht einmal die automatische Übertragung auf alle untergeordneten Schlüssel, so das man jeden Schlüssel einzeln anfassen muss.

    Ich suche eine Lösung, wie man das in Delphi (D5) automatisch erledigen kann - leider habe ich nicht einmal einen Plan wie man "von oben" durch die Registry iterieren könnte, um die defekten Schlüssel erstmal zu finden. Die einzige Methode, die ich in TRegistry gefunden habe ist "HasSubKeys", die mir da helfen könnte - ein "GetNextNode" oder ähnliches scheint es nicht zu geben.
    Hat jemand eine Idee für mich, wie das gehen könnte und vor allem, wie man das setzen der Berechtigungen für die Schlüssel realisieren kann.
    In einem anderen Forum habe ich die Aussage gefunden Regedt32 würde anstelle der "Win-API" (wie Regedit) eine "NATIVE-API" verwenden und dort wäre die Rechtevergabe möglich, kennt das jemand?

    Danke für jede Hilfe.

    Knut

  • #2
    Wenn die letzte Aussage stimmt, was ich eigentlich auch so in Erinnerung habe, hast Du kein Glück mit Delphi. Jedenfalls nicht mit vertretbarem Aufwand. NativeApi steht nur für das direkte Schreiben der Registry ohne WinAPI. Folglich sind vermutlich genau die Rechte-Befehle nicht in der WinAPI vorhanden. <p>
    Kann es sein, dass vor kurzem Benutzer / Admins gelöscht und wieder neu angelegt worden sind, denen diese Schlüssel gehörten? Evtl. könnte ja ein Rückgang auf den letzten Wiederherstellungspunkt schneller helfen.<p>
    Mari
    Schöne Grüße, Mario

    Comment


    • #3
      Das Native-API ist inzwischen teilweise fuer Delphi erschlossen. Schau mal bei http://jedi-apilib.sf.net vorbei oder noch besser bei Assarbad http://assarbad.info

      Comment


      • #4
        Danke erstmal für Eure Antworten.

        <Kann es sein, dass vor kurzem Benutzer / Admins gelöscht und wieder neu angelegt worden sind, denen diese Schlüssel gehörten?>
        Definitiv nicht.

        Es ist gerade wieder passiert -> bei der Installation des "Adobe Acrobat" hat er normal losgelegt und im letzten Drittel der Installation kam die Meldung, dass das Programm nicht in den Reg. Schlüssel (Beispiel: HKEY_CLASSES_ROOT\CLSID\
        {85980D20-9851-11D1-A0F4-00C04FB67CF6}) schreiben kann. Dann fuhr die Installationsroutine alles wieder zurück und eine Kontrolle mit RegEdt32 ergab, dass dieser Schlüssel (und sein Undterschlüssel) ohne jedes Zugriffsrecht war!

        <Evtl. könnte ja ein Rückgang auf den letzten Wiederherstellungspunkt schneller helfen>
        Leider Win 2000.

        Die "Native_API.zip" habe ich mir von den Jedis geholt. Um ehrlich zu sein bin ich mit den enthaltenen *.pas einigermaßen erschlagen, ohne eine Anleitung zu den Funktionen oder ein Beispiel werde ich da keine Erfolge feiern.

        Zum Problem des Iterierens durch die Registry hat wohl keiner eine Idee (dann könnte ich die defekten Schlüssel wenigstens über die Zugriffsfehler aufspüren)?

        Grüße
        Knu

        Comment


        • #5
          Hi Knut,
          .
          könnte es sein, dass Deine Registry im Eimer ist?
          .
          Wenn ich das mit den GUID richtig verstanden habe, ist diese doch weltweit eindeutig?
          Bei mir ist Deine angegebene GUID aber nicht Adobe Acrobat sondern "Microsoft Picture It! Bild"!?!?!
          .
          Falls das nur ein Beispiel war, tritt diese Sauce auch auf anderen Rechnern auf oder nur auf Deinem bzw. diesem einen?
          .
          mf

          Comment

          Working...
          X