GPUpdate 명령 이해하기 [자세히]

그룹 정책은 현재 많은 조직에서 사용하는 인기 있는 활성 디렉터리 서비스입니다. 조직이 그룹 정책을 사용한다면, 아마도 gpupdate 명령어, 더 구체적으로는 gpupdate /force 명령어에 익숙할 것입니다.

gpupdate 명령어가 어떤 작업을 수행하는지 알고 계신가요? 강제 매개변수를 사용해야 할 때가 있나요? 그렇다면 언제 사용하는 것이 좋을까요?

이 글에서는 gpupdate가 무엇을 하는지, 어떻게 작동하는지, 그리고 그 옵션을 최대한 활용하는 방법을 배울 수 있습니다.

GPUpdate란 무엇인가요?

Gpupdate는 Microsoft에서 제공하는 명령줄 유틸리티로, 모든 Windows 운영 체제 버전에 포함되어 있습니다. 이 유틸리티는 할당된 활성 디렉터리 컴퓨터에 그룹 정책 개체(GPO)를 적용하는 도구입니다.

일반적으로 관리자가 컴퓨터나 사용자에게 GPO를 할당하면, 해당 컴퓨터는 자동으로 도메인 컨트롤러와 확인을 하고 GPO에서 정의된 설정을 적용합니다. 개입이 필요하지 않으며, 이 과정은 자동으로 진행됩니다.

정기적인 자동 일정 외에도 관리자가 컴퓨터에 새로운 GPO를 확인하거나 변경된 GPO를 확인해야 하는 경우가 있습니다. 이러한 시나리오에서 gpupdate가 유용하게 사용됩니다.

gpupdate 명령은 도메인 컨트롤러와 확인하여 컴퓨터에 할당된 새로운 또는 업데이트된 GPO를 확인하고 즉시 적용하는 명령입니다.

전제 조건

이 자습서에서 제공된 예제 중 하나를 실행하려면 이 문서의 전제 조건은 가벼운 편입니다.

  • A Windows computer joined to an Active Directory domain
  • 컴퓨터에 할당된 적어도 하나의 GPO

Gpupdate 작동 방식

도메인에 가입된 컴퓨터 앞에서 Windows 명령 프롬프트 또는 PowerShell을 열고 gpupdate를 실행하면 일련의 작업이 시작됩니다.

Gpupdate in action
  1. Gpupdate는 Group Policy 클라이언트 서비스를 시작합니다. 이 서비스는 새로운 그룹 정책 설정을 발견하고 적용하는 역할을 담당합니다.

2. 그룹 정책 클라이언트 서비스는 컴퓨터의 로그온 DC에 연결하여 새로운 GPO나 기존 GPO의 업데이트가 있는지 확인합니다.

3. 그룹 정책 클라이언트 서비스가 새로운 GPO나 gpedit.msc로 로컬에서 변경한 GPO를 찾으면, 컴퓨터 설정부터 사용자 설정까지 모든 클라이언트 사이드 확장(CSE)를 처리합니다.

그룹 정책 클라이언트 서비스는 Applications and Services Log\Microsoft\Windows\GroupPolicy\Operational에 이벤트를 기록합니다.

Gpupdate applies computer settings before the user settings.

관련: 그룹 정책 작동 방식 (자세한 내용)

4. 작업이 완료되면 그룹 정책 클라이언트 서비스는 다음 새로 고침 간격까지 기다립니다. 기본적으로 이 간격은 90분이며 최대 30분의 무작위 오프셋이 포함됩니다.

일부 그룹 정책 설정은 사용자가 로그오프하거나 컴퓨터를 다시 시작하여 적용되어야 합니다. 이러한 설정 중 하나가 정책의 일부인 경우 gpupdate는 컴퓨터를 로그오프하거나 다시 시작하도록 요청합니다.

악명 높은 /force 스위치 설명

