v1.0.0#250
Conversation
… translation functions for improved localization and clarity. Updated messages in Get-AbrADInfrastructureService.ps1, Get-AbrADKerberosAudit.ps1, Get-AbrADOU.ps1, Get-AbrADReportBrief.ps1, Get-AbrADSCCM.ps1, Get-AbrADSecurityAssessment.ps1, Get-AbrADSite.ps1, Get-AbrADSiteReplication.ps1, Get-AbrADTrust.ps1, Get-AbrDHCPinAD.ps1, Get-AbrDNSSection.ps1, Get-AbrDomainSection.ps1, and Invoke-DcDiag.ps1.
…d readability and consistency
…zation and documentation clarity
…ram in CHANGELOG and module manifest
…erface fix: Ensure diagram theme generation respects user-selected themes in configuration refactor: Improve multi-language support and documentation clarity for MicrosoftAD.psd1
…ty and user-friendliness Co-authored-by: Copilot <copilot@github.com>
There was a problem hiding this comment.
Pull request overview
Release-oriented PR that bumps AsBuiltReport.Microsoft.AD to v1.0.0, adds a GliderUI-based GUI launcher for generating reports, and improves localization and diagram theming across the reporting/diagram pipeline.
Changes:
- Added GUI entrypoint (
Start-AsBuiltReportMSAD) and updated module exports/loader to include GUI scripts. - Refactored many user-facing strings to use localization resources (en-US / es-ES) and improved wording/consistency.
- Updated diagram rendering to better respect configured theme colors (passing background colors through diagram label/table helpers), plus version/dependency bumps and doc updates.
Reviewed changes
Copilot reviewed 53 out of 54 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| copilot-instructions.md | Removed repository-specific Copilot instruction document. |
| README.md | Added GUI usage section and screenshot reference. |
| CHANGELOG.md | Added v1.0.0 release notes. |
| AsBuiltReport.Microsoft.AD/Src/Public/Invoke-AsBuiltReport.Microsoft.AD.ps1 | Version bump and localized/normalized console output formatting. |
| AsBuiltReport.Microsoft.AD/Src/Private/Gui/Start-AsBuiltReportMSAD.ps1 | New GUI launcher implementation (GliderUI/Avalonia). |
| AsBuiltReport.Microsoft.AD/Src/Private/Report/* | Large sweep converting hardcoded messages/table names to $reportTranslate keys and improving error/context strings. |
| AsBuiltReport.Microsoft.AD/Src/Private/Diagram/* | Theme-related adjustments by passing background colors into diagram label/table builders. |
| AsBuiltReport.Microsoft.AD/Language/en-US/MicrosoftAD.psd1 | Added/updated translation keys used by the refactor. |
| AsBuiltReport.Microsoft.AD/Language/es-ES/MicrosoftAD.psd1 | Added/updated Spanish translation keys used by the refactor. |
| AsBuiltReport.Microsoft.AD/AsBuiltReport.Microsoft.AD.psm1 | Added dot-sourcing of Src/Private/Gui and exporting GUI functions. |
| AsBuiltReport.Microsoft.AD/AsBuiltReport.Microsoft.AD.psd1 | Version bump, dependency bumps, and exported function list updated to include GUI. |
| AsBuiltReport.Microsoft.AD/AsBuiltReport.Microsoft.AD.json | Removed CA HealthCheck defaults from the config. |
|
|
||
| **Beta** versions of the GUI may contain bugs and issues. If you encounter any problems while using the GUI, please report them on the project's GitHub Issues page. | ||
|
|
||
|  |
There was a problem hiding this comment.
The Markdown image uses a non-descriptive alt text (alt text). For accessibility and better rendering in non-image contexts, use a meaningful description (e.g., what the screenshot shows).
| try { | ||
| if ($DomainInfo = Invoke-CommandWithTimeout -Session $TempPssSession -ScriptBlock { Get-ADDomain -Identity $using:Domain }) { | ||
| Write-Host " - Collecting Domain information from $Domain." | ||
| Write-Host ([string]::Format(" - $($reportTranslate.GetAbrDomainSection.CollectingDomain)", $Domain)) |
There was a problem hiding this comment.
This report section uses Write-Host for progress output. Write-Host bypasses PScribo/AsBuiltReport logging and can’t be suppressed or redirected consistently; use Write-PScriboMessage (or Write-Information if intentional) to align with the rest of the module’s logging behavior (e.g., Src/Public/Invoke-AsBuiltReport.Microsoft.AD.ps1 uses Write-Host only at the entry point).
| if (-not (Get-Module -ListAvailable -Name GliderUI)) { | ||
| Write-Host 'GliderUI not found — installing from PSGallery…' -ForegroundColor Cyan | ||
| Install-PSResource -Name GliderUI -Version $requiredGliderUIVersion -Scope CurrentUser -TrustRepository | ||
| } |
There was a problem hiding this comment.
The GUI bootstrapping auto-installs GliderUI from PSGallery and uses -TrustRepository, which implicitly trusts the repository without user confirmation. This is a supply-chain risk for an interactive tool; consider prompting the user and/or removing -TrustRepository (or validating source/signatures) so installs remain explicit and auditable.
| $requiredGliderUIVersion = [version]'0.2.0' | ||
|
|
||
| if (-not (Get-Module -ListAvailable -Name GliderUI)) { | ||
| Write-Host 'GliderUI not found — installing from PSGallery…' -ForegroundColor Cyan |
There was a problem hiding this comment.
This private GUI function uses Write-Host for status/error output. For consistency with the module’s logging approach, prefer Write-PScriboMessage/Write-Information (and Write-Error for errors) rather than Write-Host, which can’t be captured or suppressed reliably.
| Write-Host 'GliderUI not found — installing from PSGallery…' -ForegroundColor Cyan | |
| Write-PScriboMessage -Message 'GliderUI not found — installing from PSGallery…' |
|
|
||
| $TableParams = @{ | ||
| Name = "$($reportTranslate.GetAbrADSite.ConnectionObjects) - $($ForestInfo)" | ||
| Name = "$($reportTranslate.GetAbrADSite.ConnectionObjects)- $($ForestInfo)" |
There was a problem hiding this comment.
Table name formatting appears to have lost the space before the hyphen ("...ConnectionObjects)- ..."). This will render oddly in report output; it likely should match the common " - " pattern used elsewhere.
| $List.Add($reportTranslate.GetAbrADSite.DescBP) | ||
| } | ||
| if ($OutObj | Where-Object { $_.$($reportTranslate.GetAbrADSite.Sites) -eq $reportTranslate.GetAbrADSite.NoSiteAssigned }) { | ||
| if ($OutObj | Where-Object { $_.$($reportTranslate.GetAbrADSite.Sites) -eq $reportTranslate.GetAbrADSite.NoSiteAssigned }){ |
There was a problem hiding this comment.
Missing space before the opening brace in the if statement (...NoSiteAssigned }){) breaks consistent whitespace and may trigger PSScriptAnalyzer formatting rules. Add the space before { to keep style consistent.
[1.0.0] - 2026-04-24
Added
🔃 Changed
This includes improved grammar, punctuation, and readability across various best practice descriptions related to Active Directory configurations
1.0.01.0.60.3.1🐛 Fixed