그룹 정책 관리 콘솔(Group Policy Management Console (GPMC)) 외에도 Microsoft는 그룹 정책을 관리하는 데 사용할 수 있는 일련의 Windows PowerShell cmdlet을 제공합니다.Group Policy). 그룹 정책 PowerShell cmdlet을 사용하려면Group Policy cmdlet을 실행할 장치에 GPMC가 설치되어 있어야 합니다. 장치에 그룹 정책 PowerShell 모듈이 설치되어 있는지 확인하려면 아래 명령을 실행하세요. 모듈이 설치되어 있으면 사용 가능한 모든 그룹 정책 cmdlet이 표시됩니다.
Get-Command -Module GroupPolicy
엄선된 관련 자료:
새 그룹 정책 개체 만들기
먼저 새 그룹 정책 개체( GPO )를 만듭니다. 아래 명령은 'Netwrix PCs'라는 새 GPO를 만들고, 해당 목적을 설명하는 주석을 추가합니다:
New-GPO -Name "Netwrix PCs" -Comment "Client settings for Netwrix PCs"
이 명령은 설정이 없는 빈 GPO를 만듭니다. Active Directory 도메인에 시작 GPO가 구성되어 있다면, 해당 설정을 기반으로 새 GPO를 만들 수 있습니다. 아래 명령은 'Windows 10 MS Security Settings' GPO를 기반으로 'Netwrix PCs'라는 새 GPO를 만듭니다:
New-GPO -Name "Netwrix PCs" -StarterGPOName "Windows 10 MS Security Settings"
파이핑을 사용해 GPO를 도메인, 도메인 컨트롤러의 조직 구성 단위(OU) 또는 사이트에 선택적으로 연결할 수 있습니다. 아래 명령은 새 GPO를 만들고, ad.contoso.com 도메인의 Clients OU에 연결합니다:
New-GPO -Name "Netwrix PCs" | New-GPLink -Target "ou=clients,dc=ad,dc=contoso,dc=com"
GPO 연결을 해제하려면 Remove-GPLink cmdlet을 사용합니다:
Remove-GPLink -Name "Netwrix PCs" -Target "ou=clients,dc=ad,dc=contoso,dc=com"
그림 1. GPO를 연결하고 연결 해제하는 방법
엄선된 관련 콘텐츠:
GPO에 대한 정보 가져오기
GPO를 만들면 Get-GPO를 사용하여 GPO 상태, 생성 시간 및 마지막 수정 시간과 같은 정보를 반환할 수 있습니다:
Get-GPO -Name "Netwrix PCs"
추가 정보가 필요하면 Get-GPOReport로 Get-GPO에서 생성된 개체를 파이프하세요. 아래 스크립트는 그룹 정책 관리 콘솔에서 볼 수 있는 것과 유사한 GPO에 대한 정보를 제공하는 HTML 보고서를 만듭니다:
Get-GPO -Name "Netwrix PCs" | Get-GPOReport -ReportType HTML -Path c:tempreport.html
그림 2. 특정 GPO에 대한 상세 데이터를 포함한 HTML 보고서
그룹 정책 설정 구성
레지스트리 기반 그룹 정책 설정의 위치를 알고 있다면 Set-GPRegistryValue cmdlet을 사용하여 이를 구성할 수 있습니다. 레지스트리 기반 그룹 정책 설정은 GPMC에서 관리 템플릿 아래에 표시되는 설정을 의미합니다. Set-GPRegistryValue는 그룹 정책 설정에서 다루지 않는 레지스트리 값을 설정하는 데에도 사용할 수 있습니다. 예를 들어 그룹 정책용 ADMX 파일이 없는 타사 애플리케이션의 레지스트리 설정을 구성하려면 Set-GPRegistryValue가 필요한 설정을 빠르게 구성할 수 있는 방법입니다. 다음 명령은 로그인한 사용자의 화면 보호기 대기 시간을 300초로 설정합니다:
Set-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop" -ValueName ScreenSaveTimeOut -Type DWord -Value 300
Set- GPRegistryValue를 사용하면 컴퓨터 구성 또는 사용자 구성 설정 중 하나를 지정할 수 있습니다. 아래의 -Key 매개변수에 있는 레지스트리 경로는 “HKCU”(“HKEY_CURRENT_USER”를 의미)로 시작합니다. 대신 컴퓨터 설정을 구성하려면 “HKCU”를 “HKLM”(“HKEY_LOCAL_MACHINE”으로 확장됨)으로 바꾸세요.
GPO에서 구성한 레지스트리 키에 대한 자세한 정보를 보려면 Get-GPRegistryValue를 사용합니다:
Get-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop"
그림 3. GPO에서 구성된 레지스트리 키에 대한 자세한 정보를 가져오는 방법
GPO에서 레지스트리 설정을 제거하려면 Remove-GPRegistryValue:를 사용합니다.
Remove-GPRegistryValue -Name "Netwrix PCs" -Key "HKCUSoftwarePoliciesMicrosoftWindowsControl PanelDesktop" -ValueName ScreenSaveTimeOut
위의 세 cmdlet에는, 정책 대신 Preferences를 사용해 레지스트리 키를 설정하기로 결정한 경우에 해당하는 Group Policy Preference에 대한 동등한 명령이 있습니다. 즉:Set-GPPrefRegistryValue, Get-GPPrefRegistryValue 및 Remove-GPPrefRegistryValue.
그룹 정책 설정 적용
GPO가 도메인, OU 또는 사이트에 연결되어 있다면, 해당 GPO가 연결된 아래의 사용자 및 컴퓨터 개체에 적용됩니다. 하지만 원격 서버 또는 다른 장치에서 그룹 정책 업데이트를 강제로 실행하려면 Invoke-GPUpdate를 사용할 수 있습니다. 매개변수 없이 Invoke-GPUpdate를 실행하면 로컬 컴퓨터에서 사용자 및 컴퓨터 구성 설정의 업데이트가 강제로 수행됩니다. 아래 명령은 사용자 구성 설정만을 대상으로 server1에서 그룹 정책 업데이트를 강제로 수행합니다:
Invoke-GPUpdate -Computer "adserver1" -Target "User"
사용자 또는 컴퓨터에 적용된 GPO 확인
사용자 또는 컴퓨터에 적용된 GPO가 무엇인지 확인하려면 Get-GPResultantSetOfPolicy cmdlet을 사용하여 Resultant Set of Policy (RSoP) 보고서를 생성할 수 있습니다. 아래 명령은 “dc1”이라는 컴퓨터에 대한 보고서를 생성하고 결과를 c:temp 디렉터리에 기록합니다:
Get-GPResultantSetOfPolicy -Computer dc1 -ReportType HTML -Path c:tempdc1rsop.html
그림 4. 사용자 또는 컴퓨터에 적용된 GPO 정보를 가져오는 방법
PowerShell cmdlet은 그룹 정책을 관리하는 데 꽤 유용할 수 있습니다. 하지만 PowerShell을 사용해 GPO 내부의 설정을 구성하는 것은 쉽지 않습니다. 이는 그룹 정책 설정이 텍스트 기반 구성 방식을 염두에 두고 설계되지 않았기 때문입니다.
공유하기
더 알아보기
저자 소개
Russell Smith
IT 컨설턴트
관리 및 보안 기술을 전문으로 하는 IT 컨설턴트이자 저자입니다. Russell은 IT 분야에서 15년 이상의 경력을 보유하고 있으며, Windows 보안에 관한 책을 집필했고 Microsoft의 Official Academic Course (MOAC) 시리즈를 위한 저술에 공동 저자로 참여했습니다.