Skip to content

Commit

Permalink
v0.8.1 improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
rebelinux committed May 16, 2024
1 parent cc542d8 commit b47bcd2
Show file tree
Hide file tree
Showing 10 changed files with 75 additions and 108 deletions.
4 changes: 1 addition & 3 deletions AsBuiltReport.Microsoft.AD.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"Report": {
"Name": "Microsoft AD As Built Report",
"Name": "Microsoft Active Directory As Built Report",
"Version": "1.0",
"Status": "Released",
"ShowCoverPageImage": true,
Expand All @@ -11,8 +11,6 @@
"Options": {
"ShowDefinitionInfo": false,
"PSDefaultAuthentication": "Negotiate",
"EnableCharts": false,
"EnableDiagrams": true,
"Exclude": {
"Domains": [],
"DCs": []
Expand Down
5 changes: 5 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fix [#151](https://github.com/AsBuiltReport/AsBuiltReport.Microsoft.AD/issues/151)
- Fix [#150](https://github.com/AsBuiltReport/AsBuiltReport.Microsoft.AD/issues/150)

### Removed

- Removed EnableDiagrams option
- Removed EnableCharts option

## [0.8.0] - 2024-01-24

### Added
Expand Down
1 change: 0 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,6 @@ The **Options** schema allows certain options within the report to be toggled on
| Exclude.DCs | Array List | Empty | Allow to filter on AD Domain Controller Server FQDN. |
| Include.Domains | Array List | Empty | Allow only a list of Active Directory Domain Controller FQDN to document. |
| Include.DCs | Array List | Empty | Allow only a list of Active Directory Domain FQDN to document. |
| EnableDiagrams | true / false | true | Toggle to enable/disable of Infrastructure Diagrams |

### InfoLevel

Expand Down
12 changes: 5 additions & 7 deletions Src/Private/Get-AbrADDomainController.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,13 @@ function Get-AbrADDomainController {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
if ($Options.EnableCharts) {
try {
$sampleData = $inObj.GetEnumerator() | Select-Object @{ Name = 'Name'; Expression = { $_.key } }, @{ Name = 'Value'; Expression = { $_.value } } | Sort-Object -Property 'Category'
try {
$sampleData = $inObj.GetEnumerator() | Select-Object @{ Name = 'Name'; Expression = { $_.key } }, @{ Name = 'Value'; Expression = { $_.value } } | Sort-Object -Property 'Category'

$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'DomainControllerObject' -XField 'Name' -YField 'value' -ChartLegendName 'Category' -ChartTitleName 'DomainControllerObject' -ChartTitleText 'DC vs GC Distribution' -ReversePalette $True
$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'DomainControllerObject' -XField 'Name' -YField 'value' -ChartLegendName 'Category' -ChartTitleName 'DomainControllerObject' -ChartTitleText 'DC vs GC Distribution' -ReversePalette $True

} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Domain Controller Count Chart)"
}
} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Domain Controller Count Chart)"
}
if ($OutObj) {
if ($chartFileItem) {
Expand Down
74 changes: 32 additions & 42 deletions Src/Private/Get-AbrADDomainObject.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -66,17 +66,16 @@ function Get-AbrADDomainObject {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
if ($Options.EnableCharts) {
try {
try {

$sampleData = $inObj.GetEnumerator() | Select-Object @{ Name = 'Name'; Expression = { $_.key } }, @{ Name = 'Value'; Expression = { $_.value } } | Sort-Object -Property 'Category'
$sampleData = $inObj.GetEnumerator() | Select-Object @{ Name = 'Name'; Expression = { $_.key } }, @{ Name = 'Value'; Expression = { $_.value } } | Sort-Object -Property 'Category'

$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'UsersObject' -XField 'Name' -YField 'Value' -ChartLegendName 'Category' -ChartTitleName 'UsersObject' -ChartTitleText 'User Objects' -ReversePalette $True
$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'UsersObject' -XField 'Name' -YField 'Value' -ChartLegendName 'Category' -ChartTitleName 'UsersObject' -ChartTitleText 'User Objects' -ReversePalette $True

} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (User Object Count Chart)"
}
} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (User Object Count Chart)"
}

if ($OutObj) {
Section -ExcludeFromTOC -Style NOTOCHeading4 'Users' {
if ($chartFileItem) {
Expand Down Expand Up @@ -168,16 +167,14 @@ function Get-AbrADDomainObject {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
if ($Options.EnableCharts) {
try {
try {

$sampleData = $OutObj
$sampleData = $OutObj

$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'StatusofUsersAccounts' -XField 'Category' -YField 'Total' -ChartLegendName 'Category' -ChartTitleName 'StatusofUsersAccounts' -ChartTitleText 'Status of Users Accounts' -ReversePalette $True
$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'StatusofUsersAccounts' -XField 'Category' -YField 'Total' -ChartLegendName 'Category' -ChartTitleName 'StatusofUsersAccounts' -ChartTitleText 'Status of Users Accounts' -ReversePalette $True

} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Status of Users Accounts Chart)"
}
} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Status of Users Accounts Chart)"
}
}
if ($OutObj) {
Expand Down Expand Up @@ -249,16 +246,14 @@ function Get-AbrADDomainObject {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
if ($Options.EnableCharts) {
try {
try {

$sampleData = $inObj.GetEnumerator() | Select-Object @{ Name = 'Name'; Expression = { $_.key } }, @{ Name = 'Value'; Expression = { $_.value } } | Sort-Object -Property 'Name'
$sampleData = $inObj.GetEnumerator() | Select-Object @{ Name = 'Name'; Expression = { $_.key } }, @{ Name = 'Value'; Expression = { $_.value } } | Sort-Object -Property 'Name'

$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'GroupCategoryObject' -XField 'Name' -YField 'Value' -ChartLegendName 'Category' -ChartTitleName 'GroupCategoryObject' -ChartTitleText 'Group Categories' -ReversePalette $True
$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'GroupCategoryObject' -XField 'Name' -YField 'Value' -ChartLegendName 'Category' -ChartTitleName 'GroupCategoryObject' -ChartTitleText 'Group Categories' -ReversePalette $True

} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Group Category Object Chart)"
}
} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Group Category Object Chart)"
}
if ($OutObj) {
Section -ExcludeFromTOC -Style NOTOCHeading4 'Groups Categories' {
Expand Down Expand Up @@ -288,16 +283,14 @@ function Get-AbrADDomainObject {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
if ($Options.EnableCharts) {
try {
try {

$sampleData = $inObj.GetEnumerator() | Select-Object @{ Name = 'Name'; Expression = { $_.key } }, @{ Name = 'Value'; Expression = { $_.value } } | Sort-Object -Property 'Name'
$sampleData = $inObj.GetEnumerator() | Select-Object @{ Name = 'Name'; Expression = { $_.key } }, @{ Name = 'Value'; Expression = { $_.value } } | Sort-Object -Property 'Name'

$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'GroupCategoryObject' -XField 'Name' -YField 'Value' -ChartLegendName 'Category' -ChartTitleName 'GroupScopesObject' -ChartTitleText 'Group Scopes' -ReversePalette $True
$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'GroupCategoryObject' -XField 'Name' -YField 'Value' -ChartLegendName 'Category' -ChartTitleName 'GroupScopesObject' -ChartTitleText 'Group Scopes' -ReversePalette $True

} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Group Scopes Object Chart)"
}
} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Group Scopes Object Chart)"
}
if ($OutObj) {
Section -ExcludeFromTOC -Style NOTOCHeading4 'Groups Scopes' {
Expand Down Expand Up @@ -544,15 +537,13 @@ function Get-AbrADDomainObject {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
if ($Options.EnableCharts) {
try {
$sampleData = $inObj.GetEnumerator() | Select-Object @{ Name = 'Name'; Expression = { $_.key } }, @{ Name = 'Value'; Expression = { $_.value } } | Sort-Object -Property 'Category'
try {
$sampleData = $inObj.GetEnumerator() | Select-Object @{ Name = 'Name'; Expression = { $_.key } }, @{ Name = 'Value'; Expression = { $_.value } } | Sort-Object -Property 'Category'

$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'ComputersObject' -XField 'Name' -YField 'Value' -ChartLegendName 'Category' -ChartTitleName 'ComputersObject' -ChartTitleText 'Computers Count' -ReversePalette $True
$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'ComputersObject' -XField 'Name' -YField 'Value' -ChartLegendName 'Category' -ChartTitleName 'ComputersObject' -ChartTitleText 'Computers Count' -ReversePalette $True

} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Computers Object Count Chart)"
}
} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Computers Object Count Chart)"
}
if ($OutObj) {
Section -ExcludeFromTOC -Style NOTOCHeading4 'Computers' {
Expand Down Expand Up @@ -621,17 +612,16 @@ function Get-AbrADDomainObject {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
if ($Options.EnableCharts) {
try {

$sampleData = $OutObj
try {
$sampleData = $OutObj

$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'StatusofComputerAccounts' -XField 'Category' -YField 'Total' -ChartLegendName 'Category' -ChartTitleName 'StatusofComputerAccounts' -ChartTitleText 'Status of Computers Accounts' -ReversePalette $True
$chartFileItem = Get-PieChart -SampleData $sampleData -ChartName 'StatusofComputerAccounts' -XField 'Category' -YField 'Total' -ChartLegendName 'Category' -ChartTitleName 'StatusofComputerAccounts' -ChartTitleText 'Status of Computers Accounts' -ReversePalette $True

} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Status of Computers Accounts Chart)"
}
} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Status of Computers Accounts Chart)"
}

if ($OutObj) {
Section -Style Heading5 'Status of Computer Accounts' {
if ($chartFileItem -and ($OutObj.'Total' | Measure-Object -Sum).Sum -ne 0) {
Expand Down
28 changes: 13 additions & 15 deletions Src/Private/Get-AbrADForest.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -105,25 +105,23 @@ function Get-AbrADForest {
}
}
}
if ($Options.EnableDiagrams) {
try {
try {
try {
$Graph = New-ADDiagram -Target $System -Credential $Credential -Format base64 -Direction top-to-bottom -DiagramType Forest
} catch {
Write-PScriboMessage -IsWarning "Forest Diagram Graph: $($_.Exception.Message)"
}
$Graph = New-ADDiagram -Target $System -Credential $Credential -Format base64 -Direction top-to-bottom -DiagramType Forest
} catch {
Write-PScriboMessage -IsWarning "Forest Diagram Graph: $($_.Exception.Message)"
}

if ($Graph) {
If ((Get-DiaImagePercent -GraphObj $Graph).Width -gt 1500) { $ImagePrty = 10 } else { $ImagePrty = 50 }
Section -Style Heading3 "Forest Diagram." {
Image -Base64 $Graph -Text "Forest Diagram" -Percent $ImagePrty -Align Center
Paragraph "Image preview: Opens the image in a new tab to view it at full resolution." -Tabs 2
}
BlankLine -Count 2
if ($Graph) {
If ((Get-DiaImagePercent -GraphObj $Graph).Width -gt 1500) { $ImagePrty = 10 } else { $ImagePrty = 50 }
Section -Style Heading3 "Forest Diagram." {
Image -Base64 $Graph -Text "Forest Diagram" -Percent $ImagePrty -Align Center
Paragraph "Image preview: Opens the image in a new tab to view it at full resolution." -Tabs 2
}
} catch {
Write-PScriboMessage -IsWarning "Forest Diagram Section: $($_.Exception.Message)"
BlankLine -Count 2
}
} catch {
Write-PScriboMessage -IsWarning "Forest Diagram Section: $($_.Exception.Message)"
}
}
} catch {
Expand Down
12 changes: 5 additions & 7 deletions Src/Private/Get-AbrADSecurityAssessment.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -81,14 +81,12 @@ function Get-AbrADSecurityAssessment {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
if ($Options.EnableCharts) {
try {
try {

$sampleData = $inObj.GetEnumerator() | Select-Object @{ Name = 'Category'; Expression = { $_.key } }, @{ Name = 'Value'; Expression = { $_.value } }
$chartFileItem = Get-ColumnChart -SampleData $sampleData -ChartName 'AccountSecurityAssessment' -XField 'Category' -YField 'Value' -ChartAreaName 'Account Security Assessment' -AxisXTitle 'Categories' -AxisYTitle 'Number of Users' -ChartTitleName 'AccountSecurityAssessment' -ChartTitleText 'Assessment' -ReversePalette $True
} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Account Security Assessment Chart)"
}
$sampleData = $inObj.GetEnumerator() | Select-Object @{ Name = 'Category'; Expression = { $_.key } }, @{ Name = 'Value'; Expression = { $_.value } }
$chartFileItem = Get-ColumnChart -SampleData $sampleData -ChartName 'AccountSecurityAssessment' -XField 'Category' -YField 'Value' -ChartAreaName 'Account Security Assessment' -AxisXTitle 'Categories' -AxisYTitle 'Number of Users' -ChartTitleName 'AccountSecurityAssessment' -ChartTitleText 'Assessment' -ReversePalette $True
} catch {
Write-PScriboMessage -IsWarning "$($_.Exception.Message) (Account Security Assessment Chart)"
}
if ($OutObj) {
Section -ExcludeFromTOC -Style NOTOCHeading4 'Account Security Assessment' {
Expand Down
Loading

0 comments on commit b47bcd2

Please sign in to comment.