AD GPO 정책은 Computer Configuration과 User Configuration 2가지가 있다.

보통 User Configuration을 설정하고 해당 GPO를 Computer가 모여있는 OU에 Link Enable 해도 사용자가 사용할 때 User Configuration 정책이 정상 작용되는데, 그 이유는 GPO의 Security Filtering과 Delegation에 Authenticated Users가 들어 있기 때문에, 운영자는 별로 신경 쓰지 않아도 되는 것이다.

그렇다면 어떤 GPO를 사용자별로 편하게 넣었다 뺐다 하는 방법이 있을까?

1. 특정 OU에 GPO를 Link 하고, OU에 User를 넣었다 뺐다 하면 gpupdate시 바로 정책 적용된다.
하지만 매번 번거롭다. 그렇다면?
2. 특정 GPO를 적용받을 대상이 User/Computer가 아닌 Group으로 설정하고, 그 Group에 User를 Member로서 넣었다 뺐다 하면?

그래서 2의 아이디어에 착안해서
1) (dsa.msc)특정 OU에 Group을 추가하고 Group 안에는 User를 Member로 넣음
2)(gpedit.msc) 그 OU에 GPO를 Link Enable 정책 적용!
결과 : 아무 변화도 일어나지 않았다.


이유
OU안에 있는 사용자/컴퓨터만 정책을 직접 받는 것으로 이해했다.
그래서 문의결과
Security Filtering을 사용하는 방법을 알게 되었다.
GPO의 Scope 탭을 보면, Links와 Security Filtering 두 가지 메뉴가 있는데,
1. Security Filtering에 Authenticated Users를 제거한 후 내가 적용하고자 하는 Group만 넣어준다. (Authenticated Users지울때 경고 메시지가 뜨는데 확인 눌러주면 된다.)
2. Delegation 탭으로 가면 Authenticated Users가 없어지고, 내가 추가한 Group이 Read (from Security Filtering)으로 권한이 들어가 있는 것을 볼 수 있다. 여기서 Add를 누르고 Domain Computers를 추가한다. 이 때 Permissions를 Read로 줄 것인지, edit setting 할 것인지 선택해야하는데, 그냥 Read를 선택한다.
간단히 적용!

!! 물론 Security Filtering을 설정하지 않은 채(Authenticated Users만 있고) Delegation에서 원하는 Group을 넣고 권한(Allowed Permission)을 custom으로 설정하여 가져갈 수도 있다.
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-r2-and-2012/dn789195(v=ws.11)

Delegate Permissions for Group Policy

Delegate Permissions for Group Policy 08/31/2016 9 minutes to read In this article --> This topic describes procedures for an administrator to delegate permissions to others using the GPMC so that they can perform some Group Policy administrative tasks. In

docs.microsoft.com

Delegation -> Advanced -> Advanced에 들어가서 Deny와 Allow를 여러 번 선택하면 Access권한이 Special로 변하게 되고, 저장하고 나오면 Delegation탭의 Allowed Permissions에는 Read -> Custom으로 바뀌게 된다. 이때 다시 Custom -> Read나 Edit Settings로 바꾸면 설정값이 다 날라가므로 주의가 필요하다.

★해당 정책 응용 : Deny정책을 만들어 모든 사용자에게 적용 한 후, Deny를 예외 처리 할(즉 정책을 사용할) 사용자는 Group을 만들어서 Member에 추가하는 식으로 운영이 가능하다.
Delegation에 그 Group을 추가 하고, 권한을 Advanced-Advanced에 가서 Deny - Apply group policy를 설정해 주면 된다. (그리고 Read 외에 나머지 권한은 혹시 모르므로 Allow - Modify,write에 관한 모든 권한은 쳬크하여 넣어준다.)
그러면 Deny / Apply group policy , Allow / special로 들어가며 delegation에는 custom으로 들어가게 된다.


그러면 본론으로 돌아와서 1. Security Filtering에 내가 원하는 Group 추가 2. Delegation에 Domain Computers Read 권한 부여 3. OU에 해당 정책 적용의 순으로 원하고자 하는 바를 적용할 수 있다.

1. OU에 Computers가 GPO를 적용받는 경우
1-1 Group Member의 경우 - Authenticated Users와 동일 동작. 즉 Link Enable/Disable 여부에 따라 gpupdate시 바로 적용/미적용
1-2 Group Member가 아닌 경우 - 해당 정책을 없는 것처럼 동작. 즉 Link Enable 후 gpresult로 확인해도 해당 정책은 없는 것처럼 보고되지 않는다.

2. OU에 Users가 GPO를 적용받는 경우
1-1 Group Member의 경우 - 어느 컴퓨터에 접근하든 정책이 적용된다.
1-2 Group Member가 아닌 경우 - gpresult상으로는 정책을 성공적으로 적용한 것으로 보고되나, 거부된 GPO에도 항목이 등재되며 거부된 이유로는 액세스 거부(보안 필터링) - 결과적으로 안 됨

3. OU에 Group을 넣고 GPO를 Link Enable한경우 - 아무런 결과가 나타나지 않음
결국, Group은 GPOLink랑 아무 관련이 없음

4. (중요) Group의 Member인지 여부는 컴퓨터 부팅후 첫 로그인 할 때 결정됨!
다시 말하면 로그인 이후 Group의 Member를 수정하고 아무리 gpupdate 를 날려봐도 GPO가 적용되지 않음. 이러한 특성 때문에 많이 헷갈렸다. 아무튼 Member 변경 후 해당 GPO를 적용 시키려면 무조건 리부팅을 해줘야 한다.
4-1 첨부터 그룹 멤버로 인식된 경우 멤버를 제거해도 계속 그 정책을 반영한다.
4-2 첨부터 그룹 멤버로 인식되지 않은 경우 리부팅 전까지는 해당 GPO를 적용시킬 방법이 없다.

추가로 알게 된 사실 - Delegate에서 custom권한을 제거하면 Read 권한으로 강등되며, Read(from Security Filtering)을 제거하면, Scope의 Security Filtering 에서도 해당 객체는 지워진다.