2017-05-24 42 views
8

Utworzono rozszerzenie zasad grupy implementujące ProcessGroupPolicyEx. Po otrzymaniu polityki grupowej otrzymuję powiadomienie.Zasady grupy przetwarzania z rozszerzeniem GP

Brakuje mi jednak sposobu, w jaki można odczytać zasady z poziomu obiektu zasad grupy. W example przystanków na pętli poprzez GPO:

for(pCurGPO = pChangedGPOList; pCurGPO; pCurGPO = pCurGPO->pNext) 
    { 
     if(*pbAbort) 
     { 
      // Abort. 
      break; 
     } 
     // ... 
    } 

To jest w porządku, ale jak mogę politykę (aktualne ustawienia) wewnątrz pCurGPO? Muszę uzyskać ustawienia, które zawiera ten obiekt GPO, lub klucz rejestru, w którym przechowuje. Wynika to z faktu, że utworzyłem wiele szablonów ADMX skierowanych na moje rozszerzenie, więc muszę je rozdzielić.

Do tej pory znalazłem próbki, ale zakładają, że rozszerzenie wie, jakie rejestry zostaną zmienione z góry. Jednak w moim przypadku nie chcę, aby rozszerzenie robiło to założenie, chcę, aby sprawdził zaktualizowany obiekt GPO i dokładnie określił, co się zmieniło.

Wszelkie wskazówki byłyby bardzo mile widziane.

+0

jeżeli zadać to jak analizować GPO struct https://msdn.microsoft.com/en-us/library/aa374173 (v = vs.85) .aspx dlaczego nie jest to pomocne? Aah, źle to przeczytałem. Dobrze to przeszedłeś. – amritanshu

+0

To mówi mi, jak uzyskać informacje na temat goo. Jednak nie mogę uzyskać informacji o tym, co zawiera obiekt GPO. Na przykład w moim rozszerzeniu chcę sprawdzić, czy GOP zmodyfikował konkretny podklucz. –

+1

Tak Rozumiem w moim obecnym ustawieniu, że nie mam możliwości, aby ci pomóc z tym bezpośrednio, ale Chrome ma trochę kodu, który analizuje i wylicza zasady grupy, które możesz sprawdzić? https://chromium.googlesource.com/experimental/chromium/src/+/27658f3df0e55b6fb89ec56c2751f46fbc86a5ab/chrome/browser/policy – amritanshu

Odpowiedz

1

Więc po squirreling poprzez kod chrom (za amritanshu komentarzu), znalazłem jeden sposób, który wydaje się działać, ale ja jeszcze nie rozumiejąc, co wyjątki nie mogą być (o ile występują):

  1. get lpFileSysPath pole pCurObj, które będzie ścieżką UNC.
  2. Dołącz "\ Registry.pol" do ścieżki.
  3. Przeczytaj i przeanalizuj wynikowy plik, który będzie plikiem PREG.

Plik ciąża jest udokumentowane tutaj: https://msdn.microsoft.com/en-us/library/aa374407(v=vs.85).aspx

Jeśli ktoś widzi nic złego z tym podejściem, czy wie o żadnych wyjątków dla tego algorytmu, proszę dać mi znać.

EDIT: Także ten blog z lepszym napisany, choć podobnym wyjaśnieniem: https://redsigil.weebly.com/home/group-policy-callbacks-the-missing-documentation