Zugriff auf Gruppenrichtlinien mittels C plusplus
Hallo!
Ich will über C++ auf Gruppenrichtlinien zugreifen und eigene lokale Richtlinien erstellen ohne
den eigentlichen Gruppenrichtlinieneditor zu nutzen. Frage: Geht das überhaupt, und wenn ja,
wie krieg ich das hin?
Bin für alle Hinweise dankbar
Gruß Squeegee
Ich will über C++ auf Gruppenrichtlinien zugreifen und eigene lokale Richtlinien erstellen ohne
den eigentlichen Gruppenrichtlinieneditor zu nutzen. Frage: Geht das überhaupt, und wenn ja,
wie krieg ich das hin?
Bin für alle Hinweise dankbar
Gruß Squeegee
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 13901
Url: https://administrator.de/contentid/13901
Ausgedruckt am: 22.11.2024 um 21:11 Uhr
4 Kommentare
Neuester Kommentar
Hallo,
Gruppenrichtlinien verändern, erstellen, löschen eigentlich nur Registry-Werte. Du musst aus einem selbstgeschriebenen Programm heraus also nicht den Umweg über Gruppenrichtlinien gehen sondern kannst gleich die Registry ändern.
TIM
Gruppenrichtlinien verändern, erstellen, löschen eigentlich nur Registry-Werte. Du musst aus einem selbstgeschriebenen Programm heraus also nicht den Umweg über Gruppenrichtlinien gehen sondern kannst gleich die Registry ändern.
TIM
Hallo,
Ein Beispiel (Ausschnitt aus einer ADM-Vorlage):
Aktivierst Du die Richtlinie in gpedit.msc (VALUEON), dann wird im Beispiel im angegebenen Schlüssel ein DWORD-Wert 0 gesetzt, deaktivierst Du sie (VALUEOFF), dann wird es auf 1 gesetzt. "Nicht Anwenden" kann zweierlei machen: Es gibt so genannte permanente und nicht-permanente Richtlinien; bei ersteren bewirkt "Nicht Anwenden" nur, dass die Richtlinie deaktiviert wird, der angelegte Registry-Wert wird nicht gelöscht. Bei nicht-permanenten Richtlinien wird der komplette durch die Richtlinie angelegte Wert aus der Registry entfernt.
Darüber hinaus ist mir noch nie aufgefallen, dass es zeitliche Verzögerungen gibt, wie Du es beschreibst.
Ich programmier nicht so viel in c++, aber egal in welcher Sprache: Für das setzen von reg-Werten würde ich immer die von der Sprache zur Verfügung gestellte API verwenden. Denn über die Gruppenrichtlinien ist es immer ein Umweg; zumal Du Gruppenrichtlinien nur über ADM-Vorlagen selbst erstellen kannst (siehe http://www.gruppenrichtlinien.de/), was limitierte ist (nur REG_SZ und DWORD-Werte) und was die Richtlinie auch noch nicht automatisch aktiviert - da müsstest Du letzlich doch die dazugehörigen Reg-Werte einmalig anschalten.
Gruppenrichtlinien haben auf anderen Gebieten Vorteile, u.a. bieten sie ein gutes GUI für Leute, denen regedit o.ä. zu fremd und unpraktisch ist, sie lassen sich gut automatisch und für alle Nutzer gleichermaßen verteilen, etc. pp.
Aber für die Nutzung in einem Programm ist das eher nicht gedacht...
Gruß,
TIM
Was passiert dann in der Registry, wenn ich
bei der Gruppenrichtlinie einfach auf
Gruppenrichtlinie deaktivieren oder nicht
anwenden gehe? Schreibt er da jedesmal die
gesamte Reg um? Auf allen Rechnern, auf
denen die User der ensprechenden Gruppe
sind?
Nach meiner Erfahrung dauert das setzten von
Rechten in der Registry eher lange,
während der "Nicht Anwenden"
Button einer Gruppenrichtlinie ein Klick ist
und die Richtlinie sofort nicht mehr wirksam
ist.
bei der Gruppenrichtlinie einfach auf
Gruppenrichtlinie deaktivieren oder nicht
anwenden gehe? Schreibt er da jedesmal die
gesamte Reg um? Auf allen Rechnern, auf
denen die User der ensprechenden Gruppe
sind?
Nach meiner Erfahrung dauert das setzten von
Rechten in der Registry eher lange,
während der "Nicht Anwenden"
Button einer Gruppenrichtlinie ein Klick ist
und die Richtlinie sofort nicht mehr wirksam
ist.
Ein Beispiel (Ausschnitt aus einer ADM-Vorlage):
CLASS USER
CATEGORY "Explorer-Ansicht anpassen"
POLICY "Ansichtsoptionen"
KEYNAME "Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
PART "Ansichtsoptionen für jeden Ordner speichern" CHECKBOX
VALUENAME "ClassicViewState"
VALUEON NUMERIC 0
VALUEOFF NUMERIC 1
END PART
[...]
Aktivierst Du die Richtlinie in gpedit.msc (VALUEON), dann wird im Beispiel im angegebenen Schlüssel ein DWORD-Wert 0 gesetzt, deaktivierst Du sie (VALUEOFF), dann wird es auf 1 gesetzt. "Nicht Anwenden" kann zweierlei machen: Es gibt so genannte permanente und nicht-permanente Richtlinien; bei ersteren bewirkt "Nicht Anwenden" nur, dass die Richtlinie deaktiviert wird, der angelegte Registry-Wert wird nicht gelöscht. Bei nicht-permanenten Richtlinien wird der komplette durch die Richtlinie angelegte Wert aus der Registry entfernt.
Darüber hinaus ist mir noch nie aufgefallen, dass es zeitliche Verzögerungen gibt, wie Du es beschreibst.
Genau deswegen bin ich von der Registry auf
die Gruppenrichtlinien gekommen, denn im
Programme sollen nachher mit einem Klick die
gesamten Einstellungen (also
Einschränkungen) an und abgeschaltet
werden können
die Gruppenrichtlinien gekommen, denn im
Programme sollen nachher mit einem Klick die
gesamten Einstellungen (also
Einschränkungen) an und abgeschaltet
werden können
Ich programmier nicht so viel in c++, aber egal in welcher Sprache: Für das setzen von reg-Werten würde ich immer die von der Sprache zur Verfügung gestellte API verwenden. Denn über die Gruppenrichtlinien ist es immer ein Umweg; zumal Du Gruppenrichtlinien nur über ADM-Vorlagen selbst erstellen kannst (siehe http://www.gruppenrichtlinien.de/), was limitierte ist (nur REG_SZ und DWORD-Werte) und was die Richtlinie auch noch nicht automatisch aktiviert - da müsstest Du letzlich doch die dazugehörigen Reg-Werte einmalig anschalten.
Gruppenrichtlinien haben auf anderen Gebieten Vorteile, u.a. bieten sie ein gutes GUI für Leute, denen regedit o.ä. zu fremd und unpraktisch ist, sie lassen sich gut automatisch und für alle Nutzer gleichermaßen verteilen, etc. pp.
Aber für die Nutzung in einem Programm ist das eher nicht gedacht...
Gruß,
TIM