<# | |
Author: I.C.A. Strachan | |
Version: | |
Version History: | |
Purpose: Create PScribo Report of saved AD Configuration | |
#> | |
[CmdletBinding()] | |
Param( | |
$snapshotDate= '29032016' | |
) | |
#PScribo link: https://github.com/iainbrighton/PScribo | |
Import-Module PScribo -Verbose:$false | |
#Get ADSnapshot | |
$SavedADSnapshot = Import-Clixml .\export\dsa\ADReport-$($snapshotDate).xml | |
$reportAD = Document "AD snapshot report - $($snapshotDate)" { | |
GlobalOption -ForceUppercaseSection -EnableSectionNumbering -PageSize A4 -Margin 24 | |
BlankLine -Count 20 | |
Paragraph "Active Directory snapshot report - $($snapshotDate)" -Style Title | |
BlankLine -Count 20 | |
PageBreak | |
TOC -Name 'Table of Contents' | |
PageBreak | |
Section -Style Heading1 'Forest Information' { | |
$ADForest = [Ordered]@{ | |
Name = $($SavedADSnapshot.ForestInformation.Name) | |
RootDomain = $($SavedADSnapshot.ForestInformation.RootDomain) | |
ForestMode = $($SavedADSnapshot.ForestInformation.ForestMode.ToString()) | |
Domains = $($SavedADSnapshot.ForestInformation.Domains) | |
} | |
Table -Name 'AutofitWidth-AutofitCell-NoHighlighting' -List -Width 0 -Hashtable $ADForest | |
} | |
Section -Style Heading1 'Domain Information' { | |
$ADDomain = [Ordered]@{ | |
NetBIOSName = $($SavedADSnapshot.DomainInformation.NetBIOSName) | |
DomainMode = $($SavedADSnapshot.DomainInformation.DomainMode.ToString()) | |
DistinguishedName = $($SavedADSnapshot.DomainInformation.DistinguishedName) | |
DomainSID = $($SavedADSnapshot.DomainInformation.DomainSID) | |
} | |
Table -Name 'AutofitWidth-AutofitCell-NoHighlighting' -List -Width 0 -Hashtable $ADDomain | |
} | |
Section -Style Heading1 'FSMO Roles' { | |
$SavedADSnapshot.ForestInformation | | |
Select-Object DomainNamingMaster,SchemaMaster | | |
Table -Name 'AutofitWidth-AutofitCell-NoHighlighting' -List -Width 0 | |
Blankline | |
$SavedADSnapshot.DomainInformation | | |
Select-Object PDCEmulator,InfrastructureMaster,RIDMaster | | |
Table -Name 'AutofitWidth-AutofitCell-NoHighlighting' -List -Width 0 | |
} | |
Section -Style Heading1 'Global Catalogs' { | |
$GCs = $SavedADSnapshot.ForestInformation | | |
Select-Object -ExpandProperty GlobalCatalogs | |
Table -Name 'AutofitWidth-AutofitCell-NoHighlighting' -List -Width 0 -InputObject $GCs | |
} | |
Section -Style Heading1 'Domain Controllers' { | |
$SavedADSnapshot.DomainControllers | | |
Select-Object Name,OperatingSystem,IPv4Address,Site | | |
Table -Name 'AutofitWidth-AutofitCell-NoHighlighting' -List -Width 0 | |
} | |
Section -Style Heading1 'Default Domain Password Policy' { | |
$SavedADSnapshot.DefaultPassWordPoLicy | | |
Select-Object ComplexityEnabled,LockoutDuration,LockoutObservationWindow,LockoutThreshold, | |
MaxPasswordAge,MinPasswordAge,MinPasswordLength,PasswordHistoryCount,ReversibleEncryptionEnabled | | |
Table -Name 'AutofitWidth-AutofitCell-NoHighlighting' -List -Width 0 | |
} | |
Section -Style Heading1 'Domain Administrators' { | |
$SavedADSnapshot.DomainAdministrators | | |
Select-Object Name,DistinguishedName | | |
Table -Name 'AutofitWidth-AutofitCell-NoHighlighting' -Width 0 | |
} | |
Section -Style Heading1 'Organizational Units' { | |
$SavedADSnapshot.OrganizationalUnits | | |
Select-Object Name,DistinguishedName | | |
Table -Name 'AutofitWidth-AutofitCell-NoHighlighting' -Width 0 | |
} | |
Section -Style Heading1 'Sites & Subnets' { | |
Section -Style Heading2 'Sites' { | |
$SavedADSnapshot.Sites | | |
Select-Object Name,Description,DistinguishedName | | |
Table -Name 'AutofitWidth-AutofitCell-NoHighlighting' -List -Width 0 | |
} | |
Section -Style Heading2 'Sitelinks' { | |
$SavedADSnapshot.SiteLinks | | |
Select-Object Name,Cost,ReplicationFrequencyInMinutes | | |
Table -Name 'AutofitWidth-AutofitCell-NoHighlighting' -Width 0 | |
} | |
Section -Style Heading2 'Subnets' { | |
$SavedADSnapshot.Subnets | | |
Select-Object Name,Site | | |
Table -Name 'AutofitWidth-AutofitCell-NoHighlighting' -Width 0 | |
} | |
} | |
} | |
#Render report in HTML format | |
$reportAD | Export-Document -Path .\export\dsa -Format Html |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment