mirror of
https://github.com/EvotecIT/GPOZaurr.git
synced 2026-08-18 14:33:11 +00:00
43 lines
1.4 KiB
PowerShell
43 lines
1.4 KiB
PowerShell
function Export-GPOZaurrContent {
|
|
<#
|
|
.SYNOPSIS
|
|
Saves GPOs to XML or HTML files.
|
|
|
|
.DESCRIPTION
|
|
Saves GPOs to XML or HTML files.
|
|
|
|
.PARAMETER FolderOutput
|
|
The folder where the GPOs will be saved.
|
|
|
|
.PARAMETER ReportType
|
|
The type of report to generate. Valid values are XML or HTML. Default is XML.
|
|
|
|
.EXAMPLE
|
|
An example
|
|
|
|
.NOTES
|
|
General notes
|
|
#>
|
|
[CmdletBinding()]
|
|
param(
|
|
[Parameter(Mandatory)][alias('Path')][string] $FolderOutput,
|
|
[ValidateSet('XML', 'HTML')][string] $ReportType = 'XML'
|
|
)
|
|
if ($FolderOutput) {
|
|
if (-not (Test-Path -LiteralPath $FolderOutput)) {
|
|
$null = New-Item -Path $FolderOutput -ItemType Directory -Force
|
|
}
|
|
$Forest = Get-ADForest
|
|
$Count = 0
|
|
foreach ($Domain in $Forest.Domains) {
|
|
$GPOs = Get-GPO -All -Domain $Domain
|
|
foreach ($GPO in $GPOS) {
|
|
$Count++
|
|
Write-Verbose -Message "Export-GPOZaurr - Exporting ($Count / $($GPOs.Count)) - $($GPO.DisplayName) to $ReportTypeF"
|
|
$Name = "$($GPO.DomainName)_$($GPO.Id)_$($GPO.DisplayName).xml".Replace(" ", "_").Replace("|", "_")
|
|
$FullName = [io.path]::Combine($GPOOutput, $Name)
|
|
Get-GPOReport -Guid $GPO.Id -Domain $GPO.DomainName -ReportType $ReportType -Path $FullName
|
|
}
|
|
}
|
|
}
|
|
} |