Przy konfiguracji polityk GPO można ustawiać uprawnienia dla użytkowników lub grup określających kto może odczytywać politykę (jej ustawienia), kto może edytować ustawienia oraz modyfikować zabezpieczenia. W przypadku gdybyśmy chcieli nadać określonym użytkownikom uprawnienia do podglądu ustawień zapisanych w polityce możemy to zrobić poprzez określenie praw dostępu. Uprawnienia najlepiej nadać dla grupy użytkowników. Przy takim rozwiązaniu dodajemy konkretnego użytkownika do grypy i otrzymuje on stosowne uprawnienia. W przypadku potrzeby odebrania uprawnień usuwamy takiego użytkownika z grupy i automatycznie traci te uprawnienia. Nie musimy się zastanawiać dla których obiektów miał uprawnienia i odbierać te uprawnienia dla każdego obiektu.
Załóżmy że chcemy dodać uprawnienia odczytu grupie „Admin_AD_RO” dla GPO o nazwie „MyGPO„. Aby to zrobić w konsoli Powershella-a wykonujemy polecenie:
Set-GPPermissions -Name "MyGPO" -PermissionLevel GpoRead -TargetName "Admin_AD_RO" -TargetType Group
W przypadku gdy chcemy nadać uprawnienia odczytu dla większej ilości GPO powyższe polecenie należy wydać kolejno dla każdego GPO. W przypadku większej ilości GPO czynność ta jest bardzo pracochłonna.
Abt wyświetlić wszystkie GPO jakie są w naszym AD możemy skorzystać z polecenia:
Get-GPO -all
W przypadku gdybyśmy chcieli nadać uprawnienia dla wszystkich grup wydajemy polecenie:
Get-GPO -all |Set-GPPermissions -PermissionLevel GpoRead -TargetName "Admin_AD_RO" -TargetType Group
W przypadku gdy chcielibyśmy nadać uprawnienia tylko dla określonych grup możemy skorzystać z filtrowania:
Get-GPO -all |where {$_.displayname -like "fitrowanie"}|Set-GPPermissions -PermissionLevel GpoRead -TargetName "Admin_AD_RO" -TargetType Group
Powyższe dwa polecenia zmieniają uprawnienia dla istniejących już GPO. Po utworzeniu nowego GPO grupa „Admin_AD_RO” nie będzie miała uprawnień odczytu dla tego GPO. Aby zmienić domyślne uprawnienia dla nowych GPO musimy zmodyfikować schemat AD. Wykonać możemy do posługując się edytorem ADSI.
W pierwszej kolejności musimy odczytać SID grupy dla której chcemy nadać uprawnienia. Aby tego dokonać wydajemy polecenie:
Get-ADGroup nazwa_grupy
Z pola wynikowego notujemy SID.
Następnie uruchamiamy edytor ADSI, klikamy prawym przyciskiem myszy na „Edytor ADSI” i z podręcznego menu wybieramy „Połącz z…”
W kolejnym oknie w opcji „Wybierz dobrze znany kontekst nazewnictwa” z listy rozwijanej wybieramy „Schemat” i zatwierdzamy wybór.
W kolejnym kroku w oknie po prawej stronie wyszukujemy opcję CN=Group-Policy-Cointainer klikamy na niej 2x i wyszukujemy pole „defaultSecurityDescriptor„.
Wchodzimy w edycję tego pola i na samym końcu dopisujemy ciąg znaków:
(A;CI;RPLCLORC;;;SID_zanotowany_wcześniej)
np.(A;CI;RPLCLORC;;;S-1-5-21-11223344556-1325468790-1234567890-13579)
Zatwierdzamy zmiany i od tej chwili każda nowo utworzona polityka GPO w zabezpieczeniach będzie miała dodaną nasza grupę z uprawnieniami tylko do odczytu.
Dla osób dociekliwych opis poszczególnych pól dostępny jest pod adresem
Wyjaśnienie poszczególnych pól:
Składnia: ace_type;ace_flags;rights;object_guid;inherit_object_guid;account_sid;(resource_attribute)
A – ACCESS_ALLOWED_CALLBACK_ACE_TYPE
CI – CONTAINER_INHERIT_ACE
rights: permissions (RPWPCCDCLCLORCWOWDSDDTSW):
RP: Read property
WP: Write property
CC: Create child
DC: Delete child
LC: List children
LO: List object
RC: Read control
WO: Write owner
WD: Write DAC
SD: Standard delete
DT: Delete tree
SF: Self write
W powyższym przykładzie dodajemy tylko:
RP: Read property
LC: List children
LO: List object
RC: Read control