PowerShell을 사용하여 Active Directory 그룹 정책 보고서를 생성합니다. Get-GpoReport
cmdlet을 사용하여 그룹 정책 (GPO)에 대한 보고서를 생성할 수 있으며, 이는 간단한 텍스트 기반 보고서부터 완전한 HTML (Hypertext Markup Language) 보고서까지 다양한 형식의 보고서를 생성할 수 있습니다. 또한, PowerShell을 사용하여 이 보고서 생성 프로세스를 자동화할 수도 있습니다. 이를 통해 시간을 절약하고 Active Directory (AD) 시스템에 대한 중요한 정보를 얻을 수 있습니다. 이 문서에서는 PowerShell GPO 모듈을 가져오고, GPO를 내보내고, GPO를 조직 단위 (OU)에 연결하는 방법에 대해 설명합니다. 이는 예시로 제시되며, 모두 함께 작동하여 탁월한 보고서를 생성합니다.
PowerShell을 사용하여 Active Directory 정책 보고서를 생성하는 방법부터 시작해보시겠습니까?
PowerShell로 AD 그룹 정책 보고서(GPO) 생성
사전 요구 사항
이 문서에서는 GPO를 생성 및 수정하는 데 관련된 몇 가지 다양한 상황을 살펴보겠습니다. 예제를 따라가고자 하는 경우 다음이 이미 준비되어 있는지 확인하세요.
- 그룹 정책용 PowerShell 모듈. Windows 10을 사용 중인 경우 RSAT를 다운로드하여 설치하거나 Windows Server를 사용 중인 경우 PowerShell 명령을 사용할 수 있습니다:
Install-WindowsFeature -Name GPMC
- A computer member of the same AD domain from which we will query GPOs.
- GPO를 읽을 수 있는 권한이 있는 도메인 사용자 계정으로 AD에 가입된 컴퓨터.
또한 읽으십시오 Active Directory 마지막 로그온 보고서
Get-GpoReport로 HTML 보고서 생성
먼저, 단일 GPO가 있다고 상상해보겠습니다. 따라서 설정을 보고 (또한 HTML 보고서를 생성) 시작할 것입니다. 다행히Get-GpoReport
를 사용하여 PowerShell을 활용하여 GPO를 찾고 내보낼 수 있습니다. 이를 위해 GPO의 이름 또는 GPO의 Globally Unique Identifier(GUID)가 필요합니다.
그러므로 상세한 HTML 보고서를 생성하기 위해 적어도 세 가지 매개변수를 사용해야합니다:
- GPO를 찾기 위한 이름 또는 GUID.
- ReportType 매개변수를 사용하여 생성할 보고서 유형을 지정합니다. HTML 또는 XML(확장 가능한 마크업 언어) 중에서 선택할 수 있습니다.
- 보고서를 저장할 경로를 지정합니다.
환경에서 GPO가 있다고 가정해봅시다. 예를 들어, 이 예제에서와 같이 GPO의 이름을 알고 있다면, ReportType
을 HTML
로 지정하여 HTML 보고서를 생성하고 이 HTML 파일을 저장할 경로를 지정할 수 있습니다.
Get-GPOReport -Name 'Sample GPO' -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'
또는 아래의 예제를 사용하여 GPO를 찾기 위해 Guid
매개변수를 사용할 수도 있지만, 이는 추가 단계입니다.
$gponame = (Get-GPO -Name 'Sample GPO').Id
Get-GPOReport -Guid $gponame -ReportType 'HTML' -Path 'C:\Temp\SampleReport.html'
준비가 완료되면 선호하는 브라우저에서 보고서를 볼 수 있습니다.
모든 GPO의 HTML 보고서 생성
또는 GPO의 도메인 전체 보고서를 생성하려면. 이 경우 도메인의 모든 GPO를 쿼리하기 위해 All
인자를 사용해야 합니다. 그러나 이번에는 특정 GPO를 지정하기 위해 Name
또는 Guid
옵션 대신 All
스위치 매개변수를 사용합니다.
Get-GPOReport -All -ReportType Html -Path "C:\Temp\All-SampleReport.html"
AD(Active Directory) 환경에서는 Get-GPOReport
cmdlet이 GPO를 읽기 위해 서버 매개변수로 지정된 도메인 컨트롤러(DC)에 접속합니다. 그 후 서버가 없는 경우에는 기본적으로 PDC Emulator 역할을 가진 DC가 사용됩니다.
또한 읽기Office 365 사용자 보고서
Get-GpoReport로 XML 보고서 생성하기
예를 들어, 아래에서 기존 GPO인 샘플 보고서
를 쿼리하여 XML 보고서를 생성합니다. 그런 다음, 해당 보고서를 XML 파일의 기본 앱에서 엽니다:
Get-GPOReport -Name 'Sample GPO' -ReportType Xml -Path "C:\temp\SampleReport.xml"
Invoke-Item -Path "C:\Temp\SampleReport.xml"
완료되면 아래 스크린샷과 같은 XML 파일이 표시됩니다.
먼저, GPO XML 노드가 모든 것을 포함하고 있다는 것을 알 수 있습니다. 그 안에는 Identifier
(GPO GUID), Name
(GPO 이름), Include Comments, Security Descriptor, SDDL
그리고 더 많은 정보가 있습니다.
GPO XML 보고서
형식 외에도 이 XML 보고서가 HTML과 다른 점은 무엇인가요? 기본적으로 HTML 보고서에서 볼 수 있는 속성은 XML 보고서에도 존재합니다. 그러나 이들은 보다 구조화되어 파싱하기가 더 간단합니다.
- VersionDirectory – AD 데이터베이스에 저장된 GPO의 버전입니다.
- VersionSysvol – GPO가 저장된 버전SYSVOL.
- Enabled – 비활성화되면 클라이언트 컴퓨터의 GPO 처리 엔진이 정책의 해당 부분에 대한 설정을 적용하지 않습니다.
중요한 점은 GPO를 수정할 때 정책 버전(컴퓨터 또는 사용자)이 증가합니다. 따라서 그룹 정책 처리 엔진은 새로운 설정을 적용할 때와 정책이 변경되었을 때를 결정할 수 있습니다. 또한 이 동작은 /force 스위치를 사용하지 않고 GPO를 변경한 후 gpupdate.exe를 실행할 수 있도록 합니다.
Also Read Active Directory Management
InfraSOS를 사용하여 Active Directory 그룹 정책 보고서 확인
무료로 사용해보세요, 모든 기능에 액세스하세요. – 200개 이상의 AD 보고서 템플릿 사용 가능. 쉽게 자신만의 AD 보고서를 사용자 정의하세요.
GPMC
에서 GPO 버전(AD 및 SYSVOL) 및 상태를 확인할 수 있습니다.
또한, 클라이언트의 컴퓨터는 VersionDirectory
와 VersionSysvol
의 값이 0
인 상태에서도 Enabled
가 true
인 경우 정책을 계속 처리합니다. 시스템은 GPO의 관련 부분을 구현할 필요가 없다는 것을 처리 엔진에 알립니다. 구성을 변경하면 빠른 컴퓨터가 상대적으로 짧은 네트워크에서 성능에 큰 영향을 주지 않습니다. 그러나 느린 네트워크의 구식 기계에서는 여전히 이러한 GPO의 귀중한 몇 초를 절약할 수 있습니다.
따라서 클라이언트 컴퓨터의 처리 엔진은 VersionDirectory
와 VersionSysvol
의 값이 0
보다 크지만 Enabled
가 false
로 설정된 정책은 적용하지 않습니다. 어떤 설정이 적용되지 않는지 질문할 수 있습니다. 따라서 이것이 실수인지 아니면 의도적인지 조사하는 것이 중요합니다.
GPO의 내부 작동에 익숙한 경우 Get-GPOReport
명령을 사용하여 이러한 설정을 직접 참조하여 확인할 수 있습니다. GPMC를 탐색하는 대신 속성을 참조하는 것입니다.
또는 GPO의 몇 가지 설정에 초점을 맞추거나 결국 PowerShell을 사용하여 GPO를 OU에 연결하려고 할 수 있습니다. 그러면 보고서를 작성할 필요가 없습니다.
- 해당 상황에서
Path
매개 변수를 제거하십시오. 아래 예제에서는[xml]
캐스트와Path
매개 변수의 부재에 주목하십시오.
[xml]$GpoXml = Get-GPOReport -Name 'Sample GPO' -ReportType Xml
2. Get-GPOReport
의 출력을 XML 개체로 변환했으므로 간단한 점 표기법을 사용하여 여러 속성을 빠르게 참조할 수 있습니다.
$GpoXml.GPO.Computer
$GpoXml.GPO.User
3. foreach
루프를 추가하고 All
인수를 사용하여 각 GPO 출력을 확인하십시오.
$AllGpos = Get-GPO -All
$GpoVersionInfo = foreach ($gpo in $gpos) {
[xml]$g = Get-GPOReport -ReportType Xml -Guid $gpo.Id
[PSCustomObject]@{
"Name" = $g.GPO.Name
"Comp-Ad" = $g.GPO.Computer.VersionDirectory
}
}
$GpoVersionInfo | Sort-Object Name | Format-Table
XML GPO 보고서 구문 분석
Get-GPOReport
가 생성하는 XML 출력을 사용하여 GPO에 대한 여러 측면을 알 수 있습니다. 이전 예제에서 이전 모델의 $GPOXML.GPO.Computer
및 $GPOXML.GPO.User
속성을 살펴보면 아래와 같이 ExtensionData
속성이 표시됩니다.
아래와 같이 PowerShell에서 이러한 XML 노드에 액세스하여 XML 데이터를 기반으로 보고서를 생성할 수 있습니다.
$PolicyDetails = foreach ($policy in $GpoXml.GPO.User.ExtensionData.Extension.Policy) {
[PSCustomObject]@{
"Name" = $policy.Name
"State" = $policy.State
}
}
$PolicyDetails
PowerShell로 Active Directory 정책 보고서 만드는 방법에 대한 우리의 기사 블로그를 읽어주셔서 감사합니다. 마무리하겠습니다.
또한 읽기활성 디렉터리 잠긴 사용자 보고서
PowerShell을 사용하여 활성 디렉터리 그룹 정책 보고서 생성 결론
기본 Group Policy Management Console (GPMC) 외에도이 문서에서는 HTML 및 XML 형식으로 내보내어 포괄적인 그룹 정책 보고서를 생성하는 방법에 대해 논의했습니다. 또한 Get-GpoReport
cmdlet에 대해 논의했습니다. 이 cmdlet은 PowerShell을 통해 GPMC와 동일한 정보를 검색 할 수 있습니다. 이를 통해 많은 GPO를 동시에 쿼리 할 수 있으며, 훌륭한 보고서 작성에 도움이 될 것입니다.
Source:
https://infrasos.com/create-active-directory-policy-reports-with-powershell/