gpupdate를 실행할 때 일어나는 기본 사항을 이제 알게 되었습니다. 지금까지 모든 것이 정상 작동하는 것처럼 보입니다, 맞죠? 보통의 전형적인 시나리오에서 gpupdate를 실행하고 해당 프로세스를 진행시키면 모든 것이 잘 작동합니다. 그러나 어떤 상황에서는 몇 가지를 강제로 진행해야 할 때가 있습니다.

gpupdate의 가장 널리 사용되는 매개변수 중 하나는 /force 스위치입니다. 이 스위치는 모든 IT 전문가의 마음에 어떤 이유에서인지 필수적으로 사용되어 왔습니다. 대중적인 믿음과는 달리 특정 상황에서만 필요합니다.

기본적으로 gpupdate는 스마트하게 모든 현재 설정을 모든 새로운 설정과 비교하고 오직 해당 설정만 적용합니다. 그러나 /force 스위치를 사용하여 gupdate에게 모든 설정을 다시 적용하도록 강제할 수도 있습니다. 그럴 필요가 있는 이유는 무엇일까요?

가끔 설정이 예상치 않은 값으로 변경됩니다. 예를 들어 사용자가 기존 정책으로 제어되는 Windows 기능을 비활성화하는 경우 gpupdate /force를 실행하면 그룹 정책 클라이언트 서비스가 해당 값을 재평가하여 예상 값으로 돌아가게 합니다. 또는 사용자를 제한된 그룹에서 제거한 후에 해당 사용자를 다시 추가하려고 할 수도 있습니다.

그룹 정책 클라이언트 서비스는 일부 설정(기본 간격은 16시간)을 정기적으로 다시 적용합니다.

이렇게 할 때 /force 스위치를 사용하지 않는 가장 큰 이유는 로그온 또는 시작 시에만 적용할 수 있는 설정을 처리할 때입니다. 이럴 경우에 gpupdate /force를 실행할 때마다 Windows가 해당 작업이 필요하지 않더라도 로그오프하거나 재시작할 것을 요구합니다.

Gpupdate의 매개변수 살펴보기

이제 gpupdate의 작동 방식에 대한 기본적인 이해와 /force 스위치를 언제 어떻게 사용해야 하는지를 알았으니 이제 gpupdate가 제공하는 모든 기능에 중점을 두어 보겠습니다.

도움말 얻기

예상대로, gpupdate 명령은 각 매개변수에 대한 정보와 그들이 수행하는 작업을 제공할 수 있습니다. /?는 깊이는 부족하지만 특정 작업을 수행하는 방법을 빠르게 되새기고 싶을 때 유용합니다.

Gpupdate /? displays all the switches and options available with the command.

컴퓨터 또는 사용자 설정 대상으로 설정하기

기본적으로 gpupdate는 그룹 정책 클라이언트 서비스에게 컴퓨터 및 사용자 설정을 모두 처리하도록 지시합니다. 이 중 하나의 세트만 새로 고침해야 할 경우에는 /target 매개변수를 사용할 수 있습니다.

/target 매개 변수를 사용할 때 두 가지 옵션이 있습니다. /target:computer를 사용하여 컴퓨터 설정을 대상으로 할 수도 있고, /target:user를 사용하여 사용자 설정을 대상으로 할 수도 있습니다.

일반적으로 특정한 경우에만 /target 매개 변수를 사용해야 합니다. 특히, 사용자 설정을 먼저 대상으로 하고 그 다음에 컴퓨터 설정을 대상으로 해야 합니다. 그 이유는 정책에 사용자 설정과 컴퓨터 설정이 겹치는 경우가 있기 때문입니다. 이런 경우에는 사용자 설정이 컴퓨터 설정을 덮어쓰게 되어 예상치 못한 동작이 발생할 수 있습니다.

시간 제한 생성

Gpupdate는 보통 빠르게 실행되지만, 응답하지 않는 DC나 Group Policy 클라이언트 서비스로 인해 문제가 발생할 수 있습니다. Gpupdate를 실행한 후 추가 작업을 수행해야 하는 스크립트에서는 시간 제한을 생성할 수도 있습니다.

