Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
39a9ed8
feat: Update module version to 1.0.1 and add Get-AbrAdLog cmdlet for …
rebelinux May 13, 2026
5af960b
chore: Update module versions and adjust icon property in module mani…
rebelinux May 15, 2026
f89efbd
fix: Add validation for ADSystem before accessing RootDomain to preve…
rebelinux May 15, 2026
ed824bc
fix: Add success message logging for completed commands in Invoke-Com…
rebelinux May 15, 2026
7a626d0
fix: Update localization files to include NoData messages and improve…
rebelinux May 15, 2026
f48701d
fix: Update changelog to include recent fixes and enhancements
rebelinux May 15, 2026
d4cd3a4
docs: Add Log Collection section to README with usage example for Get…
rebelinux May 20, 2026
f983175
Merge branch 'AsBuiltReport:dev' into dev
rebelinux May 20, 2026
95965ee
Merge pull request #254 from rebelinux/dev
rebelinux May 20, 2026
82d8512
Fix [255](https://github.com/AsBuiltReport/AsBuiltReport.Microsoft.AD…
rebelinux Jun 18, 2026
74622d1
Fix Requirements
rebelinux Jun 18, 2026
5e131d9
Merge pull request #257 from rebelinux/dev
rebelinux Jun 18, 2026
5eb28fa
Misc Fix
rebelinux Jun 18, 2026
69706b7
Fix Misc text error
rebelinux Jun 19, 2026
3eb5169
Merge branch 'AsBuiltReport:dev' into dev
rebelinux Jun 19, 2026
46ca061
Update SECURITY.md
rebelinux Jun 19, 2026
baac2ec
Update SECURITY.md
rebelinux Jun 19, 2026
3fde495
Update CONTRIBUTING.md
rebelinux Jun 19, 2026
2f1edf3
Update CODE_OF_CONDUCT.md
rebelinux Jun 19, 2026
dd4ceb8
Update CONTRIBUTING.md
rebelinux Jun 19, 2026
46d7448
Merge pull request #258 from rebelinux/dev
rebelinux Jun 19, 2026
f25e1b0
Fix non-printable ASCII characters from a string
rebelinux Jun 19, 2026
b8f0b91
Set an option to enable/disable the main logo of the diagrams
rebelinux Jun 20, 2026
34f8c65
Update github actions to latest releases
rebelinux Jun 20, 2026
5a6e438
Merge branch 'AsBuiltReport:dev' into dev
rebelinux Jun 22, 2026
a66ca0e
Increase file version
rebelinux Jun 22, 2026
1ebcd44
Update Changelog release date
rebelinux Jun 22, 2026
87cea39
Merge pull request #261 from rebelinux/dev
rebelinux Jun 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/PSScriptAnalyzer.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ jobs:
name: Run PSScriptAnalyzer
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- name: lint
uses: alagoutte/github-action-psscriptanalyzer@master
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/Pester.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:

steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Set up PowerShell Gallery
run: |
Expand Down Expand Up @@ -68,7 +68,7 @@ jobs:

- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: test-results-${{ matrix.os }}-${{ matrix.shell }}
path: Tests/testResults.xml
Expand Down
54 changes: 27 additions & 27 deletions .github/workflows/Release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ jobs:
publish-to-gallery:
runs-on: windows-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- name: Set PSRepository to Trusted for PowerShell Gallery
shell: pwsh
run: |
Expand All @@ -33,29 +33,29 @@ jobs:
shell: pwsh
run: |
Publish-Module -Path ./AsBuiltReport.Microsoft.AD -NuGetApiKey ${{ secrets.PSGALLERY_API_KEY }} -Verbose
tweet:
needs: publish-to-gallery
runs-on: ubuntu-latest
steps:
- uses: Eomm/why-don-t-you-tweet@v2
# We don't want to tweet if the repository is not a public one
if: ${{ !github.event.repository.private }}
with:
# GitHub event payload
# https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#release
tweet-message: "[New Release] ${{ github.event.repository.name }} ${{ github.event.release.tag_name }}! Check out what's new! ${{ github.event.release.html_url }} #Microsoft #ActiveDirectory #AsBuiltReport #PowerShell #MicrosoftMVP #MVPBuzz #cybersecurity #infosec"
env:
TWITTER_CONSUMER_API_KEY: ${{ secrets.TWITTER_CONSUMER_API_KEY }}
TWITTER_CONSUMER_API_SECRET: ${{ secrets.TWITTER_CONSUMER_API_SECRET }}
TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }}
TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
bsky-post:
needs: publish-to-gallery
runs-on: ubuntu-latest
steps:
- uses: zentered/bluesky-post-action@v0.4.0
with:
post: "[New Release] ${{ github.event.repository.name }} ${{ github.event.release.tag_name }}! Check out what's new! ${{ github.event.release.html_url }} #Microsoft #ActiveDirectory #AsBuiltReport #PowerShell #MicrosoftMVP #MVPBuzz #cybersecurity #infosec"
env:
BSKY_IDENTIFIER: ${{ secrets.BSKY_IDENTIFIER }}
BSKY_PASSWORD: ${{ secrets.BSKY_PASSWORD }}
# tweet:
# needs: publish-to-gallery
# runs-on: ubuntu-latest
# steps:
# - uses: Eomm/why-don-t-you-tweet@v2
# # We don't want to tweet if the repository is not a public one
# if: ${{ !github.event.repository.private }}
# with:
# # GitHub event payload
# # https://docs.github.com/en/developers/webhooks-and-events/webhooks/webhook-events-and-payloads#release
# tweet-message: "[New Release] ${{ github.event.repository.name }} ${{ github.event.release.tag_name }}! Check out what's new! ${{ github.event.release.html_url }} #Microsoft #ActiveDirectory #AsBuiltReport #PowerShell #MicrosoftMVP #MVPBuzz #cybersecurity #infosec"
# env:
# TWITTER_CONSUMER_API_KEY: ${{ secrets.TWITTER_CONSUMER_API_KEY }}
# TWITTER_CONSUMER_API_SECRET: ${{ secrets.TWITTER_CONSUMER_API_SECRET }}
# TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }}
# TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
# bsky-post:
# needs: publish-to-gallery
# runs-on: ubuntu-latest
# steps:
# - uses: zentered/bluesky-post-action@v0.4.0
# with:
# post: "[New Release] ${{ github.event.repository.name }} ${{ github.event.release.tag_name }}! Check out what's new! ${{ github.event.release.html_url }} #Microsoft #ActiveDirectory #AsBuiltReport #PowerShell #MicrosoftMVP #MVPBuzz #cybersecurity #infosec"
# env:
# BSKY_IDENTIFIER: ${{ secrets.BSKY_IDENTIFIER }}
# BSKY_PASSWORD: ${{ secrets.BSKY_PASSWORD }}
3 changes: 2 additions & 1 deletion AsBuiltReport.Microsoft.AD/AsBuiltReport.Microsoft.AD.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@
"SignatureAuthorName": "",
"SignatureCompanyName": "",
"JobsTimeOut": 900,
"DCStatusPingCount": 2
"DCStatusPingCount": 2,
"DisableDiagramMainLogo": false
},
"InfoLevel": {
"_comment_": "0 = Disabled, 1 = Enabled, 2 = Adv Summary, 3 = Detailed",
Expand Down
12 changes: 6 additions & 6 deletions AsBuiltReport.Microsoft.AD/AsBuiltReport.Microsoft.AD.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
RootModule = 'AsBuiltReport.Microsoft.AD.psm1'

# Version number of this module.
ModuleVersion = '1.0.0'
ModuleVersion = '1.0.1'

# Supported PSEditions
CompatiblePSEditions = @('Core')
Expand Down Expand Up @@ -54,15 +54,15 @@
RequiredModules = @(
@{
ModuleName = 'AsBuiltReport.Core';
ModuleVersion = '1.6.2'
ModuleVersion = '1.6.4'
},
@{
ModuleName = 'AsBuiltReport.Chart';
ModuleVersion = '0.3.1'
ModuleVersion = '0.3.3'
},
@{
ModuleName = 'AsBuiltReport.Diagram';
ModuleVersion = '1.0.7'
ModuleVersion = '1.0.8'
}
)

Expand All @@ -82,7 +82,7 @@
# NestedModules = @()

# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
FunctionsToExport = @('Invoke-AsBuiltReport.Microsoft.AD', 'Start-AsBuiltReportMSAD')
FunctionsToExport = @('Invoke-AsBuiltReport.Microsoft.AD', 'Start-AsBuiltReportMSAD', 'Get-AbrAdLog')

# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
# CmdletsToExport = '*'
Expand Down Expand Up @@ -117,7 +117,7 @@
ProjectUri = 'https://github.com/AsBuiltReport/AsBuiltReport.Microsoft.AD'

# A URL to an icon representing this module.
IconUri = 'https://github.com/AsBuiltReport.png'
PackageIcon = 'https://github.com/AsBuiltReport.png'

# ReleaseNotes of this module
ReleaseNotes = 'https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.Microsoft.AD/master/CHANGELOG.md'
Expand Down
5 changes: 3 additions & 2 deletions AsBuiltReport.Microsoft.AD/Language/en-US/MicrosoftAD.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -37,11 +37,12 @@
DiagramExportError = Unable to export the diagram {0}: {1}
ClearPSSession = Clearing PSSession with ID {0}
ClearCIMSession = Clearing CIM session with ID {0}
FinishedReport = - Finished generating the report for the forest {0}:
FinishedReport = - Finished generating the report for the forest: {0}
SystemsUnreachable = The following systems could not be contacted:
DomainControllers = Domain Controllers
Domains = Domains
'@
NoData = No data returned (Get-ADForest returned $null)
RunAsAdministrator = Please run the report with Run As Administrator priviledges.

# InvokeAsBuiltReportMicrosoftAD
ConvertToTextYN = ConvertFrom-StringData @'
Expand Down
183 changes: 2 additions & 181 deletions AsBuiltReport.Microsoft.AD/Language/es-ES/MicrosoftAD.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
SystemsUnreachable = Los siguientes sistemas no pudieron ser contactados:
DomainControllers = Controladores de Dominio
Domains = Dominios
NoData = No hay datos disponibles (Get-ADForest devolvió $null)
RunAsAdministrator = Please run the report with Run As Administrator priviledges.
'@

# ConvertToTextYN
Expand Down Expand Up @@ -610,187 +612,6 @@
DomainNotInForest = El dominio del PC actual {0} no está en la lista de dominio del bosque {1}. Deshabilitando sección de Autoridad de Certificación
'@

GetAbrADCASummary = ConvertFrom-StringData @'
Collecting = Recopilando información de Autoridad de Certificación.
CAName = Nombre de CA
ServerName = Nombre del Servidor
Type = Tipo
Status = Estado
TableName = Autoridad de Certificación
'@

GetAbrADCARoot = ConvertFrom-StringData @'
Collecting = Recopilando información de Autoridad de Certificación de AD Por Dominio.
Heading = Autoridad de Certificación Raíz Empresarial
Paragraph = La siguiente sección proporciona información detallada sobre la configuración y estado operacional de la Autoridad de Certificación (CA) Raíz Empresarial.
CAName = Nombre de CA
ServerName = Nombre del Servidor
Type = Tipo
ConfigString = Cadena de Configuración
OperatingSystem = Sistema Operativo
Certificate = Certificado
Auditing = Auditoría
Status = Estado
AuditingNotConfigured = No Configurado
Auditing1 = Iniciar y detener Servicios de Certificados de Active Directory (1)
Auditing2 = Respaldar y restaurar la base de datos de CA (2)
Auditing4 = Emitir y gestionar solicitudes de certificados (4)
Auditing8 = Revocar certificados y publicar CRL (8)
Auditing16 = Cambiar configuración de seguridad de CA (16)
Auditing32 = Cambiar configuración de seguridad de CA (32)
Auditing64 = Cambiar configuración de CA (64)
AuditingFull = Auditoría completamente habilitada (127)
AuditingUnknown = Desconocido
TableName = CA Raíz Empresarial
HealthCheck = Verificación de Salud:
SecurityBestPractice = Mejor Práctica de Seguridad:
AuditingBP = La auditoría debe estar completamente habilitada para la Autoridad de Certificación para asegurar que todos los eventos relevantes se registren para propósitos de monitoreo de seguridad y respuesta a incidentes. Esto incluye eventos relacionados con emisión de certificados, revocación y cambios en la configuración de CA.
'@

GetAbrADCASubordinate = ConvertFrom-StringData @'
Collecting = Recopilando información de Autoridad de Certificación de AD Por Dominio.
Heading = Autoridad de Certificación Subordinada Empresarial
Paragraph = La siguiente sección proporciona información detallada sobre Autoridades de Certificación Subordinadas Empresariales dentro del dominio.
CAName = Nombre de CA
ServerName = Nombre del Servidor
Type = Tipo
ConfigString = Cadena de Configuración
OperatingSystem = Sistema Operativo
Certificate = Certificado
Auditing = Auditoría
Status = Estado
AuditingNotConfigured = No Configurado
Auditing1 = Iniciar y detener Servicios de Certificados de Active Directory (1)
Auditing2 = Respaldar y restaurar la base de datos de CA (2)
Auditing4 = Emitir y gestionar solicitudes de certificados (4)
Auditing8 = Revocar certificados y publicar CRL (8)
Auditing16 = Cambiar configuración de seguridad de CA (16)
Auditing32 = Cambiar configuración de seguridad de CA (32)
Auditing64 = Cambiar configuración de CA (64)
AuditingFull = Auditoría completamente habilitada (127)
AuditingUnknown = Desconocido
TableName = CA Subordinada Empresarial
HealthCheck = Verificación de Salud:
SecurityBestPractice = Mejor Práctica de Seguridad:
AuditingBP = La auditoría debe estar completamente habilitada para la Autoridad de Certificación para asegurar que todos los eventos relevantes se registren para propósitos de monitoreo de seguridad y respuesta a incidentes. Esto incluye eventos relacionados con emisión de certificados, revocación y cambios en la configuración de CA.
'@

GetAbrADCASecurity = ConvertFrom-StringData @'
Collecting = Recopilando información de Seguridad de Autoridad de Certificación de AD.
CertValidityPeriod = Período de Validez del Certificado
CertValidityPeriodParagraph = La siguiente sección proporciona detalles sobre la configuración del período de validez del certificado para la Autoridad de Certificación.
CertValidityPeriodTable = Período de Validez del Certificado
CAName = Nombre de CA
ServerName = Nombre del Servidor
ValidityPeriod = Período de Validez
ACL = Lista de Control de Acceso (ACL)
ACLTable = Lista de Control de Acceso
DCName = Nombre del DC
Owner = Propietario
Group = Grupo
AccessRights = Derechos de Acceso
AccessRightsTable = Derechos de Acceso
Identity = Identidad
AccessControlType = Tipo de Control de Acceso
Rights = Derechos
'@

GetAbrADCACryptographyConfig = ConvertFrom-StringData @'
Collecting = Recopilando información de Configuración de Criptografía de CA de Autoridad de Certificación.
Heading = Configuración de Criptografía
Paragraph = La siguiente sección proporciona información detallada sobre la configuración de criptografía de la Autoridad de Certificación, incluyendo algoritmos, proveedores y especificaciones de clave.
CAName = Nombre de CA
ServerName = Nombre del Servidor
PublicKeyAlgorithm = Algoritmo de Clave Pública
HashingAlgorithm = Algoritmo de Hash
ProviderName = Nombre del Proveedor
AlternateSignatureAlgorithm = Algoritmo de Firma Alternativa
ProviderIsCNG = El Proveedor es CNG
TableName = Configuración de Criptografía
'@

GetAbrADCAAIA = ConvertFrom-StringData @'
Collecting = Recopilando información de Acceso a Información de Autoridad de CA de AD en {0}.
Heading = Acceso a Información de Autoridad (AIA)
Paragraph = La siguiente sección proporciona la configuración de Acceso a Información de Autoridad (AIA) para la Autoridad de Certificación, que especifica dónde se pueden recuperar certificados e información de revocación de certificados.
RegURI = URI de Registro
ConfigURI = URI de Configuración
Flags = Banderas
ServerPublish = Publicación del Servidor
IncludeToExtension = Incluir en Extensión
OCSP = OCSP
TableName = Acceso a Información de Autoridad
'@

GetAbrADCACRLSetting = ConvertFrom-StringData @'
CollectingVP = Recopilando información de Período de Validez de CRL de CA de AD en {0}.
CollectingCDP = Recopilando información de Punto de Distribución de CRL de CA de AD en {0}.
CollectingHealth = Recopilando Estado de Salud de AIA y CDP desde {0}.
CRLHeading = Lista de Revocación de Certificados (CRL)
CRLParagraph = La siguiente sección proporciona información detallada sobre la configuración de distribución de Lista de Revocación de Certificados (CRL) y estado de salud para la Autoridad de Certificación.
CRLValidityPeriod = Período de Validez de CRL
CRLValidityPeriodTable = Período de Validez de CRL
CAName = Nombre de CA
BaseCRL = CRL Base
BaseCRLOverlap = Superposición de CRL Base
DeltaCRL = CRL Delta
DeltaCRLOverlap = Superposición de CRL Delta
ServerName = Nombre del Servidor
CRLFlags = Banderas de CRL
CRLFlagsSettings = Configuración de Banderas de CRL
CRLFlagsTable = Banderas de CRL
CRLDistributionPoint = Punto de Distribución de CRL
CRLDistributionPointParagraph = La siguiente sección proporciona información detallada sobre los Puntos de Distribución de Lista de Revocación de Certificados (CRL) configurados en la Autoridad de Certificación, incluyendo ubicaciones URI y configuración de publicación.
RegURI = URI de Registro
ConfigURI = URI de Configuración
UrlScheme = Esquema de URL
ProjectedURI = URI Proyectado
Flags = Banderas
CRLPublish = Publicación de CRL
DeltaCRLPublish = Publicación de CRL Delta
AddToCertCDP = Agregar a CDP de Certificado
AddToFreshestCRL = Agregar a CRL Más Reciente
AddToCrlCDP = Agregar a CDP de CRL
CRLDistributionPointTable = Punto de Distribución de CRL
AIACDPHealth = Estado de Salud de AIA y CDP
AIACDPHealthParagraph = La siguiente sección proporciona una evaluación de estado de salud de la Autoridad de Certificación verificando el estado de la cadena de certificados de CA y validando la accesibilidad de todas las URLs de Lista de Revocación de Certificados (CDP) y Acceso a Información de Autoridad (AIA) para cada certificado en la cadena.
Childs = Secundarios
Health = Salud
OK = OK
CAHealthTable = Salud de Autoridad de Certificación
'@

GetAbrADCATemplate = ConvertFrom-StringData @'
Collecting = Recopilando información de Plantillas de Autoridad de Certificación de AD desde {0}.
Heading = Resumen de Plantilla de Certificado
Paragraph = La siguiente sección lista las plantillas de certificado asignadas a la Autoridad de Certificación. La CA solo puede emitir certificados basados en estas plantillas asignadas.
TemplateName = Nombre de Plantilla
SchemaVersion = Versión del Esquema
SupportedCA = CA Soportada
Autoenrollment = Inscripción Automática
IssuedTemplateTable = Plantilla de Certificado Emitida
IssuedTemplateACLs = ACL de Plantilla de Certificado Emitida
IssuedTemplateACLsParagraph = La siguiente sección proporciona la Lista de Control de Acceso (ACL) para plantillas de certificado asignadas a la Autoridad de Certificación.
Identity = Identidad
AccessControlType = Tipo de Control de Acceso
Rights = Derechos
Inherited = Heredado
TemplateACLTable = ACL de Plantilla de Certificado
ADTemplates = Plantilla de Certificado en Active Directory
ADTemplatesParagraph = La siguiente sección lista todas las plantillas de certificado registradas en Active Directory, independientemente de si están asignadas a alguna Autoridad de Certificación.
ADTemplatesTable = Plantilla de Certificado en AD
'@

GetAbrADCAKeyRecoveryAgent = ConvertFrom-StringData @'
Collecting = Recopilando información de Certificado de Agente de Recuperación de Clave de Autoridad de Certificación de AD.
Heading = Certificado de Agente de Recuperación de Clave
Paragraph = La siguiente sección proporciona detalles sobre el certificado del Agente de Recuperación de Clave, que encripta las claves privadas de certificados de usuarios para almacenamiento en la base de datos de CA. Si un usuario pierde acceso a su clave privada del certificado, el Agente de Recuperación de Clave puede recuperarla cuando se configuró el archivado de clave para el certificado.
CAName = Nombre de CA
ServerName = Nombre del Servidor
Certificate = Certificado
TableName = Certificado de Agente de Recuperación de Clave
'@

# Get-AbrDomainSection
GetAbrDomainSection = ConvertFrom-StringData @'
Collecting = Recopilando información de Dominio desde {0}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,10 @@ function Get-AbrDiagrammer {
$DiagramParams.Add('CompanyName', $Options.SignatureCompanyName)
}

if ($Options.DisableDiagramMainLogo) {
$DiagramParams.Add('DisableMainDiagramLogo', $True)
}

try {
foreach ($Format in $DiagramFormat) {
if ($Format -eq 'base64') {
Expand Down
Loading
Loading