2010-12-07 4 views
7

Ich schreibe eine Anwendung in Delphi 2010, und ich möchte dem Administrator die Option zur Konfiguration über Gruppenrichtlinien bereitstellen. Irgendwelche Empfehlungen zu guten Möglichkeiten, um meine Anwendung GPO bewusst zu machen? Hinweis: Ich möchte nur ein computerbasiertes Gruppenrichtlinienobjekt erstellen, nicht einen Benutzer.Wie man eine Anwendung GPO bewusst machen?

Meine aktuelle Lösung beinhaltet einfach zuerst bestimmt, ob irgendwelche Werte in der Registrierung bei HKLM \ Software \ Policies \ MyProgram geschrieben. Wenn dies der Fall ist, nehme ich an, dass das GPO angewendet wurde und ich diesen Standort zum Lesen der Konfiguration verwende.

Wenn an der oben genannten Registrierungsstelle nichts vorhanden ist, fahre ich mit dem Lesen der Konfiguration am Standardspeicherort fort, egal ob es sich um eine INI-Datei handelt oder um einen anderen Registrierungsschlüssel. An dieser Stelle stelle ich im Programm fest, dass Gruppenrichtlinien nicht verwendet werden.

Würde jemand vorschlagen eine bessere Möglichkeit, diese Anwendung GPO bewusst machen?

+0

ich schaute nur leicht in Gruppenrichtlinienobjekte, aber ich verstehe, dass sie als definierbare Registrierungseinträge an Computer geliefert werden. Es klingt für mich, dass Sie eine Gruppenrichtlinienvorlage erstellen, die Ihre Registrierungseinträge definiert, und Sie sind fertig. Ist das nicht so? –

+0

Das ist im Wesentlichen richtig für die Bereitstellung von ihnen. Meine Frage bezieht sich jedoch auf die beste Methode für meine Anwendung, diese GPOs zu lesen. Die Antwort kann die einfachste sein, die den Standort des Gruppenrichtlinienobjekts überprüft, und falls nicht, den Standardstandort (z. B. Nicht-GPO) überprüfen. – Mick

+0

Mein Verständnis ist, dass die genaue Absicht von benutzerdefinierten Gruppenrichtlinienvorlagen ist: Sie haben eine benutzerfreundliche Benutzeroberfläche, die verwendet wird, um Registrierungsschlüssel zu verwalten, die ein Programm liest; und es kann diese Registrierungsschlüssel an die gesamte Domäne senden. Ich gebe das in Form einer Antwort an und schau, ob Cat es leckt. –

Antwort

5

Es ist nicht notwendig, dass Gruppenrichtlinien beachtet werden müssen, sondern dass die Gruppenrichtlinie die Registrierungsschlüssel kennen muss, die von Ihrem Programm verwendet werden.

Der Zweck von benutzerdefinierten Gruppenrichtlinienvorlagen besteht darin, über eine Benutzeroberfläche zum Verwalten eines benutzerdefinierten Satzes von Registrierungsschlüsseln zu verfügen, die von einem bestimmten Programm verwendet werden. Der Domänenadministrator legt die Richtlinie auf die gewünschten Werte fest, und die Richtlinie wird an Computer in der Domäne gesendet.

In Ihrem Fall definiert die benutzerdefinierte Richtlinienvorlage die entsprechenden HKLM-Registrierungsschlüssel, die Ihr Programm verwendet. Sie können nun darauf vertrauen, dass die in:

HKLM\Software\MickSoftware\My Program 2010 

gespeicherten Werte die Anforderungen des Administrators sind.


Hinweis: Die folgenden "Politik" Registrierungsstellen sind nicht-persistent:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies 
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies 
HKEY_CURRENT_USER\SOFTWARE\Policies 
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies 

"This means that when you log off the computer or when you shut down the computer, the policy settings are removed."

So scheint es mir, Sie Ihre Registry-Werte speichern möchten, wo Sie normalerweise speichern Sie sie, zB:

HKLM\Software\Avatar Software Creations\HelpDesk\DatabaseServer 
    ServerName: REG_SZ = "lithium" 
    UserID: REG_SZ = "helpdesk" 
    Password: REG_SZ = "aSBsb3ZlIHlvdSBLaXJzdGVuIFNoZWxieSBHdXllcg==" 
+0

Möchten Sie den Kennwort-Hash des Helpdesks wirklich verlieren? :) –

+1

Es werden nur Einstellungen unter den Richtlinienschlüsseln verwaltet, ABER dies bedeutet auch, dass die Registrierungseinstellungen nicht entfernt werden, wenn Sie Richtlinien unter nicht verwalteten Schlüsseln erstellen und später entfernen oder einen Wert auf undefined festlegen. Sie werden für immer in diesem spezifischen GPO bleiben. – Remko

+0

@ user205376 Das ist kein Hash;) Es ist eigentlich ein Base64-kodierten Wert, den ich nur für diese Frage generiert habe (ich dachte, dass nur wenige denken würden, es zu dekodieren). In Wirklichkeit würde das Passwort verschlüsselt und dann base64-kodiert werden, um leicht in der Registrierung gespeichert zu werden. –