/wait 매개 변수를 사용하여 gpupdate가 일정 시간이 지난 후에도 제어를 명령 창으로 돌려주고 정책 처리를 백그라운드로 밀어넣을 수 있습니다. /wait 매개 변수에 사용할 수 있는 값은 아래와 같습니다.

Wait Value Result
0 Immediately returns control to console
-1 Waits indefinitely for gpupdate to finish
1+ Waits the number of seconds provided
600 Default value

자동 로그오프 강제

일부 설정은 백그라운드 처리가 불가능한 경우 사용자가 로그오프한 후 다시 로그인해야 하는 경우가 있습니다. 기본적으로 gpupdate는 작업이 완료되면 로그오프할 것인지에 대해 확인 메시지를 표시합니다. 그러나 gpupdate 작업이 완료된 후 즉시 로그오프하려면 /logoff 스위치를 사용하십시오.

/logoff 스위치가 항상 작동하지 않을 수 있음

Windows 10과 Windows Server 2019에서 테스트한 결과, /logoff 매개 변수가 작동하지 않는 알 수 없는 문제가 발생할 수 있습니다.

예를 들어, 아래 클라이언트에는 로그인한 사용자를 위해 데스크톱 리다이렉션을 활성화하는 정책이 할당되어 있습니다. 폴더 리다이렉션 설정은 로그온 시에만 처리되며 정책의 배경 새로 고침 중에는 처리되지 않습니다.

/logoff 스위치를 사용하지 않으면 일반 사용자는 새로운 설정이 필요할 때 로그오프하라는 경고를 보게 됩니다. 그러나 /logoff 스위치를 사용하든 사용하지 않든 여전히 프롬프트가 나타나며 Windows가 로그오프하지 않습니다.

Warning to log off after gpupdate

이 시나리오에서 로그오프되려면 /force 스위치도 사용해야 합니다.

자동 재시작 강제

/logoff 스위치와 유사하게 /boot 스위치는 Windows가 배경에서 컴퓨터 설정을 처리할 수 없으면 컴퓨터를 자동으로 다시 시작합니다. /boot 스위치는 일반적으로 컴퓨터를 대상으로 한 소프트웨어 설치에 사용됩니다.

동기식 처리 강제

그룹 정책 클라이언트 서비스는 정책을 병렬로(비동기적으로) 또는 한 번에 하나씩(동기적으로) 적용합니다. Windows는 사용자 로그온 및 컴퓨터 시작시에만 정책을 동기적으로 처리하며 그 외에는 비동기적으로 처리합니다.

동기식 처리 중에는 정책이 변경되지 않았더라도 그룹 정책 클라이언트가 모든 CSE(클라이언트 측 확장)를 호출합니다. 동기식 처리는 일부 설정이 다른 설정에 의존하기 때문에 필요합니다.

당신은 /sync 스위치를 /target: user 또는 /target:computer와 결합할 수 있습니다. 명령 창을 관리자로 실행하는 동안에만 /sync 스위치를 사용할 수 있습니다. 그렇지 않으면 아래의 Access Denied 오류 메시지가 표시됩니다.

Running gpupdate /sync as a normal user is not allowed.
Running gpupdate /sync as administrator prompts for a restart.

관련: PowerShell을 관리자 권한으로 실행하는 방법

비동기 처리는 도메인 사용자의 로그인 경험을 최적화하는 방법입니다. Windows XP 이전에는 모든 정책 처리가 동기식이었으며 유일한 단점은 일부 설정이 두 번의 로그온 또는 두 번의 다시 시작이 필요했다는 것이었습니다. Windows XP 이후의 기본 모드는 이제 비동기식입니다.

결론

이 문서를 따라왔다면 이제 gpupdate가 무엇을 하는지와 그 동작을 변경하는 데 어떻게 스위치를 사용할 수 있는지에 대한 명확한 아이디어가 있을 것입니다. gpupdate를 대규모로 사용하거나 자동화하려면 PowerShell과 관련된 것인 Invoke-GPUpdate을 확인하십시오.

Source:
https://adamtheautomator.com/gpupdate/