From be3240317ec5d96bbc7442bf4a3de723ce9500a8 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 12 Oct 2025 13:46:16 -0400 Subject: [PATCH 01/23] Update README with PowerShell module installation Added installation instructions for AsBuiltReport.Core module. --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6b74745..d0c5516 100644 --- a/README.md +++ b/README.md @@ -106,6 +106,9 @@ Local user privileges are required to run this report. ### PowerShell ```powershell +# Install AsBuiltReport.Core 1.5.0-RC1 +Install-Module AsBuiltReport.Core -Repository PSGallery -AllowPrerelease + # Install install-module AsBuiltReport.System.Resources -Force @@ -212,4 +215,4 @@ PS C:\> New-AsBuiltReport -Report System.Resources -Target localhost -Username ' # Generate a System Resources As Built Report for 'localhost'. Export report to HTML & DOCX formats. Use default report style. Save reports to 'C:\Users\Jon\Documents' and set the report language to Spanish. PS C:\> New-AsBuiltReport -Report System.Resources -Target localhost -Username 'User' -Password 'P@ssw0rd' -Format Html,Word -OutputFolderPath 'C:\Users\Jon\Documents' -ReportLanguage es-ES -``` \ No newline at end of file +``` From faa47c2c480aa699f16c58233d191dcae9eed201 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 11:22:19 -0400 Subject: [PATCH 02/23] Add no_icon.png to icons directory - Introduced a new PNG file named no_icon.png, which serves as a placeholder icon. - The image includes metadata generated by GIMP, ensuring proper attribution and versioning. --- AsBuiltReport.System.Resources.json | 18 ++- AsBuiltReport.System.Resources.psd1 | 4 +- CHANGELOG.md | 8 ++ Language/ar-SA/SystemResources.psd1 | 13 +- Language/cs-CZ/SystemResources.psd1 | 2 +- Language/da-DK/SystemResources.psd1 | 14 +- Language/de-DE/SystemResources.psd1 | 14 +- Language/el-GR/SystemResources.psd1 | 14 +- Language/en-GB/SystemResources.psd1 | 2 +- Language/en-US/SystemResources.psd1 | 15 +- Language/es-ES/SystemResources.psd1 | 14 +- Language/fi-FI/SystemResources.psd1 | 14 +- Language/fr-FR/SystemResources.psd1 | 2 +- Language/he-IL/SystemResources.psd1 | 2 +- Language/hi-IN/SystemResources.psd1 | 2 +- Language/hu-HU/SystemResources.psd1 | 2 +- Language/it-IT/SystemResources.psd1 | 2 +- Language/nb-NO/SystemResources.psd1 | 2 +- Language/nl-NL/SystemResources.psd1 | 2 +- Language/pl-PL/SystemResources.psd1 | 2 +- Language/pt-PT/SystemResources.psd1 | 2 +- Language/sv-SE/SystemResources.psd1 | 2 +- Language/th-TH/SystemResources.psd1 | 2 +- Language/tr-TR/SystemResources.psd1 | 2 +- Language/vi-VN/SystemResources.psd1 | 2 +- Language/zh-Hans/SystemResources.psd1 | 2 +- Src/Private/Export-AbrDiagram.ps1 | 130 ++++++++++++++++++ Src/Private/Get-AbrProcessDiagram.ps1 | 69 ++++++++++ Src/Private/Get-AbrProcessInfo.ps1 | 2 +- .../Invoke-AsBuiltReport.System.Resources.ps1 | 21 ++- icons/AsBuiltReport_Logo.png | Bin 0 -> 5154 bytes icons/AsBuiltReport_Signature.png | Bin 0 -> 12338 bytes icons/no_icon.png | Bin 0 -> 8183 bytes 33 files changed, 345 insertions(+), 37 deletions(-) create mode 100644 Src/Private/Export-AbrDiagram.ps1 create mode 100644 Src/Private/Get-AbrProcessDiagram.ps1 create mode 100644 icons/AsBuiltReport_Logo.png create mode 100644 icons/AsBuiltReport_Signature.png create mode 100644 icons/no_icon.png diff --git a/AsBuiltReport.System.Resources.json b/AsBuiltReport.System.Resources.json index 322c89c..53ddc3d 100644 --- a/AsBuiltReport.System.Resources.json +++ b/AsBuiltReport.System.Resources.json @@ -9,7 +9,21 @@ "ShowHeaderFooter": true, "ShowTableCaptions": true }, - "Options": {}, + "Options": { + "EnableDiagrams": true, + "EnableDiagramDebug": false, + "EnableDiagramMainLogo": false, + "DiagramTheme": "White", + "DiagramWaterMark": "", + "ExportDiagrams": false, + "ExportDiagramsFormat": [ + "png" + ], + "EnableDiagramSignature": false, + "DiagramColumnSize": 4, + "SignatureAuthorName": "", + "SignatureCompanyName": "" + }, "InfoLevel": { "_comment_": "Please refer to the AsBuiltReport project contributing guide for information about how to define InfoLevels.", "_comment_": "0 = Disabled, 1 = Enabled / Summary, 2 = Adv Summary, 3 = Detailed, 4 = Adv Detailed, 5 = Comprehensive", @@ -17,7 +31,7 @@ "TimeZone": 2, "Uptime": 2, "PSHost": 2, - "ProcessInfo": 1 + "ProcessInfo": 2 }, "HealthCheck": {} } \ No newline at end of file diff --git a/AsBuiltReport.System.Resources.psd1 b/AsBuiltReport.System.Resources.psd1 index 8642e8e..4290eef 100644 --- a/AsBuiltReport.System.Resources.psd1 +++ b/AsBuiltReport.System.Resources.psd1 @@ -12,7 +12,7 @@ RootModule = 'AsBuiltReport.System.Resources.psm1' # Version number of this module. - ModuleVersion = '0.1.1' + ModuleVersion = '0.1.2' # Supported PSEditions # CompatiblePSEditions = @() @@ -55,7 +55,7 @@ RequiredModules = @( @{ ModuleName = 'AsBuiltReport.Core'; - ModuleVersion = '1.4.3' + ModuleVersion = '1.6.2' } ) diff --git a/CHANGELOG.md b/CHANGELOG.md index 07bc154..dde6f14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.2] - Unreleased + +### Added + +- Add initial support for diagrams using the Diagrammer module + - Add Export-AbrDiagram function to handle diagram exports + - Generate a Process Hierarchy Diagram in Invoke-AsBuiltReport.System.Resources + ## [0.1.1] - 2025-10-11 ### Added diff --git a/Language/ar-SA/SystemResources.psd1 b/Language/ar-SA/SystemResources.psd1 index 7d85c96..b89e772 100644 --- a/Language/ar-SA/SystemResources.psd1 +++ b/Language/ar-SA/SystemResources.psd1 @@ -1,5 +1,10 @@ # culture = 'ar-SA' @{ + # Invoke-AsBuiltReport.System.Resources + InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' + MainDiagramLabel = مخطط تسلسل العمليات + Unable = غير قادر على إنشاء مخطط تسلسل العمليات. +'@ # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' @@ -17,7 +22,7 @@ InfoLevel = {0} تم تعيين InfoLevel على {1}. Collecting = جمع معلومات عمليات النظام. ParagraphDetail = تفصل الأقسام التالية عمليات النظام. - ParagraphSummary = يلخص الجدول التالي أهم 10 عمليات للنظام. لمزيد من المعلومات التفصيلية، يرجى تعيين قيمة InfoLevel.ProcessInfo على 2 في ملف تكوين التقرير الخاص بك. مرتبة حسب استخدام CPU. + ParagraphSummary = يلخص الجدول التالي أهم 5 عمليات للنظام. لمزيد من المعلومات التفصيلية، يرجى تعيين قيمة InfoLevel.ProcessInfo على 2 في ملف تكوين التقرير الخاص بك. مرتبة حسب استخدام CPU. Heading = العمليات Name = الاسم @@ -75,5 +80,11 @@ Yes = نعم No = لا Unknown = غير معروف +'@ + # Get-AbrProcessDiagram + GetAbrProcessDiagram = ConvertFrom-StringData @' + InfoLevel = {0} تم تعيين InfoLevel على {1}. + Generating = جاري إنشاء مخطط تسلسل العمليات. + Label = مخطط تسلسل العمليات '@ } diff --git a/Language/cs-CZ/SystemResources.psd1 b/Language/cs-CZ/SystemResources.psd1 index cd0b13b..a47b34c 100644 --- a/Language/cs-CZ/SystemResources.psd1 +++ b/Language/cs-CZ/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel nastaven na {1}. Collecting = Shromažďování informací o systémových procesech. ParagraphDetail = Následující části podrobně popisují systémové procesy. - ParagraphSummary = Následující tabulka shrnuje top 10 systémových procesů. Pro podrobnější informace nastavte hodnotu InfoLevel.ProcessInfo na 2 v konfiguračním souboru sestavy. Seřazeno podle využití CPU. + ParagraphSummary = Následující tabulka shrnuje top 5 systémových procesů. Pro podrobnější informace nastavte hodnotu InfoLevel.ProcessInfo na 2 v konfiguračním souboru sestavy. Seřazeno podle využití CPU. Heading = Procesy Name = Název diff --git a/Language/da-DK/SystemResources.psd1 b/Language/da-DK/SystemResources.psd1 index 7580376..d6b318d 100644 --- a/Language/da-DK/SystemResources.psd1 +++ b/Language/da-DK/SystemResources.psd1 @@ -1,6 +1,10 @@ # culture = 'da-DK' @{ - + # Invoke-AsBuiltReport.System.Resources + InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' + MainDiagramLabel = Proceshierarki Diagram + Unable = Kan ikke generere Proceshierarki Diagram. +'@ # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' InfoLevel = {0} InfoLevel indstillet til {1}. @@ -17,7 +21,7 @@ InfoLevel = {0} InfoLevel indstillet til {1}. Collecting = Indsamler information om systemprocesser. ParagraphDetail = Følgende afsnit beskriver systemprocesserne. - ParagraphSummary = Følgende tabel opsummerer de top 10 systemprocesser. For mere detaljeret information skal du indstille InfoLevel.ProcessInfo værdien til 2 i din rapportkonfigurationsfil. Sorteret efter CPU-brug. + ParagraphSummary = Følgende tabel opsummerer de top 5 systemprocesser. For mere detaljeret information skal du indstille InfoLevel.ProcessInfo værdien til 2 i din rapportkonfigurationsfil. Sorteret efter CPU-brug. Heading = Processer Name = Navn @@ -75,5 +79,11 @@ Yes = Ja No = Nej Unknown = Ukendt +'@ + # Get-AbrProcessDiagram + GetAbrProcessDiagram = ConvertFrom-StringData @' + InfoLevel = {0} InfoLevel indstillet til {1}. + Generating = Genererer procesdiagram. + Label = Proceshierarki '@ } diff --git a/Language/de-DE/SystemResources.psd1 b/Language/de-DE/SystemResources.psd1 index 71f4574..8d7582b 100644 --- a/Language/de-DE/SystemResources.psd1 +++ b/Language/de-DE/SystemResources.psd1 @@ -1,6 +1,10 @@ # culture = 'de-DE' @{ - + # Invoke-AsBuiltReport.System.Resources + InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' + MainDiagramLabel = Prozesshierarchie Diagramm + Unable = Das Prozesshierarchie Diagramm kann nicht generiert werden. +'@ # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' InfoLevel = {0} InfoLevel auf {1} gesetzt. @@ -17,7 +21,7 @@ InfoLevel = {0} InfoLevel auf {1} gesetzt. Collecting = Sammeln von Systemprozessinformationen. ParagraphDetail = Die folgenden Abschnitte beschreiben die Systemprozesse. - ParagraphSummary = Die folgende Tabelle fasst die Top 10 Systemprozesse zusammen. Für detailliertere Informationen setzen Sie bitte den Wert InfoLevel.ProcessInfo in Ihrer Berichtskonfigurationsdatei auf 2. Sortiert nach CPU-Auslastung. + ParagraphSummary = Die folgende Tabelle fasst die Top 5 Systemprozesse zusammen. Für detailliertere Informationen setzen Sie bitte den Wert InfoLevel.ProcessInfo in Ihrer Berichtskonfigurationsdatei auf 2. Sortiert nach CPU-Auslastung. Heading = Prozesse Name = Name @@ -75,5 +79,11 @@ Yes = Ja No = Nein Unknown = Unbekannt +'@ + # Get-AbrProcessDiagram + GetAbrProcessDiagram = ConvertFrom-StringData @' + InfoLevel = {0} InfoLevel auf {1} gesetzt. + Generating = Generiere Prozessdiagramm. + Label = Prozesshierarchie '@ } diff --git a/Language/el-GR/SystemResources.psd1 b/Language/el-GR/SystemResources.psd1 index 6568f5b..70622e6 100644 --- a/Language/el-GR/SystemResources.psd1 +++ b/Language/el-GR/SystemResources.psd1 @@ -1,6 +1,10 @@ # culture = 'el-GR' @{ - + # Invoke-AsBuiltReport.System.Resources + InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' + MainDiagramLabel = Διάγραμμα Ιεραρχίας Διαδικασιών + Unable = Δεν είναι δυνατή η δημιουργία του Διαγράμματος Ιεραρχίας Διαδικασιών. +'@ # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' InfoLevel = {0} InfoLevel ορίστηκε σε {1}. @@ -17,7 +21,7 @@ InfoLevel = {0} InfoLevel ορίστηκε σε {1}. Collecting = Συλλογή πληροφοριών διεργασιών συστήματος. ParagraphDetail = Οι ακόλουθες ενότητες περιγράφουν τις διεργασίες του συστήματος. - ParagraphSummary = Ο παρακάτω πίνακας συνοψίζει τις κορυφαίες 10 διεργασίες του συστήματος. Για πιο λεπτομερείς πληροφορίες, ορίστε την τιμή InfoLevel.ProcessInfo σε 2 στο αρχείο διαμόρφωσης της αναφοράς σας. Ταξινομημένες κατά χρήση CPU. + ParagraphSummary = Ο παρακάτω πίνακας συνοψίζει τις κορυφαίες 5 διεργασίες του συστήματος. Για πιο λεπτομερείς πληροφορίες, ορίστε την τιμή InfoLevel.ProcessInfo σε 2 στο αρχείο διαμόρφωσης της αναφοράς σας. Ταξινομημένες κατά χρήση CPU. Heading = Διεργασίες Name = Όνομα @@ -75,5 +79,11 @@ Yes = Ναι No = Όχι Unknown = Άγνωστο +'@ + # Get-AbrProcessDiagram + GetAbrProcessDiagram = ConvertFrom-StringData @' + InfoLevel = {0} InfoLevel ορίστηκε σε {1}. + Generating = Δημιουργία διαγράμματος διεργασιών. + Label = Ιεραρχία διεργασιών '@ } diff --git a/Language/en-GB/SystemResources.psd1 b/Language/en-GB/SystemResources.psd1 index 9f5c208..3716b45 100644 --- a/Language/en-GB/SystemResources.psd1 +++ b/Language/en-GB/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel set at {1}. Collecting = Collecting System Process information. ParagraphDetail = The following sections detail the system process. - ParagraphSummary = The following table summarises the top 10 system process. For more detailed information, please set the InfoLevel.ProcessInfo value to 2 in your report configuration file. Sorted by CPU usage. + ParagraphSummary = The following table summarises the top 5 system process. For more detailed information, please set the InfoLevel.ProcessInfo value to 2 in your report configuration file. Sorted by CPU usage. Heading = Process Name = Name diff --git a/Language/en-US/SystemResources.psd1 b/Language/en-US/SystemResources.psd1 index f828fc4..cc6ead3 100644 --- a/Language/en-US/SystemResources.psd1 +++ b/Language/en-US/SystemResources.psd1 @@ -1,6 +1,10 @@ # culture = 'en-US' @{ - + # Invoke-AsBuiltReport.System.Resources + InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' + MainDiagramLabel = Process Hierarchy Diagram + Unable = Unable to generate the Process Hierarchy Diagram. +'@ # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' InfoLevel = {0} InfoLevel set at {1}. @@ -17,7 +21,7 @@ InfoLevel = {0} InfoLevel set at {1}. Collecting = Collecting System Process information. ParagraphDetail = The following sections detail the system process. - ParagraphSummary = The following table summarises the top 10 system process. For more detailed information, please set the InfoLevel.ProcessInfo value to 2 in your report configuration file. Sorted by CPU usage. + ParagraphSummary = The following table summarises the top 5 system process. For more detailed information, please set the InfoLevel.ProcessInfo value to 2 in your report configuration file. Sorted by CPU usage. Heading = Process Name = Name @@ -76,4 +80,11 @@ No = No Unknown = Unknown '@ + # Get-AbrProcessDiagram + GetAbrProcessDiagram = ConvertFrom-StringData @' + InfoLevel = {0} InfoLevel set at {1}. + Generating = Generating Process Diagram. + Label = Process Hierarchy +'@ + } \ No newline at end of file diff --git a/Language/es-ES/SystemResources.psd1 b/Language/es-ES/SystemResources.psd1 index e59fc4a..5d0f951 100644 --- a/Language/es-ES/SystemResources.psd1 +++ b/Language/es-ES/SystemResources.psd1 @@ -1,6 +1,10 @@ # culture = 'es-ES' @{ - + # Invoke-AsBuiltReport.System.Resources + InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' + MainDiagramLabel = Diagrama de Jerarquía de Procesos + Unable = No se puede generar el Diagrama de Jerarquía de Procesos. +'@ # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' InfoLevel = {0} InfoLevel configurado en {1}. @@ -17,7 +21,7 @@ InfoLevel = {0} InfoLevel configurado en {1}. Collecting = Recopilando información del proceso del sistema. ParagraphDetail = Las siguientes secciones detallan el proceso del sistema. - ParagraphSummary = La siguiente tabla resume los 10 principales procesos del sistema. Para obtener información más detallada, establezca el valor de InfoLevel.ProcessInfo en 2 en su archivo de configuración del informe. Ordenado por uso de CPU. + ParagraphSummary = La siguiente tabla resume los 5 principales procesos del sistema. Para obtener información más detallada, establezca el valor de InfoLevel.ProcessInfo en 2 en su archivo de configuración del informe. Ordenado por uso de CPU. Heading = Procesos Name = Nombre @@ -75,5 +79,11 @@ Yes = Sí No = No Unknown = Desconocido +'@ + # Get-AbrProcessDiagram + GetAbrProcessDiagram = ConvertFrom-StringData @' + InfoLevel = {0} InfoLevel configurado en {1}. + Generating = Generando Diagrama de Procesos. + Label = Jerarquía de Procesos '@ } diff --git a/Language/fi-FI/SystemResources.psd1 b/Language/fi-FI/SystemResources.psd1 index 203934e..e4151d3 100644 --- a/Language/fi-FI/SystemResources.psd1 +++ b/Language/fi-FI/SystemResources.psd1 @@ -1,6 +1,10 @@ # culture = 'fi-FI' @{ - + # Invoke-AsBuiltReport.System.Resources + InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' + MainDiagramLabel = Prosessihierarkia Kaavio + Unable = Prosessihierarkia Kaaviota ei voida luoda. +'@ # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' InfoLevel = {0} InfoLevel asetettu arvoon {1}. @@ -17,7 +21,7 @@ InfoLevel = {0} InfoLevel asetettu arvoon {1}. Collecting = Kerätään järjestelmän prosessitietoja. ParagraphDetail = Seuraavissa osioissa kuvataan järjestelmän prosessit. - ParagraphSummary = Seuraava taulukko tiivistää 10 tärkeintä järjestelmäprosessia. Tarkempia tietoja varten aseta InfoLevel.ProcessInfo-arvo arvoksi 2 raportin asetustiedostossa. Lajiteltu CPU-käytön mukaan. + ParagraphSummary = Seuraava taulukko tiivistää 5 tärkeintä järjestelmäprosessia. Tarkempia tietoja varten aseta InfoLevel.ProcessInfo-arvo arvoksi 2 raportin asetustiedostossa. Lajiteltu CPU-käytön mukaan. Heading = Prosessit Name = Nimi @@ -75,5 +79,11 @@ Yes = Kyllä No = Ei Unknown = Tuntematon +'@ + # Get-AbrProcessDiagram + GetAbrProcessDiagram = ConvertFrom-StringData @' + InfoLevel = {0} InfoLevel asetettu arvoon {1}. + Generating = Luodaan prosessikaaviota. + Label = Prosessihierarkia '@ } diff --git a/Language/fr-FR/SystemResources.psd1 b/Language/fr-FR/SystemResources.psd1 index 9693f10..b7044dd 100644 --- a/Language/fr-FR/SystemResources.psd1 +++ b/Language/fr-FR/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel défini à {1}. Collecting = Collecte des informations sur les processus système. ParagraphDetail = Les sections suivantes détaillent les processus système. - ParagraphSummary = Le tableau suivant résume les 10 principaux processus système. Pour plus d'informations, veuillez définir la valeur InfoLevel.ProcessInfo à 2 dans votre fichier de configuration du rapport. Trié par utilisation CPU. + ParagraphSummary = Le tableau suivant résume les 5 principaux processus système. Pour plus d'informations, veuillez définir la valeur InfoLevel.ProcessInfo à 2 dans votre fichier de configuration du rapport. Trié par utilisation CPU. Heading = Processus Name = Nom diff --git a/Language/he-IL/SystemResources.psd1 b/Language/he-IL/SystemResources.psd1 index 2e041d7..019e82b 100644 --- a/Language/he-IL/SystemResources.psd1 +++ b/Language/he-IL/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel הוגדר ל-{1}. Collecting = איסוף מידע על תהליכי המערכת. ParagraphDetail = הסעיפים הבאים מפרטים את תהליכי המערכת. - ParagraphSummary = הטבלה הבאה מסכמת את 10 תהליכי המערכת המובילים. למידע מפורט יותר, הגדר את הערך InfoLevel.ProcessInfo ל-2 בקובץ תצורת הדוח שלך. ממוין לפי שימוש ב-CPU. + ParagraphSummary = הטבלה הבאה מסכמת את 5 תהליכי המערכת המובילים. למידע מפורט יותר, הגדר את הערך InfoLevel.ProcessInfo ל-2 בקובץ תצורת הדוח שלך. ממוין לפי שימוש ב-CPU. Heading = תהליכים Name = שם diff --git a/Language/hi-IN/SystemResources.psd1 b/Language/hi-IN/SystemResources.psd1 index 6d2dd1e..a1160bd 100644 --- a/Language/hi-IN/SystemResources.psd1 +++ b/Language/hi-IN/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel {1} पर सेट किया गया। Collecting = सिस्टम प्रक्रिया जानकारी एकत्र की जा रही है। ParagraphDetail = निम्नलिखित अनुभाग सिस्टम प्रक्रिया का विवरण देते हैं। - ParagraphSummary = निम्नलिखित तालिका शीर्ष 10 सिस्टम प्रक्रियाओं का सारांश प्रस्तुत करती है। अधिक विस्तृत जानकारी के लिए, कृपया अपनी रिपोर्ट कॉन्फ़िगरेशन फ़ाइल में InfoLevel.ProcessInfo मान को 2 पर सेट करें। CPU उपयोग के अनुसार क्रमबद्ध। + ParagraphSummary = निम्नलिखित तालिका शीर्ष 5 सिस्टम प्रक्रियाओं का सारांश प्रस्तुत करती है। अधिक विस्तृत जानकारी के लिए, कृपया अपनी रिपोर्ट कॉन्फ़िगरेशन फ़ाइल में InfoLevel.ProcessInfo मान को 2 पर सेट करें। CPU उपयोग के अनुसार क्रमबद्ध। Heading = प्रक्रियाएं Name = नाम diff --git a/Language/hu-HU/SystemResources.psd1 b/Language/hu-HU/SystemResources.psd1 index fb751e2..372dff5 100644 --- a/Language/hu-HU/SystemResources.psd1 +++ b/Language/hu-HU/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel beállítva: {1}. Collecting = Rendszer folyamat információk gyűjtése. ParagraphDetail = Az alábbi szakaszok részletezik a rendszer folyamatokat. - ParagraphSummary = Az alábbi táblázat összefoglalja a top 10 rendszer folyamatot. Részletesebb információkért állítsa az InfoLevel.ProcessInfo értéket 2-re a jelentés konfigurációs fájlban. CPU használat szerint rendezve. + ParagraphSummary = Az alábbi táblázat összefoglalja a top 5 rendszer folyamatot. Részletesebb információkért állítsa az InfoLevel.ProcessInfo értéket 2-re a jelentés konfigurációs fájlban. CPU használat szerint rendezve. Heading = Folyamatok Name = Név diff --git a/Language/it-IT/SystemResources.psd1 b/Language/it-IT/SystemResources.psd1 index d4dd648..e0ae1bd 100644 --- a/Language/it-IT/SystemResources.psd1 +++ b/Language/it-IT/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel impostato su {1}. Collecting = Raccolta informazioni sui processi di sistema. ParagraphDetail = Le seguenti sezioni descrivono i processi di sistema. - ParagraphSummary = La seguente tabella riassume i primi 10 processi di sistema. Per informazioni più dettagliate, impostare il valore InfoLevel.ProcessInfo su 2 nel file di configurazione del report. Ordinati per utilizzo CPU. + ParagraphSummary = La seguente tabella riassume i primi 5 processi di sistema. Per informazioni più dettagliate, impostare il valore InfoLevel.ProcessInfo su 2 nel file di configurazione del report. Ordinati per utilizzo CPU. Heading = Processi Name = Nome diff --git a/Language/nb-NO/SystemResources.psd1 b/Language/nb-NO/SystemResources.psd1 index 7fc0308..a625d65 100644 --- a/Language/nb-NO/SystemResources.psd1 +++ b/Language/nb-NO/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel satt til {1}. Collecting = Samler informasjon om systemprosesser. ParagraphDetail = Følgende avsnitt beskriver systemprosessene. - ParagraphSummary = Følgende tabell oppsummerer de 10 viktigste systemprosessene. For mer detaljert informasjon, sett InfoLevel.ProcessInfo-verdien til 2 i rapportkonfigurasjonsfilen din. Sortert etter CPU-bruk. + ParagraphSummary = Følgende tabell oppsummerer de 5 viktigste systemprosessene. For mer detaljert informasjon, sett InfoLevel.ProcessInfo-verdien til 2 i rapportkonfigurasjonsfilen din. Sortert etter CPU-bruk. Heading = Prosesser Name = Navn diff --git a/Language/nl-NL/SystemResources.psd1 b/Language/nl-NL/SystemResources.psd1 index 1bfd2d8..9970e1d 100644 --- a/Language/nl-NL/SystemResources.psd1 +++ b/Language/nl-NL/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel ingesteld op {1}. Collecting = Verzamelen van systeemprocesinformatie. ParagraphDetail = De volgende secties beschrijven de systeemprocessen. - ParagraphSummary = De volgende tabel geeft een overzicht van de top 10 systeemprocessen. Voor meer gedetailleerde informatie stelt u de waarde InfoLevel.ProcessInfo in op 2 in uw rapportconfiguratiebestand. Gesorteerd op CPU-gebruik. + ParagraphSummary = De volgende tabel geeft een overzicht van de top 5 systeemprocessen. Voor meer gedetailleerde informatie stelt u de waarde InfoLevel.ProcessInfo in op 2 in uw rapportconfiguratiebestand. Gesorteerd op CPU-gebruik. Heading = Processen Name = Naam diff --git a/Language/pl-PL/SystemResources.psd1 b/Language/pl-PL/SystemResources.psd1 index f1222b7..98b99bc 100644 --- a/Language/pl-PL/SystemResources.psd1 +++ b/Language/pl-PL/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel ustawiony na {1}. Collecting = Zbieranie informacji o procesach systemowych. ParagraphDetail = Poniższe sekcje szczegółowo opisują procesy systemowe. - ParagraphSummary = Poniższa tabela podsumowuje 10 najważniejszych procesów systemowych. Aby uzyskać bardziej szczegółowe informacje, ustaw wartość InfoLevel.ProcessInfo na 2 w pliku konfiguracji raportu. Posortowane według użycia CPU. + ParagraphSummary = Poniższa tabela podsumowuje 5 najważniejszych procesów systemowych. Aby uzyskać bardziej szczegółowe informacje, ustaw wartość InfoLevel.ProcessInfo na 2 w pliku konfiguracji raportu. Posortowane według użycia CPU. Heading = Procesy Name = Nazwa diff --git a/Language/pt-PT/SystemResources.psd1 b/Language/pt-PT/SystemResources.psd1 index 693ed34..f75794c 100644 --- a/Language/pt-PT/SystemResources.psd1 +++ b/Language/pt-PT/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel definido para {1}. Collecting = Recolhendo informações de processos do sistema. ParagraphDetail = As seguintes secções detalham os processos do sistema. - ParagraphSummary = A seguinte tabela resume os 10 principais processos do sistema. Para informações mais detalhadas, defina o valor InfoLevel.ProcessInfo para 2 no ficheiro de configuração do relatório. Ordenado por utilização de CPU. + ParagraphSummary = A seguinte tabela resume os 5 principais processos do sistema. Para informações mais detalhadas, defina o valor InfoLevel.ProcessInfo para 2 no ficheiro de configuração do relatório. Ordenado por utilização de CPU. Heading = Processos Name = Nome diff --git a/Language/sv-SE/SystemResources.psd1 b/Language/sv-SE/SystemResources.psd1 index 1516a34..e2cb388 100644 --- a/Language/sv-SE/SystemResources.psd1 +++ b/Language/sv-SE/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel inställd på {1}. Collecting = Samlar information om systemprocesser. ParagraphDetail = Följande avsnitt beskriver systemprocesserna. - ParagraphSummary = Följande tabell sammanfattar de 10 viktigaste systemprocesserna. För mer detaljerad information, ställ in värdet InfoLevel.ProcessInfo till 2 i din rapportkonfigurationsfil. Sorterad efter CPU-användning. + ParagraphSummary = Följande tabell sammanfattar de 5 viktigaste systemprocesserna. För mer detaljerad information, ställ in värdet InfoLevel.ProcessInfo till 2 i din rapportkonfigurationsfil. Sorterad efter CPU-användning. Heading = Processer Name = Namn diff --git a/Language/th-TH/SystemResources.psd1 b/Language/th-TH/SystemResources.psd1 index 23e4c19..ee43c67 100644 --- a/Language/th-TH/SystemResources.psd1 +++ b/Language/th-TH/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel ตั้งค่าที่ {1} Collecting = กำลังรวบรวมข้อมูลกระบวนการของระบบ ParagraphDetail = ส่วนต่อไปนี้อธิบายรายละเอียดกระบวนการของระบบ - ParagraphSummary = ตารางต่อไปนี้สรุปกระบวนการของระบบ 10 อันดับแรก สำหรับข้อมูลโดยละเอียดเพิ่มเติม โปรดตั้งค่า InfoLevel.ProcessInfo เป็น 2 ในไฟล์การกำหนดค่ารายงานของคุณ เรียงลำดับตามการใช้งาน CPU + ParagraphSummary = ตารางต่อไปนี้สรุปกระบวนการของระบบ 5 อันดับแรก สำหรับข้อมูลโดยละเอียดเพิ่มเติม โปรดตั้งค่า InfoLevel.ProcessInfo เป็น 2 ในไฟล์การกำหนดค่ารายงานของคุณ เรียงลำดับตามการใช้งาน CPU Heading = กระบวนการ Name = ชื่อ diff --git a/Language/tr-TR/SystemResources.psd1 b/Language/tr-TR/SystemResources.psd1 index ffbdeb2..b816156 100644 --- a/Language/tr-TR/SystemResources.psd1 +++ b/Language/tr-TR/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel {1} olarak ayarlandı. Collecting = Sistem işlem bilgileri toplanıyor. ParagraphDetail = Aşağıdaki bölümler sistem işlemlerini detaylandırır. - ParagraphSummary = Aşağıdaki tablo en iyi 10 sistem işlemini özetler. Daha ayrıntılı bilgi için, rapor yapılandırma dosyanızda InfoLevel.ProcessInfo değerini 2 olarak ayarlayın. CPU kullanımına göre sıralanmıştır. + ParagraphSummary = Aşağıdaki tablo en iyi 5 sistem işlemini özetler. Daha ayrıntılı bilgi için, rapor yapılandırma dosyanızda InfoLevel.ProcessInfo değerini 2 olarak ayarlayın. CPU kullanımına göre sıralanmıştır. Heading = İşlemler Name = Ad diff --git a/Language/vi-VN/SystemResources.psd1 b/Language/vi-VN/SystemResources.psd1 index b9e64e0..19667f3 100644 --- a/Language/vi-VN/SystemResources.psd1 +++ b/Language/vi-VN/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel được đặt ở {1}. Collecting = Đang thu thập thông tin tiến trình hệ thống. ParagraphDetail = Các phần sau mô tả chi tiết các tiến trình hệ thống. - ParagraphSummary = Bảng sau tóm tắt 10 tiến trình hệ thống hàng đầu. Để biết thông tin chi tiết hơn, vui lòng đặt giá trị InfoLevel.ProcessInfo thành 2 trong tệp cấu hình báo cáo của bạn. Được sắp xếp theo mức sử dụng CPU. + ParagraphSummary = Bảng sau tóm tắt 5 tiến trình hệ thống hàng đầu. Để biết thông tin chi tiết hơn, vui lòng đặt giá trị InfoLevel.ProcessInfo thành 2 trong tệp cấu hình báo cáo của bạn. Được sắp xếp theo mức sử dụng CPU. Heading = Tiến trình Name = Tên diff --git a/Language/zh-Hans/SystemResources.psd1 b/Language/zh-Hans/SystemResources.psd1 index eae6ed1..949f039 100644 --- a/Language/zh-Hans/SystemResources.psd1 +++ b/Language/zh-Hans/SystemResources.psd1 @@ -17,7 +17,7 @@ InfoLevel = {0} InfoLevel 设置为 {1}。 Collecting = 正在收集系统进程信息。 ParagraphDetail = 以下各节详细说明系统进程。 - ParagraphSummary = 下表总结了前 10 个系统进程。如需更详细的信息,请在报告配置文件中将 InfoLevel.ProcessInfo 值设置为 2。按 CPU 使用率排序。 + ParagraphSummary = 下表总结了前 5 个系统进程。如需更详细的信息,请在报告配置文件中将 InfoLevel.ProcessInfo 值设置为 2。按 CPU 使用率排序。 Heading = 进程 Name = 名称 diff --git a/Src/Private/Export-AbrDiagram.ps1 b/Src/Private/Export-AbrDiagram.ps1 new file mode 100644 index 0000000..d997057 --- /dev/null +++ b/Src/Private/Export-AbrDiagram.ps1 @@ -0,0 +1,130 @@ +function Export-AbrDiagram { + <# + .SYNOPSIS + Used by As Built Report to export diagrams + .DESCRIPTION + Exports diagrams using the Diagrammer module based on user options set in the report options. + .NOTES + Version: 0.1.2 + Author: AsBuiltReport Community + Twitter: @AsBuiltReport + Github: AsBuiltReport + + .LINK + + #> + + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingCmdletAliases', '', Scope = 'Function')] + + [CmdletBinding()] + param ( + $DiagramObject, + [string] $MainDiagramLabel = 'Change Me', + [Parameter(Mandatory = $true)] + [string] $FileName + ) + + begin { + Write-PScriboMessage -Message "EnableDiagrams set to $($Options.EnableDiagrams)." + } + + process { + if ($Options.EnableDiagrams) { + Write-PScriboMessage -Message "Collecting $MainDiagramLabel diagram" + + $RootPath = Split-Path (Split-Path $PSScriptRoot -Parent) -Parent + [System.IO.FileInfo]$IconPath = Join-Path -Path $RootPath -ChildPath 'icons' + + $DiagramParams = @{ + 'FileName' = $FileName + 'OutputFolderPath' = $OutputFolderPath + 'MainDiagramLabel' = $MainDiagramLabel + 'MainDiagramLabelFontsize' = 28 + 'MainDiagramLabelFontcolor' = '#565656' + 'MainDiagramLabelFontname' = 'Segoe UI Black' + 'IconPath' = $IconPath + 'ImagesObj' = $Images + 'LogoName' = 'AsBuiltReport_LOGO' + 'SignatureLogoName' = 'AsBuiltReport_Signature' + 'WaterMarkText' = $Options.DiagramWaterMark + 'WaterMarkFontOpacity' = 20 + 'Direction' = 'top-to-bottom' + 'DisableMainDiagramLogo' = $Options.EnableDiagramMainLogo + } + + if ($Options.DiagramTheme -eq 'Black') { + $DiagramParams.add('MainGraphBGColor', 'Black') + $DiagramParams.add('Edgecolor', 'White') + $DiagramParams.add('Fontcolor', 'White') + $DiagramParams.add('NodeFontcolor', 'White') + $DiagramParams.add('WaterMarkColor', 'White') + } elseif ($Options.DiagramTheme -eq 'Neon') { + $DiagramParams.add('MainGraphBGColor', 'grey14') + $DiagramParams.add('Edgecolor', 'gold2') + $DiagramParams.add('Fontcolor', 'gold2') + $DiagramParams.add('NodeFontcolor', 'gold2') + $DiagramParams.add('WaterMarkColor', '#FFD700') + } else { + $DiagramParams.add('WaterMarkColor', '#333333') + } + + if ($Options.ExportDiagrams) { + if (-not $Options.ExportDiagramsFormat) { + $DiagramFormat = 'png' + } else { + $DiagramFormat = $Options.ExportDiagramsFormat + } + $DiagramParams.Add('Format', $DiagramFormat) + } else { + $DiagramParams.Add('Format', 'base64') + } + + if ($Options.EnableDiagramDebug) { + + $DiagramParams.Add('DraftMode', $True) + + } + + if ($Options.EnableDiagramSignature) { + $DiagramParams.Add('Signature', $True) + $DiagramParams.Add('AuthorName', $Options.SignatureAuthorName) + $DiagramParams.Add('CompanyName', $Options.SignatureCompanyName) + } + + if ($Options.ExportDiagrams) { + try { + Write-PScriboMessage -Message "Generating $MainDiagramLabel diagram" + $Graph = $DiagramObject + if ($Graph) { + Write-PScriboMessage -Message "Saving $MainDiagramLabel diagram" + $Diagram = New-Diagrammer @DiagramParams -InputObject $Graph + if ($Diagram) { + foreach ($OutputFormat in $DiagramFormat) { + Write-Information -MessageData "Saved '$($FileName).$($OutputFormat)' diagram to '$($OutputFolderPath)'." -InformationAction Continue + } + } + } + } catch { + Write-PScriboMessage -IsWarning -Message "Unable to export the $MainDiagramLabel Diagram: $($_.Exception.Message)" + } + } + try { + $DiagramParams.Remove('Format') + $DiagramParams.Add('Format', 'base64') + + $Graph = $DiagramObject + $Diagram = New-Diagrammer @DiagramParams -InputObject $Graph + if ($Diagram) { + $BestAspectRatio = Get-DiaBestImageAspectRatio -GraphObj $Diagram -MaxWidth 600 + Section -Style Heading2 $MainDiagramLabel { + Image -Base64 $Diagram -Text "$MainDiagramLabel Diagram" -Width $BestAspectRatio.Width -Height $BestAspectRatio.Height -Align Center + } + } + } catch { + Write-PScriboMessage -IsWarning -Message "Unable to generate the $MainDiagramLabel Diagram: $($_.Exception.Message)" + } + } + } + + end {} +} \ No newline at end of file diff --git a/Src/Private/Get-AbrProcessDiagram.ps1 b/Src/Private/Get-AbrProcessDiagram.ps1 new file mode 100644 index 0000000..44e6b85 --- /dev/null +++ b/Src/Private/Get-AbrProcessDiagram.ps1 @@ -0,0 +1,69 @@ +function Get-AbrProcessDiagram { + <# + .SYNOPSIS + Used by As Built Report to built process diagram + .DESCRIPTION + + .NOTES + Version: 0.1.2 + Author: AsBuiltReport Community + Twitter: @AsBuiltReport + Github: AsBuiltReport + .EXAMPLE + + .LINK + + #> + [CmdletBinding()] + param ( + ) + + begin { + $reportTranslate = $reportTranslate.GetAbrProcessDiagram + Write-PScriboMessage ($($reportTranslate.InfoLevel) -f 'ProcessInfo', $($InfoLevel.ProcessInfo)) + Write-PScriboMessage $($reportTranslate.Generating) + # Used for DiagramDebug + if ($Options.EnableDiagramDebug) { + $EdgeDebug = @{style = 'filled'; color = 'red' } + $SubGraphDebug = @{style = 'dashed'; color = 'red' } + $NodeDebug = @{color = 'black'; style = 'red'; shape = 'plain' } + $NodeDebugEdge = @{color = 'black'; style = 'red'; shape = 'plain' } + $IconDebug = $true + } else { + $EdgeDebug = @{style = 'invis'; color = 'red' } + $SubGraphDebug = @{style = 'invis'; color = 'gray' } + $NodeDebug = @{color = 'transparent'; style = 'transparent'; shape = 'point' } + $NodeDebugEdge = @{color = 'transparent'; style = 'transparent'; shape = 'none' } + $IconDebug = $false + } + + if ($Options.DiagramTheme -eq 'Black') { + $Edgecolor = 'White' + $Fontcolor = 'White' + } elseif ($Options.DiagramTheme -eq 'Neon') { + $Edgecolor = 'gold2' + $Fontcolor = 'gold2' + } else { + $Edgecolor = '#71797E' + $Fontcolor = '#565656' + } + } + + process { + try { + $Process = Get-Process | Sort-Object -Property CPU -Descending | Select-Object -Property @{Name = 'Name'; Expression = { "$($_.Name) (Id=$($_.Id))" } } -First 5 + SubGraph ProcessH -Attributes @{Label = $($reportTranslate.Label); fontsize = 22; penwidth = 1.5; labelloc = 't'; style = 'dashed,rounded'; color = 'gray' } { + Node 'System' -NodeScript { $_ } -Attributes @{shape = 'rectangle'; style = 'filled'; fillcolor = '#EDEDED'; color = '#71797E'; fontcolor = $Fontcolor; penwidth = 1.5; } + Node $Process.Name -NodeScript { $_ } -Attributes @{shape = 'rectangle'; style = 'filled'; fillcolor = '#EDEDED'; color = '#71797E'; fontcolor = $Fontcolor; penwidth = 1.5; } + Edge -From 'System' -To $Process.Name -Attributes @{color = $Edgecolor; style = 'dashed'; penwidth = 1.5; } + + } + + } catch { + Write-PScriboMessage -IsWarning $_.Exception.Message + } + } + + end {} + +} \ No newline at end of file diff --git a/Src/Private/Get-AbrProcessInfo.ps1 b/Src/Private/Get-AbrProcessInfo.ps1 index dedbe80..2ad4403 100644 --- a/Src/Private/Get-AbrProcessInfo.ps1 +++ b/Src/Private/Get-AbrProcessInfo.ps1 @@ -27,7 +27,7 @@ function Get-AbrProcessInfo { process { try { if ($InfoLevel.ProcessInfo -gt 0) { - $SystemProcess = Get-Process | Sort-Object -Property CPU -Descending | Select-Object -First 10 + $SystemProcess = Get-Process | Sort-Object -Property CPU -Descending | Select-Object -First 5 if ($SystemProcess) { Write-PScriboMessage $reportTranslate.Collecting Section -Style Heading2 $($reportTranslate.Heading) { diff --git a/Src/Public/Invoke-AsBuiltReport.System.Resources.ps1 b/Src/Public/Invoke-AsBuiltReport.System.Resources.ps1 index dd208f3..88e9dcd 100644 --- a/Src/Public/Invoke-AsBuiltReport.System.Resources.ps1 +++ b/Src/Public/Invoke-AsBuiltReport.System.Resources.ps1 @@ -5,7 +5,7 @@ function Invoke-AsBuiltReport.System.Resources { .DESCRIPTION Documents the configuration of System Resources in Word/HTML/Text formats using PScribo. .NOTES - Version: 0.1.1 + Version: 0.1.2 Author: AsBuiltReport Community Twitter: @AsBuiltReport Github: AsBuiltReport @@ -15,8 +15,8 @@ function Invoke-AsBuiltReport.System.Resources { https://github.com/AsBuiltReport/AsBuiltReport.System.Resources #> - [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingWriteHost", "", Scope = "function")] - [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseSingularNouns", "", Scope = "function")] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingWriteHost', '', Scope = 'function')] + [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseSingularNouns', '', Scope = 'function')] # Do not remove or add to these parameters @@ -33,11 +33,20 @@ function Invoke-AsBuiltReport.System.Resources { $InfoLevel = $ReportConfig.InfoLevel $Options = $ReportConfig.Options + # Import Translated Strings + $LocalizedData = $reportTranslate.InvokeAsBuiltReportSystemResources + # Used to set values to TitleCase where required $TextInfo = (Get-Culture).TextInfo # Update/rename the $System variable and build out your code within the ForEach loop. The ForEach loop enables AsBuiltReport to generate an as built configuration against multiple defined targets. + $script:Images = @{ + 'AsBuiltReport_LOGO' = 'AsBuiltReport_Logo.png' + 'AsBuiltReport_Signature' = 'AsBuiltReport_Signature.png' + 'Abr_LOGO_Footer' = 'AsBuiltReport.png' + } + #region foreach loop foreach ($System in $Target) { Section -Style Heading1 "$($System.ToUpper())" { @@ -46,6 +55,12 @@ function Invoke-AsBuiltReport.System.Resources { Get-AbrUptime Get-AbrPSHost Get-AbrProcessInfo + $ProcessDiagram = Get-AbrProcessDiagram + if ($ProcessDiagram) { + Export-AbrDiagram -DiagramObject $ProcessDiagram -MainDiagramLabel $LocalizedData.MainDiagramLabel -FileName 'AsBuiltReport.System.Resources.Cluster' + } else { + Write-PScriboMessage -IsWarning $LocalizedData.Unable + } } } diff --git a/icons/AsBuiltReport_Logo.png b/icons/AsBuiltReport_Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ff8a542f746566838cd4d05a958711baf99690e8 GIT binary patch literal 5154 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 Q;{X5v07*qoM6N<$g2mI!4gdfE literal 0 HcmV?d00001 diff --git a/icons/AsBuiltReport_Signature.png b/icons/AsBuiltReport_Signature.png new file mode 100644 index 0000000000000000000000000000000000000000..000cde6004bdcc3974a853ec31a95436e795ff9b GIT binary patch literal 12338 zcmXYX1z1$i`~A{LgP=4>BaJlDB_BEz6e($8>4v4dk?s%)>4qg1=?-a@ZWor2?%(zM z|MNVs?Czbpb7$Un-gC~JNKJJmd>l#~5D0{?{7zmQ1VRD+MFC-B0xzGPOD%yHbQf7= zU2NdT7u!4nc>m1t-A5M?2qW^}FACT?=N9;o!c{@vRmZ{7)x*@;0_5T0!EIx2>tbf= zXu<8^Y?XENmJ$S_2PwVCf4+_G`MKPNp zpHLU#%d!*7+DcIqYFjjSp#$Cw@aR>a3Q@KzXv*wpQlYmV%N^N@gi-8gRQ=q$Qo`QxyE9Upiaw0?}WL*J0eZYgjWnx`ot$T z>r~QfoFnY6yD0TZk)DQ4q1$4^pijz7l+mC(tWE-5^N(?xjE@A%xvIUDcDO?p$tVp$ z?*xP>J@Kp{)q@hWm`7?Xn+Q2S+88@rY=%T@Rgf{NA1bK@(CmI0e`bAjl5{NJ5=0v* zZ-xwHbriZG{k6U~B!7Rf_#!cy4edmliIM|t7cHr-Qeh+GnCbcHv4w$rRRLZXbE0(x zx+g}e z!)3CzCn9q%Ec1_|$xTXO-5FYX^byccvhfcEjm8dTHO1EVkNOhLX|O31vjWt-FFRSWfI%?8(h%NY+v13u|#qxF#2;yBx{i zh>_WL>tcucPJKw2VPU_`JGMmFyLF8X$@}^h+mp*T*x?R3(e`fjI9wr=R;)V11iiw% zuU)cud4)-04HLny7Ue0rynv;gN1gYkFpDKuLBvhatBm++{}|-$>rzRywv%lNHOI98 z?d=(Ne6~|-K|KqDOY6a3qkPBnWG0D?9d1gn%g4*70G5)pWf*yJ8Bma}_p_@DH2us| zkR%p=s41aIkwW^+w+9(or}I)n13US6ih&%m*cYxMz3m1vY}O%+|_P1lTT7(s8w zGuNS-qHK8zX&uWJ=zrLwHub)#h1U3U*?j3&8tPX2eO>qO1U}@NDvO5m2NZus?lQFL zNtw^n`q^qVkN`K*_b7H77ADw>sA1~)=8R(j!Uv|L2c(xJeVHE(`S5*^bhjg^#-1W; ze3HGZ{^El6>|2mzLsj*jFvi}XgV_3Qc{i=VGS5dGI$kLcjG4@Rp2`cc^RMe=?*!ac z_=$xf390XKeuEgM7URz_+v*WWo{#Obt={eFb^WP^u6hVyT{#T8y)|0#Mr zQ#{n__)YOp`A%S${UfK|kP2F9_39n!iF8vVn{zrt@QnXThy-V)XB?eEVJ(m4CvAfy z4@^zE?pE^m&BhyH?xxyO*W}J7pP1o(G?D#B6AeX8Ox1Y#k|tXp*T31>YN1E`X3&<( zj6H-89lS%iX9uQbH~6Q}t7<$@#1{G`8)wXgk^Hpa;Re1> zab|Y6v$UP3wa*(I()5UPqdw4c3@bl)64bTl%oi|swZ9Wc{jjSggx!v^-ryJKO~Kpl zK{MjtkXF6y8T32C`-Ds_5h9*=drHlAk&UfSzzIZM;NT0~29%j*#3gBpV4VZa8O$xf zekWDqC+STP^<*fNZamCA*PzAiSJ`WUF079f%#)Y_&sPtiUq{j(8%Lk!{Gbhbgs^TJ zXKN4bH5f(I+mf;K-ZGvAIB+dv4W=gS^64A=VBoykVzrrIvQ}5^hHSM)>5}PUC5wJr z6un()Ts7Zd_q|0}7bWO~uggtge9iZkZKn^hp;r_x(L`A052MAKh#%F=&PAhvB+Pyd zvIAW~I~*@VDEkd{4@zDrpqLoD6PG!RqK~;~|FO z)Jh>rNal=7-F5B^mkNg_~$SdbU`YhyEKBP#aL5J|@m1)i;^Tp0~rc z6rzdUeH6FTdpg}YRAY(Pb6?UB^jN&%%5>>lvHns<5Ht_D>lEE<$rB?5$G95ARn{%( z(aho72-9X@yal4zxv*5;>ATvasGG?_v9`UusVM3^ z9fa5@Jg%bN8#7Ukc*_lCS3M(-?1!S}^*N2Pt=k|3Dy(wo>PSEKHllE@5E!@rzACPq zV`ZiPs&+n*=0oExtQq`#C{xhc8IvfoKMaU}Db%*WW3;rb(+w>0IhD$XGyKI7!!skN zdx6`7EZ+}XCac2FY{%1G!z6(QeyKJRMuY5VKr93UgFNfPT&Hv7ulQ~0$s>q1D4ZRq zdek`^yVe;g;yY|CbCFJ{+6Of?7n6g%i0to7vXQVKdiJj^14%3d#gne&nVjM-SZ)@N z{y5=>#e&3LOWU<8O~1y=0J|*y$6YD4flNNmoPs9`pm8S9co2#*Gw|O8mLD3a)!$Vz zni)(J$uETNYiU{rZG;bHDUv^J0zhZB^ClWJ+2i|pKxRx>e9~4ip9LYJSu0SghKdOk zYHE~XT)v=w{?eOfdT;Y=rcs7OAF@S!$3L%yz`rqMqHN=s{>Cjo_iruKFkXN}DHtmU z4b5#R=0Z5$;w9{BR5RV*C{4}LooFn4#EYGQ8OKY^?P%{X3S@8n5|u0!JEm$91u7FJ zFCp7l{~bqAJVj0z=jr7sv5yAPEn=D+<}=L~^hWZCIMh{pt>c-Gxkfc3{(2;U8K$w` zk9B^`B8luTM&bEAOyj2z_?*B@t(DU3SN&?ga^&Ok*Ymv(!9;_rGzq~_Q^Ngk>QIO1 zg{|8{uo!xA$&M1aCksjJ7yxk`EI#X^EzN)sS?+JuZE5}Fu5Q!H26ZaI{@rkbiW zjxn_vE~%9cMdO;RT`c<=bKSe5fk7+s6JJqVY^OFEq4owwxnd5-^`&2_79CB1p-P2= zHt1zk4sz~SZ^sC5EV@)KRw^L{V|e+G*-tFhTjp!(=}-K@(D37dTV2wR#UBWwFhjbF z>|3!uX1bJJW)yOqJcrq@vZw^yZbnF53B1D|34%(COv2nmaPSQM#^DW^C4nT{R2-*dyMhTpZ0QDF3s@Hgne z*+R#i)o!j=O!dFK^WK~}@(A@hmOnhL%p-X1E4{RDAaw0)s|CRUPsGKnP9H6%&E(`U zUYzFZ~-P=ChP*xbQIjUtuf#WtZs; zK6R8x%}dAuW_h8MtFf>2tjWt`%oS<(qcA}`f&JA~gKjG{`Z0~0YH%D#uNV_oHVSz=GPX6ELqx?>hsS`I` zxK8aPi?uuLFP;9jJiqig*PND8&1E@X{+>Qv)dS_M?5Dv9&BI(roV>q$kC|Y@eSYE} zkxU+Kq)06hm!l| zrq;Z^&x&OV2YlE@%(G1CaoU73@EZ9~@dY|18Mx*7%1c1Jq;2UQRT;zuR(frZ8k_n( zkr?OikIfAf#|!Z2*SCN7XcQUNM+&>cmIsdnj3BfR4<7Ygj3t_wL?+IN4Xn|j=`3VF zhtD|xf#2drjVpZN^dx||F~DV=F)ctS%>PjKsD*x7u750e{MJ+P^-}|FB;V6V)_`|Y zmk<=vN+s%rBq~CGwh#$Nk-7a-uHwJLn%he+L`QSn<;E+Sd2|ui#{6gw$~o*Iy2!F@rZcmFS>xf(Y#j ztu%(OKc||&@^I*C*~UDj+7Dy_+a}+HG0CSBPPY!8;k~GCu0lL|6YI8S#<*785paay z>3^eTZ*uMftY|M&A*|?^Cn`0H8eK=zbn*v!adkzc2j8CQr>O=&KQ+)~@vTChJ6Xe; z?{v>u1ovns1!Ohu%Wh8A&l2ATcOqy;IdGbVEBONg3TPI#yhazp=@2RwD-Rg5E_AZg z_N`jQkSQX7vm~tiM(l0I-IjT-)M!~}&3)lC3J@_`tZUjxOMo7I;LVPALR?OWu&kT1 z&|g{>)7xljVG{A0w+zBBejxc+C#>&3-4V<{5Gb-dkH~g#qj~&l`m|-MRCkh4VKL@U z4Y3sWpXKzVim54#DkIr8-qA~;X6SN?`9NfL+L@kdMar5O`3cSy{fT8xPX1y9c~ijp zbf{i0OCddZ@@ZXLSI-oPKCd2d>=QjH@R-~UTnCeSoC@MC6B!7P@~$YOKw#pz^+QylU%l+B&TTOD? z`(#YFN1pttCf-~~FCR|xKD69*-xnaLAinAxwd=$+xu4?~(Kq~Pnz(y+9Jg{C*q*w1B+`ZepXdq4|0wpdd z6ZMmp-&c-U0j!J^c)(HiH=jCdUNtJm%o{s;fDO3{tY}%z&x0cvu{v;7!*7$KlS1hZ5P+S$m-&geEGLHB}!-4z%Dr3~U0{x)yQm`z_1UY|56 z2fKKoxrIw&He?%;>rXv8<5f)(E`d()Crsz2wBjw=?O!wtkPIuS^RTavbQ6dDr5kwb ztE|T3k3Mf7aAcDW{>H$g=c9ucA#)dU^`XY+ax9_lUK)t7#NRsJ<#uZ*i)FS+^NkQX zBJUga`HRaX5+}#%H_xqE#=BIoOpw7et8ve8LBPJE1n(T09`7XUKyB!MIxIw>_rHlZ zFIH%-VuX8iRqbz~-^yp^fjt%Atr%t-BWgy?Sa=sT=->8_%YRDaYdL{X22=`E7dz4B zn5X)AiV@lEpz2uBaS|L;V*zxZ6YRss;6&yhYSp!>y@|p5204c?*Q=N3SE&qb?gNw( z1ycvRGZ`Vdev>N_bM4_?H-f8m!OGDWP`LFQodufyrgXt3P-4c z-%6&0tA0_smF-=PE6tG5ckP$2_JilG7h9?3B5GrerY|7@O-_vi9%TAy>cy8X#sg5h zPoD;C>U=b`^IGy|ka?H1(GCXcWydbO)$QXKT-h*T3?QSp-Q4zV*IXd2q8CdnUiY_! z#kL4s5`v`62li14VGDDx!xfeM%F2^|p650#fKM90R8$=-9JeiTkwjQmKToi>+2qzyGA>nDkv&s+yYA;B&5+n#`cGBxjS6)bv?9>~IF7 zq1#%&9FP8Gt!j+0v5di!pW^uTM9!@loZP`1I}blp8FIfmDs@lCkR8M~()SeD;#&*-Oz-%_=DEVrMXigp2|giZlK+)BOS+kkn)P z(&McY%hgn`sty~a1U;;y{`PyoRNA`Cr9Gn)!$Lk?B-=pa{m- z_N&|d&0J_3nbmKzTHEdMhGWmyq5y10s4AYV?P@ep$hQ(5%Qd9bXx zBN(g^iN_8+oL*b`QIbg+za?g?goDhMM4p6&nf zGb#ht>s{z_h-zDEAW#EkHk`RQza5ny-bSg=Xjh(214TocScy>7(6J-A*Io2Szp59s z+PFcaQ7Rg~hAX*@O%{F`Jb=k`6R`vgpnnsi#xw9ts(`4jNTLoRTIbpG)eWEvIRc1Gog-n{f1BQo^y^RntBYtoYxBtG zF$S=0cCk%YW*jHCQ={b^!BNk!^WJCVx}@IxP@N^7^nWpWyM@(;iKg#wLO-EyGnSF| zx0hs9C+Z=%n~dR5$)3XYS8;T1sUqCg_L%uR2BoxqFM*)cv!jwY{V<)@cHt`c8Q!`R zMB{a@2;Y>nXjQHZf{MlLsM%t$WdebcHt1OP6}*?q0s$d^^{n8l|Cki694e)qe;3&~ zZfHTjSf-Ms$a*{HmZ7#jv?UqzFLD=abu87onx>kB$J3hc2;B`G<&5uNr(5oxx5yh` zox0m00a`sPFeRkUoHF=oF#d5QynEpRvo*;D!E`%pK`}ec zU^&c3n8*7iiX)r8p9&WW zx`y20wL(9Yxao&QrwD`t6QHMdGlbI$aW4BJ?Hd$1?X{++--ohIU#H@MkbEF( z2=*av^O(89C=I&h6w-1To?iOA*52ea9rKQF*J7G?)me}7bGAs>=^*D1yAzPHlj~>b|nMVgSK}k%y+BnP>gTF879?p-#SMC@l&tSpf_4pU(crc}%^k$u&`nB>WA->| zrt?XM-(L}noNkTe)uVj?VbCCiadJ3(s;;Se@sOi%WKYEH3}t$G-9tDGLXAx;%vnmk zP`lmu$jEcCj8w|5dUZbYM0{&Ny}_^B{46!H^UJdhse3%gnDcQ@$+(?!vJKO!^8?Z$ zmKtk=Vd6OJU#$s9l<+paIy`_5U5}gDIg(r@TKN1apHbS=%BJ)3f^=sV%U9h2lmMTr!|!4^RpZ zHKJJixECT9VkFkT>!U4}ag=3ADewP*1)XOyvrf5#-Qp-;z70Q|Lj&rDi@lLHPMKIq znT;FS=KjWqmq#@|7d_dcB|`_d@aX)istn?>YNN_P`mM4E6ER_hz z|9-HLCU0n5g3yKFCV z&njSJ8TGX+6N3TyqZ{aokjML#NW)7}PnaC%Pv>ds$Ob}SuAXM+Gqb57Tx(5>B_uIh9ISnm|=PL@KBv= z5NVK9Vs=Hff9t(ih3?X?2H>84Pg|6w;>H$swoHP$B0Sq+yo#yk(r1?)=0;BVU!IP3 zRq}JN%r>G2#|;fj6!$p3ViHNm2=Bgn9q&nL22g)5FK;T}IyozCVgGN?wkKkr!NC|7 z^r3M>z7ivq6)RYn;4c3Jp%f@HPV`P^@NeAFz=99}RiJTngL*RnX^hxP*|%*cYfCot zNq}w$Wq(`WTdv+EUCP|C#<~o$H}N=*gea3PR<-b7G?f~SS{&UER6=-g-HedL0f7qQFkov+;zQa5oG@~h5 zgC;ZIu5>)Um7|dE0(6~A(ppwHSrT+7*AmuvG5ah=fk*gfUJ2L;*MX;-QVQd&&Sq?2 zlnN6Nuolq5QR<0Pl!)H5BECPWi;W4F|Bn_zk}Xwie9TL##xh4*BesCi# z|9bOAxLez8-+@Qg=gF`lQqMFtYhjzJ`Ioo|D=r1%75!IrQRWUk)^VTDtm@Q^=e>D+ zR^v`2K9u=1OW|n{oMz(sC2v~t&)qbRvnDX4 zRsadX1fZ1w8E&s^;~GF8Eq9PL?nHMQg<}?$iUpqjohGmD2#|0jpIeX4@eTS=JQMZv zxwV0CKG-n6$x4rM=v_YS?nU8W>^c>~s|ygNiC{&tZUB&0lpDOejV{<@kU_Y}NN@U+ z>cMJT)eC?KHN=+ZP>1*h*M!G8<0Q3Icd}* zz%|1WVfjFv4Oj>cGgF5Vo0;0yU44qQC_pY8&ipkvCn=+{FJB{lOV@Mj&ISSze*fnM zATc|&-9K(moD+r=*ZN#lOHr`f=~7Ee*Y<1t%62kqvJhdKAj-U(#6WY3>8mb)b?|!7 zJ{lZPSl?XyyH^*GPr!9Lz;*8;Yu6VopWbDQMLr&7fjLXPW_s5Cahw6DEC23nt0`*X zU*1B5JV4g~0<+6`9qfIb1$04J)34^9v%Mv}Iryu%`bL*|5ErrGKx+Z=3KF!}K2VjO z&XS+|A?GrXREgh|Xt6U$kTXqNP5XHET^;3bME%84`)=FFCdufchw0T(eCgYm&cERE zi}K&LwT9EGjj!UTq6tvjp6CGuA&1|{&8-S8owAVj5%)VD{RD7l=fX`uqY{2qTW1@u zxZ-ENXP-Xri|4Y$dG5xMV=vBa;3kJ@2~r>iG@&oC84Ds>rEIc@xjSy^ZeIdmm=wS; zBLv+Uq@!6(2q`wQLxs~;skpm=62UJ1_{*L3a8BW&V;AwzCI|vHvRcJhDSyqxVpBjY zsdEu7iC@R~&!;SWjb<41m(=!99y>heo9SNhz*n)|qVk$z)sj}y4VT(GeEG}$opI3R z@h{JtvUsC}7L^GyRNF&~swKCNW~>b2ZhfAAhAge9fwECl)%ITEo*RJB1Nw~prU1b1 zL>TryuBZzys~gr9>PR%x!A$1!F#nacgAd+wui<1qh*_&Es&^|=zW9(nl7_f%)AUSVSDXYZ$ubn*iX@UwQ*)u{FzKHUM;JF9B(5-n?f+(`;d+ z?mv3dmFHti`M2=ZR^BrRkKgfK&G|V`l zDE*_KRMic&`)YYqauO4Trs>&D%bN_H@FjyBc=slvIYRsI)MAJLOa%~g2`nad{%C$s zs7JSH1+iIR?c#?*Yv!-d@-<0$he4!KsEQN;vRYlhVAybgc*Riwyb96t;9|dYuiWV z-HNApo!JIDD_QCa1`$BkN~-d_uOWbRsj{D;)Ww-iDF@)x?6V8F&ULVeH#TIp&Tho| zO)|BXBu;-lo0uCYfOh1IKa`r7Ntr^=ud49q z!xQ_M2cuROQ?(rRgTpKhWU~Mrc0hRyIy?W#H>w}ly}uCBC4nixz@AI3d zi~#~7DIQImhyVVH6#PF@uaHluY@`@5z}yxF04wyr38ge?kpS0&josLA&^C}R+bTlo z`~jG*JRWHnEb4l974lj{o_EwVmvVq#0aMpiz|fHOr^XHNF}CM5^(@nKCu2$1VGyO} z)RYCSr&|h4mJ}n<@kvx{I}Ol>@k{sD-7z(P{B|X)RHR$F(mB4AU;(+|~A z{4^y79C;Nu=ndG(D3Ykngqz^Uoj8cz`pFle#&bZHmnq<(RZQ z2A~uZS+zqFK`>x?9Bv8@KI^J=;qn$S^l2Rb+~)AV_>idgPY%8lzm58#KUD_Ashn0X zYf98-S!&UUPCv5S;pShe9HCE;rF}RZ;MW>No7b(i*GRwazRVqnV#MMzx}^#$HoKw; zkTAinYiF!$kVsBplryCx$nZ9sPJu_Htnsf&%z#9eYyGd_CFnYg5dSq3RaJd& zCdJ{=?=l2jUy)6IW)>jsKc6jY*Wq^*vwFxA4*safH%N!GaA2sOg&tN(p=*l+v1#6` zv+vn5zf-nIWJEl18K4GPfn?1ukSbA38ooC~#;saEP&q#J!MoDU86<_X7=W*lviYrV z0)M`Fy!Xy@WWb=i-8A)f)4oH+(Ma#|2k8OUGUVcm=j}QmHG1(EjIRxH!|2|cf*L!O zTiw103dfXh2v;YcMZXlgwiJnKmqwjHTLYYJxxY~!n9}nW)S0We#T}QyCGqDrFH?OV zcAr<=_0iI{6h|ct49Y01CZRs!!~j!N@A79OoPHbxT5Lt%*n9^WC`fqvg81`$brW_h zF$}mbV!X1fG`{8^ zd9%|eFSgL9}&hv zZiENeqYnG!B$Dk^RXwcf4VP)HHAD$``r5F!#kD-fecms50mCjr0WBn9wLp(flyi(H zT$;@_*~Y&tp49J2K6(9lwA?IgK>RTRT3#PEn9jLrD|nA0tzjfXz@;CmBf4~{)U?~=M5 zylKLj(-G(y?|EhUkl$^K{^vOmvjN7L_bh}Xj|M~h zkv+NpO_=hnsk3bQJWS4hKwkwBnfPt|$J_q!I_oODd9L$_+M!kQL3io$OIo50A#d@qsMme0&6a#BnBqe4FqUh38{aqMI4d;5CIYXz= zbKwyo!2Jcy>k2VoWolJw4-6na#{;P%oURM@Houar5U_DCJL_JP)79jBz z7GG?>^s`5$MZaxwO)RZY++53C>2$_+`|eX9b;1DT# zJg{tNyqkPsC-39Iy1AVpgn%BN=4 z%0{wWq7=dXGht5({xu%1fA)-Y!j_+@uP>xn#5#Fx54vDZ^8e%Al|i~u{YV4O$b80@`Q`osY_&B(B{dQL*U)eB z!=Emxo}EN`&=6_CaYxAGwR0n1DM&h7B>1#EbU&W!O3am!=t@T0h`z`!3yTwQa#8TS z3G_C98c)w_rS_4PqSIw}&YgB6*Ql1yYr`4$lq;U``TgZhk4Vpj|E_t&` zJ56P~i+wo49YpfJU;J1!Nj9&U;31N%QhDJPSl%Zm7K&@MYAdGwEuE*d`r$k*9GzSrQiKYkKG4J*GHWv8n zzb@?P6F|CM9o;-lplJZ<`~s}nZcFVfCj7)}1j}Ldk~(bsV?yh%FHYJRITU1)BCij+ z8bvT(l0~W3K2Ha{-SEyqdFi1~@7DpJH6~G?Xt5UCr;)GO4v%wgq3pbMpI)^4iSj=4 zWX=*J4OHBu=1~H=zyivtz>@Ft8d1QhN^p;R;vgN)IiiIg9^BOdR1%q{Q1p~+-hg_* zfu!Em9LNJg)EGNS{&bA;e0-Y`(H779Uf@*;-a02Rde8}E{e!gIg=Y2-l54V)EOQ1w z2Kbl1f!PB8Ywo;`X+pq@%QjZUpzuNjhqG&uH8V@K*S4;LwR+G7&HCLxySg6QRzU9F zy(`-JVVO?DH&RD(k(qTE+!1HEy`=Ewe(MR1x2nUxk>ErU@b`n171ZUcWKDwp52HvE A&Hw-a literal 0 HcmV?d00001 diff --git a/icons/no_icon.png b/icons/no_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c5b056371d2cae6790a0555f04fef766a7327012 GIT binary patch literal 8183 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 literal 0 HcmV?d00001 From a2d13a2529b45babce18d8940391cfb2154d276b Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 11:22:37 -0400 Subject: [PATCH 03/23] Update ProcessInfo value in AsBuiltReport.System.Resources.json to 1 --- AsBuiltReport.System.Resources.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/AsBuiltReport.System.Resources.json b/AsBuiltReport.System.Resources.json index 53ddc3d..f1a6c34 100644 --- a/AsBuiltReport.System.Resources.json +++ b/AsBuiltReport.System.Resources.json @@ -31,7 +31,7 @@ "TimeZone": 2, "Uptime": 2, "PSHost": 2, - "ProcessInfo": 2 + "ProcessInfo": 1 }, "HealthCheck": {} } \ No newline at end of file From c2cae82d496ae3aff34dd246d83552308f000277 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 13:29:51 -0400 Subject: [PATCH 04/23] ## [0.1.2] - Unreleased ### Added - Add initial support for diagrams using the Diagrammer module - Add Export-AbrDiagram function to handle diagram exports - Generate a Process Hierarchy Diagram in Invoke-AsBuiltReport.System.Resources - Add initial support for charts - Generate Memory Usage and CPU Usage charts in Invoke-AsBuiltReport.System.Resources ### Changed - Increase module dependencies: - AsBuiltReport.Core minimum version increased to 1.6.2 - Diagrammer.Core minimum version increased to 0.2.38 - AsBuiltReport.Chart minimum version increased to 0.2.0 --- AsBuiltReport.System.Resources.psd1 | 10 ++++++- CHANGELOG.md | 9 ++++++ Language/ar-SA/SystemResources.psd1 | 22 +++++++------- Language/cs-CZ/SystemResources.psd1 | 10 +++++++ Language/da-DK/SystemResources.psd1 | 21 +++++++------ Language/de-DE/SystemResources.psd1 | 21 +++++++------ Language/el-GR/SystemResources.psd1 | 21 +++++++------ Language/en-GB/SystemResources.psd1 | 10 +++++++ Language/en-US/SystemResources.psd1 | 22 +++++++------- Language/es-ES/SystemResources.psd1 | 21 +++++++------ Language/fi-FI/SystemResources.psd1 | 10 +++++++ Language/fr-FR/SystemResources.psd1 | 10 +++++++ Language/he-IL/SystemResources.psd1 | 10 +++++++ Language/hi-IN/SystemResources.psd1 | 10 +++++++ Language/hu-HU/SystemResources.psd1 | 10 +++++++ Language/it-IT/SystemResources.psd1 | 10 +++++++ Language/ja-JP/SystemResources.psd1 | 10 +++++++ Language/ko-KR/SystemResources.psd1 | 10 +++++++ Language/nb-NO/SystemResources.psd1 | 10 +++++++ Language/nl-NL/SystemResources.psd1 | 10 +++++++ Language/pl-PL/SystemResources.psd1 | 10 +++++++ Language/pt-PT/SystemResources.psd1 | 10 +++++++ Language/ru-RU/SystemResources.psd1 | 10 +++++++ Language/sv-SE/SystemResources.psd1 | 10 +++++++ Language/th-TH/SystemResources.psd1 | 10 +++++++ Language/tr-TR/SystemResources.psd1 | 10 +++++++ Language/vi-VN/SystemResources.psd1 | 10 +++++++ Language/zh-CN/SystemResources.psd1 | 10 +++++++ Language/zh-Hans/SystemResources.psd1 | 10 +++++++ Language/zh-Hant/SystemResources.psd1 | 10 +++++++ Src/Private/Export-AbrDiagram.ps1 | 2 +- Src/Private/Get-AbrProcessDiagram.ps1 | 1 - Src/Private/Get-AbrProcessInfo.ps1 | 30 +++++++++++++++++++ .../Invoke-AsBuiltReport.System.Resources.ps1 | 12 +------- 34 files changed, 330 insertions(+), 82 deletions(-) diff --git a/AsBuiltReport.System.Resources.psd1 b/AsBuiltReport.System.Resources.psd1 index 4290eef..ef0a682 100644 --- a/AsBuiltReport.System.Resources.psd1 +++ b/AsBuiltReport.System.Resources.psd1 @@ -27,7 +27,7 @@ # CompanyName = 'Unknown' # Copyright statement for this module - Copyright = '(c) 2025 AsBuiltReport. All rights reserved.' + Copyright = '(c) 2026 AsBuiltReport. All rights reserved.' # Description of the functionality provided by this module Description = 'A PowerShell module to generate an as built report on the configuration of System Resources.' @@ -56,6 +56,14 @@ @{ ModuleName = 'AsBuiltReport.Core'; ModuleVersion = '1.6.2' + }, + @{ + ModuleName = 'AsBuiltReport.Chart'; + ModuleVersion = '0.2.0' + }, + @{ + ModuleName = 'Diagrammer.Core'; + ModuleVersion = '0.2.38' } ) diff --git a/CHANGELOG.md b/CHANGELOG.md index dde6f14..3a8e6ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add initial support for diagrams using the Diagrammer module - Add Export-AbrDiagram function to handle diagram exports - Generate a Process Hierarchy Diagram in Invoke-AsBuiltReport.System.Resources +- Add initial support for charts + - Generate Memory Usage and CPU Usage charts in Invoke-AsBuiltReport.System.Resources + +### Changed + +- Increase module dependencies: + - AsBuiltReport.Core minimum version increased to 1.6.2 + - Diagrammer.Core minimum version increased to 0.2.38 + - AsBuiltReport.Chart minimum version increased to 0.2.0 ## [0.1.1] - 2025-10-11 diff --git a/Language/ar-SA/SystemResources.psd1 b/Language/ar-SA/SystemResources.psd1 index b89e772..5f200d5 100644 --- a/Language/ar-SA/SystemResources.psd1 +++ b/Language/ar-SA/SystemResources.psd1 @@ -1,11 +1,5 @@ # culture = 'ar-SA' @{ - # Invoke-AsBuiltReport.System.Resources - InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' - MainDiagramLabel = مخطط تسلسل العمليات - Unable = غير قادر على إنشاء مخطط تسلسل العمليات. -'@ - # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' InfoLevel = {0} تم تعيين InfoLevel على {1}. @@ -32,6 +26,16 @@ Company = الشركة Product = المنتج Unknown = غير معروف + + Generating = توليد مخطط العمليات. + Label = تسلسل العمليات + MainDiagramLabel = مخطط تسلسل العمليات + Unable = غير قادر على توليد مخطط تسلسل العمليات. + MEMUsage = استخدام الذاكرة + CPUUsage = استخدام وحدة المعالجة المركزية + Processes = العمليات + MEMUsageChart = استخدام الذاكرة - مخطط + CPUUsageChart = استخدام وحدة المعالجة المركزية - مخطط '@ # Get-AbrTimeZone @@ -80,11 +84,5 @@ Yes = نعم No = لا Unknown = غير معروف -'@ - # Get-AbrProcessDiagram - GetAbrProcessDiagram = ConvertFrom-StringData @' - InfoLevel = {0} تم تعيين InfoLevel على {1}. - Generating = جاري إنشاء مخطط تسلسل العمليات. - Label = مخطط تسلسل العمليات '@ } diff --git a/Language/cs-CZ/SystemResources.psd1 b/Language/cs-CZ/SystemResources.psd1 index a47b34c..c431369 100644 --- a/Language/cs-CZ/SystemResources.psd1 +++ b/Language/cs-CZ/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Společnost Product = Produkt Unknown = Neznámý + + Generating = Generování diagramu procesů. + Label = Hierarchie procesů + MainDiagramLabel = Diagram hierarchie procesů + Unable = Nelze vygenerovat diagram hierarchie procesů. + MEMUsage = Použití paměti + CPUUsage = Použití CPU + Processes = Procesy + MEMUsageChart = Použití paměti - Graf + CPUUsageChart = Použití CPU - Graf '@ # Get-AbrTimeZone diff --git a/Language/da-DK/SystemResources.psd1 b/Language/da-DK/SystemResources.psd1 index d6b318d..773a2b9 100644 --- a/Language/da-DK/SystemResources.psd1 +++ b/Language/da-DK/SystemResources.psd1 @@ -1,10 +1,5 @@ # culture = 'da-DK' @{ - # Invoke-AsBuiltReport.System.Resources - InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' - MainDiagramLabel = Proceshierarki Diagram - Unable = Kan ikke generere Proceshierarki Diagram. -'@ # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' InfoLevel = {0} InfoLevel indstillet til {1}. @@ -31,6 +26,16 @@ Company = Virksomhed Product = Produkt Unknown = Ukendt + + Generating = Genererer procesdiagram. + Label = Proceshierarki + MainDiagramLabel = Proceshierarkidiagram + Unable = Kan ikke generere proceshierarkidiagrammet. + MEMUsage = Brug af hukommelse + CPUUsage = Brug af CPU + Processes = Processer + MEMUsageChart = Brug af hukommelse - Diagram + CPUUsageChart = Brug af CPU - Diagram '@ # Get-AbrTimeZone @@ -79,11 +84,5 @@ Yes = Ja No = Nej Unknown = Ukendt -'@ - # Get-AbrProcessDiagram - GetAbrProcessDiagram = ConvertFrom-StringData @' - InfoLevel = {0} InfoLevel indstillet til {1}. - Generating = Genererer procesdiagram. - Label = Proceshierarki '@ } diff --git a/Language/de-DE/SystemResources.psd1 b/Language/de-DE/SystemResources.psd1 index 8d7582b..8240c83 100644 --- a/Language/de-DE/SystemResources.psd1 +++ b/Language/de-DE/SystemResources.psd1 @@ -1,10 +1,5 @@ # culture = 'de-DE' @{ - # Invoke-AsBuiltReport.System.Resources - InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' - MainDiagramLabel = Prozesshierarchie Diagramm - Unable = Das Prozesshierarchie Diagramm kann nicht generiert werden. -'@ # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' InfoLevel = {0} InfoLevel auf {1} gesetzt. @@ -31,6 +26,16 @@ Company = Unternehmen Product = Produkt Unknown = Unbekannt + + Generating = Generieren des Prozessdiagramms. + Label = Prozesshierarchie + MainDiagramLabel = Prozesshierarchiediagramm + Unable = Unfähig, das Prozesshierarchiediagramm zu generieren. + MEMUsage = Speichernutzung + CPUUsage = CPU-Auslastung + Processes = Prozesse + MEMUsageChart = Speichernutzung - Diagramm + CPUUsageChart = CPU-Auslastung - Diagramm '@ # Get-AbrTimeZone @@ -79,11 +84,5 @@ Yes = Ja No = Nein Unknown = Unbekannt -'@ - # Get-AbrProcessDiagram - GetAbrProcessDiagram = ConvertFrom-StringData @' - InfoLevel = {0} InfoLevel auf {1} gesetzt. - Generating = Generiere Prozessdiagramm. - Label = Prozesshierarchie '@ } diff --git a/Language/el-GR/SystemResources.psd1 b/Language/el-GR/SystemResources.psd1 index 70622e6..aab5567 100644 --- a/Language/el-GR/SystemResources.psd1 +++ b/Language/el-GR/SystemResources.psd1 @@ -1,10 +1,5 @@ # culture = 'el-GR' @{ - # Invoke-AsBuiltReport.System.Resources - InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' - MainDiagramLabel = Διάγραμμα Ιεραρχίας Διαδικασιών - Unable = Δεν είναι δυνατή η δημιουργία του Διαγράμματος Ιεραρχίας Διαδικασιών. -'@ # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' InfoLevel = {0} InfoLevel ορίστηκε σε {1}. @@ -31,6 +26,16 @@ Company = Εταιρεία Product = Προϊόν Unknown = Άγνωστο + + Generating = Δημιουργία διαγράμματος διεργασιών. + Label = Ιεραρχία διεργασιών + MainDiagramLabel = Διάγραμμα ιεραρχίας διεργασιών + Unable = Αδυναμία δημιουργίας διαγράμματος ιεραρχίας διεργασιών. + MEMUsage = Χρήση μνήμης + CPUUsage = Χρήση CPU + Processes = Διεργασίες + MEMUsageChart = Χρήση μνήμης - Διάγραμμα + CPUUsageChart = Χρήση CPU - Διάγραμμα '@ # Get-AbrTimeZone @@ -79,11 +84,5 @@ Yes = Ναι No = Όχι Unknown = Άγνωστο -'@ - # Get-AbrProcessDiagram - GetAbrProcessDiagram = ConvertFrom-StringData @' - InfoLevel = {0} InfoLevel ορίστηκε σε {1}. - Generating = Δημιουργία διαγράμματος διεργασιών. - Label = Ιεραρχία διεργασιών '@ } diff --git a/Language/en-GB/SystemResources.psd1 b/Language/en-GB/SystemResources.psd1 index 3716b45..6f2a47f 100644 --- a/Language/en-GB/SystemResources.psd1 +++ b/Language/en-GB/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Company Product = Product Unknown = Unknown + + Generating = Generating Process Diagram. + Label = Process Hierarchy + MainDiagramLabel = Process Hierarchy Diagram + Unable = Unable to generate the Process Hierarchy Diagram. + MEMUsage = Memory Usage + CPUUsage = CPU Usage + Processes = Processes + MEMUsageChart = Memory Usage - Chart + CPUUsageChart = CPU Usage - Chart '@ # Get-AbrTimeZone diff --git a/Language/en-US/SystemResources.psd1 b/Language/en-US/SystemResources.psd1 index cc6ead3..e16fb01 100644 --- a/Language/en-US/SystemResources.psd1 +++ b/Language/en-US/SystemResources.psd1 @@ -1,10 +1,5 @@ # culture = 'en-US' @{ - # Invoke-AsBuiltReport.System.Resources - InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' - MainDiagramLabel = Process Hierarchy Diagram - Unable = Unable to generate the Process Hierarchy Diagram. -'@ # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' InfoLevel = {0} InfoLevel set at {1}. @@ -31,6 +26,16 @@ Company = Company Product = Product Unknown = Unknown + + Generating = Generating Process Diagram. + Label = Process Hierarchy + MainDiagramLabel = Process Hierarchy Diagram + Unable = Unable to generate the Process Hierarchy Diagram. + MEMUsage = Memory Usage + CPUUsage = CPU Usage + Processes = Processes + MEMUsageChart = Memory Usage - Chart + CPUUsageChart = CPU Usage - Chart '@ # Get-AbrTimeZone @@ -80,11 +85,4 @@ No = No Unknown = Unknown '@ - # Get-AbrProcessDiagram - GetAbrProcessDiagram = ConvertFrom-StringData @' - InfoLevel = {0} InfoLevel set at {1}. - Generating = Generating Process Diagram. - Label = Process Hierarchy -'@ - } \ No newline at end of file diff --git a/Language/es-ES/SystemResources.psd1 b/Language/es-ES/SystemResources.psd1 index 5d0f951..f989a83 100644 --- a/Language/es-ES/SystemResources.psd1 +++ b/Language/es-ES/SystemResources.psd1 @@ -1,10 +1,5 @@ # culture = 'es-ES' @{ - # Invoke-AsBuiltReport.System.Resources - InvokeAsBuiltReportSystemResources = ConvertFrom-StringData @' - MainDiagramLabel = Diagrama de Jerarquía de Procesos - Unable = No se puede generar el Diagrama de Jerarquía de Procesos. -'@ # Get-AbrDate GetAbrDate = ConvertFrom-StringData @' InfoLevel = {0} InfoLevel configurado en {1}. @@ -31,6 +26,16 @@ Company = Compañía Product = Producto Unknown = Desconocido + + Generating = Generando Diagrama de Procesos. + Label = Jerarquía de Procesos + MainDiagramLabel = Diagrama de Jerarquía de Procesos + Unable = No se puede generar el Diagrama de Jerarquía de Procesos. + MEMUsage = Uso de Memoria + CPUUsage = Uso de CPU + Processes = Procesos + MEMUsageChart = Uso de Memoria - Gráfico + CPUUsageChart = Uso de CPU - Gráfico '@ # Get-AbrTimeZone @@ -79,11 +84,5 @@ Yes = Sí No = No Unknown = Desconocido -'@ - # Get-AbrProcessDiagram - GetAbrProcessDiagram = ConvertFrom-StringData @' - InfoLevel = {0} InfoLevel configurado en {1}. - Generating = Generando Diagrama de Procesos. - Label = Jerarquía de Procesos '@ } diff --git a/Language/fi-FI/SystemResources.psd1 b/Language/fi-FI/SystemResources.psd1 index e4151d3..d67063d 100644 --- a/Language/fi-FI/SystemResources.psd1 +++ b/Language/fi-FI/SystemResources.psd1 @@ -31,6 +31,16 @@ Company = Yritys Product = Tuote Unknown = Tuntematon + + Generating = Luodaan prosessikaaviota. + Label = Prosessihierarkia + MainDiagramLabel = Prosessihierarkia Kaavio + Unable = Prosessihierarkia Kaaviota ei voida luoda. + MEMUsage = Muistin käyttö + CPUUsage = CPU:n käyttö + Processes = Prosessit + MEMUsageChart = Muistin käyttö - Kaavio + CPUUsageChart = CPU:n käyttö - Kaavio '@ # Get-AbrTimeZone diff --git a/Language/fr-FR/SystemResources.psd1 b/Language/fr-FR/SystemResources.psd1 index b7044dd..f6f4d3b 100644 --- a/Language/fr-FR/SystemResources.psd1 +++ b/Language/fr-FR/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Société Product = Produit Unknown = Inconnu + + Generating = Génération du diagramme des processus. + Label = Hiérarchie des processus + MainDiagramLabel = Diagramme de la hiérarchie des processus + Unable = Impossible de générer le diagramme de la hiérarchie des processus. + MEMUsage = Utilisation de la mémoire + CPUUsage = Utilisation du CPU + Processes = Processus + MEMUsageChart = Utilisation de la mémoire - Diagramme + CPUUsageChart = Utilisation du CPU - Diagramme '@ # Get-AbrTimeZone diff --git a/Language/he-IL/SystemResources.psd1 b/Language/he-IL/SystemResources.psd1 index 019e82b..307697e 100644 --- a/Language/he-IL/SystemResources.psd1 +++ b/Language/he-IL/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = חברה Product = מוצר Unknown = לא ידוע + + Generating = יצירת דיאגרמת תהליכים. + Label = היררכיית תהליכים + MainDiagramLabel = דיאגרמת היררכיית תהליכים + Unable = לא ניתן ליצור את דיאגרמת היררכיית התהליכים. + MEMUsage = שימוש בזיכרון + CPUUsage = שימוש ב-CPU + Processes = תהליכים + MEMUsageChart = שימוש בזיכרון - דיאגרמה + CPUUsageChart = שימוש ב-CPU - דיאגרמה '@ # Get-AbrTimeZone diff --git a/Language/hi-IN/SystemResources.psd1 b/Language/hi-IN/SystemResources.psd1 index a1160bd..fd025a1 100644 --- a/Language/hi-IN/SystemResources.psd1 +++ b/Language/hi-IN/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = कंपनी Product = उत्पाद Unknown = अज्ञात + + Generating = प्रक्रिया आरेख बनाना। + Label = प्रक्रिया पदानुक्रम + MainDiagramLabel = प्रक्रिया पदानुक्रम आरेख + Unable = प्रक्रिया पदानुक्रम आरेख बनाने में असमर्थ। + MEMUsage = मेमोरी उपयोग + CPUUsage = CPU उपयोग + Processes = प्रक्रियाएं + MEMUsageChart = मेमोरी उपयोग - चार्ट + CPUUsageChart = CPU उपयोग - चार्ट '@ # Get-AbrTimeZone diff --git a/Language/hu-HU/SystemResources.psd1 b/Language/hu-HU/SystemResources.psd1 index 372dff5..bf7f2bb 100644 --- a/Language/hu-HU/SystemResources.psd1 +++ b/Language/hu-HU/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Cég Product = Termék Unknown = Ismeretlen + + Generating = Folyamatdiagram generálása. + Label = Folyamat hierarchia + MainDiagramLabel = Folyamat hierarchia diagram + Unable = Nem lehet generálni a folyamat hierarchia diagramot. + MEMUsage = Memória használat + CPUUsage = CPU használat + Processes = Folyamatok + MEMUsageChart = Memória használat - Diagram + CPUUsageChart = CPU használat - Diagram '@ # Get-AbrTimeZone diff --git a/Language/it-IT/SystemResources.psd1 b/Language/it-IT/SystemResources.psd1 index e0ae1bd..ed208d9 100644 --- a/Language/it-IT/SystemResources.psd1 +++ b/Language/it-IT/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Azienda Product = Prodotto Unknown = Sconosciuto + + Generating = Generazione del diagramma dei processi. + Label = Gerarchia dei processi + MainDiagramLabel = Diagramma della gerarchia dei processi + Unable = Impossibile generare il diagramma della gerarchia dei processi. + MEMUsage = Uso di Memoria + CPUUsage = Uso di CPU + Processes = Processi + MEMUsageChart = Uso di Memoria - Grafico + CPUUsageChart = Uso di CPU - Grafico '@ # Get-AbrTimeZone diff --git a/Language/ja-JP/SystemResources.psd1 b/Language/ja-JP/SystemResources.psd1 index 02e79a6..f1d0eb5 100644 --- a/Language/ja-JP/SystemResources.psd1 +++ b/Language/ja-JP/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = 会社 Product = 製品 Unknown = 不明 + + Generating = プロセス図を生成しています。 + Label = プロセス階層 + MainDiagramLabel = プロセス階層図 + Unable = プロセス階層図を生成できません。 + MEMUsage = メモリ使用量 + CPUUsage = CPU使用量 + Processes = プロセス + MEMUsageChart = メモリ使用量 - チャート + CPUUsageChart = CPU使用量 - チャート '@ # Get-AbrTimeZone diff --git a/Language/ko-KR/SystemResources.psd1 b/Language/ko-KR/SystemResources.psd1 index faee330..766d1b9 100644 --- a/Language/ko-KR/SystemResources.psd1 +++ b/Language/ko-KR/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = 회사 Product = 제품 Unknown = 알 수 없음 + + Generating = 프로세스 다이어그램 생성 중. + Label = 프로세스 계층 + MainDiagramLabel = 프로세스 계층 다이어그램 + Unable = 프로세스 계층 다이어그램을 생성할 수 없습니다. + MEMUsage = 메모리 사용량 + CPUUsage = CPU 사용량 + Processes = 프로세스 + MEMUsageChart = 메모리 사용량 - 차트 + CPUUsageChart = CPU 사용량 - 차트 '@ # Get-AbrTimeZone diff --git a/Language/nb-NO/SystemResources.psd1 b/Language/nb-NO/SystemResources.psd1 index a625d65..a2ff1fc 100644 --- a/Language/nb-NO/SystemResources.psd1 +++ b/Language/nb-NO/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Selskap Product = Produkt Unknown = Ukjent + + Generating = Genererer prosessdiagram. + Label = Prosesshierarki + MainDiagramLabel = Prosesshierarkidiagram + Unable = Kan ikke generere prosesshierarkidiagrammet. + MEMUsage = Minnebruk + CPUUsage = CPU-bruk + Processes = Prosesser + MEMUsageChart = Minnebruk - Diagram + CPUUsageChart = CPU-bruk - Diagram '@ # Get-AbrTimeZone diff --git a/Language/nl-NL/SystemResources.psd1 b/Language/nl-NL/SystemResources.psd1 index 9970e1d..ecb0b6b 100644 --- a/Language/nl-NL/SystemResources.psd1 +++ b/Language/nl-NL/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Bedrijf Product = Product Unknown = Onbekend + + Generating = Genereren van procesdiagram. + Label = Proceshiërarchie + MainDiagramLabel = Proceshiërarchiediagram + Unable = Kan het proceshiërarchiediagram niet genereren. + MEMUsage = Geheugen gebruik + CPUUsage = CPU gebruik + Processes = Processen + MEMUsageChart = Geheugen gebruik - Diagram + CPUUsageChart = CPU gebruik - Diagram '@ # Get-AbrTimeZone diff --git a/Language/pl-PL/SystemResources.psd1 b/Language/pl-PL/SystemResources.psd1 index 98b99bc..ea37127 100644 --- a/Language/pl-PL/SystemResources.psd1 +++ b/Language/pl-PL/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Firma Product = Produkt Unknown = Nieznany + + Generating = Generowanie diagramu procesów. + Label = Hierarchia procesów + MainDiagramLabel = Diagram hierarchii procesów + Unable = Nie można wygenerować diagramu hierarchii procesów. + MEMUsage = Użycie pamięci + CPUUsage = Użycie CPU + Processes = Procesy + MEMUsageChart = Wykres użycia pamięci + CPUUsageChart = Wykres użycia CPU '@ # Get-AbrTimeZone diff --git a/Language/pt-PT/SystemResources.psd1 b/Language/pt-PT/SystemResources.psd1 index f75794c..f04f14f 100644 --- a/Language/pt-PT/SystemResources.psd1 +++ b/Language/pt-PT/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Empresa Product = Produto Unknown = Desconhecido + + Generating = Gerando diagrama de processos. + Label = Hierarquia de Processos + MainDiagramLabel = Diagrama da Hierarquia de Processos + Unable = Não é possível gerar o Diagrama da Hierarquia de Processos. + MEMUsage = Uso de Memória + CPUUsage = Uso de CPU + Processes = Processos + MEMUsageChart = Uso de Memória - Gráfico + CPUUsageChart = Uso de CPU - Gráfico '@ # Get-AbrTimeZone diff --git a/Language/ru-RU/SystemResources.psd1 b/Language/ru-RU/SystemResources.psd1 index 57fd1a2..485fd57 100644 --- a/Language/ru-RU/SystemResources.psd1 +++ b/Language/ru-RU/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Компания Product = Продукт Unknown = Неизвестно + + Generating = Генерация диаграммы процессов. + Label = Иерархия процессов + MainDiagramLabel = Диаграмма иерархии процессов + Unable = Не удалось сгенерировать диаграмму иерархии процессов. + MEMUsage = Использование памяти + CPUUsage = Использование CPU + Processes = Процессы + MEMUsageChart = Использование памяти - Диаграмма + CPUUsageChart = Использование CPU - Диаграмма '@ # Get-AbrTimeZone diff --git a/Language/sv-SE/SystemResources.psd1 b/Language/sv-SE/SystemResources.psd1 index e2cb388..ec0b4a2 100644 --- a/Language/sv-SE/SystemResources.psd1 +++ b/Language/sv-SE/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Företag Product = Produkt Unknown = Okänd + + Generating = Genererar processdiagram. + Label = Processhierarki + MainDiagramLabel = Processhierarkidiagram + Unable = Kan inte generera processhierarkidiagrammet. + MEMUsage = Användning av minne + CPUUsage = Användning av CPU + Processes = Processer + MEMUsageChart = Användning av minne - Diagram + CPUUsageChart = Användning av CPU - Diagram '@ # Get-AbrTimeZone diff --git a/Language/th-TH/SystemResources.psd1 b/Language/th-TH/SystemResources.psd1 index ee43c67..bf50d27 100644 --- a/Language/th-TH/SystemResources.psd1 +++ b/Language/th-TH/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = บริษัท Product = ผลิตภัณฑ์ Unknown = ไม่ทราบ + + Generating = กำลังสร้างแผนภาพกระบวนการ + Label = ลำดับชั้นของกระบวนการ + MainDiagramLabel = แผนภาพลำดับชั้นของกระบวนการ + Unable = ไม่สามารถสร้างแผนภาพลำดับชั้นของกระบวนการได้ + MEMUsage = การใช้หน่วยความจำ + CPUUsage = การใช้ CPU + Processes = กระบวนการ + MEMUsageChart = การใช้หน่วยความจำ - แผนภาพ + CPUUsageChart = การใช้ CPU - แผนภาพ '@ # Get-AbrTimeZone diff --git a/Language/tr-TR/SystemResources.psd1 b/Language/tr-TR/SystemResources.psd1 index b816156..b8339b2 100644 --- a/Language/tr-TR/SystemResources.psd1 +++ b/Language/tr-TR/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Şirket Product = Ürün Unknown = Bilinmiyor + + Generating = İşlem Diyagramı Oluşturuluyor. + Label = İşlem Hiyerarşisi + MainDiagramLabel = İşlem Hiyerarşi Diyagramı + Unable = İşlem Hiyerarşi Diyagramı oluşturulamadı. + MEMUsage = Bellek Kullanımı + CPUUsage = CPU Kullanımı + Processes = İşlemler + MEMUsageChart = Bellek Kullanımı - Diyagram + CPUUsageChart = CPU Kullanımı - Diyagram '@ # Get-AbrTimeZone diff --git a/Language/vi-VN/SystemResources.psd1 b/Language/vi-VN/SystemResources.psd1 index 19667f3..16e4451 100644 --- a/Language/vi-VN/SystemResources.psd1 +++ b/Language/vi-VN/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = Công ty Product = Sản phẩm Unknown = Không rõ + + Generating = Đang tạo sơ đồ tiến trình. + Label = Cấu trúc tiến trình + MainDiagramLabel = Sơ đồ cấu trúc tiến trình + Unable = Không thể tạo sơ đồ cấu trúc tiến trình. + MEMUsage = Sử dụng bộ nhớ + CPUUsage = Sử dụng CPU + Processes = Tiến trình + MEMUsageChart = Sử dụng bộ nhớ - Biểu đồ + CPUUsageChart = Sử dụng CPU - Biểu đồ '@ # Get-AbrTimeZone diff --git a/Language/zh-CN/SystemResources.psd1 b/Language/zh-CN/SystemResources.psd1 index d186f49..5ae89b7 100644 --- a/Language/zh-CN/SystemResources.psd1 +++ b/Language/zh-CN/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = 公司 Product = 产品 Unknown = 未知 + + Generating = 正在生成进程图。 + Label = 进程层次结构 + MainDiagramLabel = 进程层次结构图 + Unable = 无法生成进程层次结构图。 + MEMUsage = 内存使用情况 + CPUUsage = CPU 使用情况 + Processes = 进程 + MEMUsageChart = 内存使用情况 - 图表 + CPUUsageChart = CPU 使用情况 - 图表 '@ # Get-AbrTimeZone diff --git a/Language/zh-Hans/SystemResources.psd1 b/Language/zh-Hans/SystemResources.psd1 index 949f039..f4d468b 100644 --- a/Language/zh-Hans/SystemResources.psd1 +++ b/Language/zh-Hans/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = 公司 Product = 产品 Unknown = 未知 + + Generating = 正在生成进程图。 + Label = 进程层次结构 + MainDiagramLabel = 进程层次结构图 + Unable = 无法生成进程层次结构图。 + MEMUsage = 内存使用情况 + CPUUsage = CPU 使用情况 + Processes = 进程 + MEMUsageChart = 内存使用情况 - 图表 + CPUUsageChart = CPU 使用情况 - 图表 '@ # Get-AbrTimeZone diff --git a/Language/zh-Hant/SystemResources.psd1 b/Language/zh-Hant/SystemResources.psd1 index c8bfa2b..66eb62b 100644 --- a/Language/zh-Hant/SystemResources.psd1 +++ b/Language/zh-Hant/SystemResources.psd1 @@ -27,6 +27,16 @@ Company = 公司 Product = 產品 Unknown = 未知 + + Generating = 正在生成進程圖。 + Label = 進程層次結構 + MainDiagramLabel = 進程層次結構圖 + Unable = 無法生成進程層次結構圖。 + MEMUsage = 記憶體使用情況 + CPUUsage = CPU 使用情況 + Processes = 處理程序 + MEMUsageChart = 記憶體使用情況 - 圖表 + CPUUsageChart = CPU 使用情況 - 圖表 '@ # Get-AbrTimeZone diff --git a/Src/Private/Export-AbrDiagram.ps1 b/Src/Private/Export-AbrDiagram.ps1 index d997057..c7f6f27 100644 --- a/Src/Private/Export-AbrDiagram.ps1 +++ b/Src/Private/Export-AbrDiagram.ps1 @@ -116,7 +116,7 @@ function Export-AbrDiagram { $Diagram = New-Diagrammer @DiagramParams -InputObject $Graph if ($Diagram) { $BestAspectRatio = Get-DiaBestImageAspectRatio -GraphObj $Diagram -MaxWidth 600 - Section -Style Heading2 $MainDiagramLabel { + Section -Style Heading3 $MainDiagramLabel { Image -Base64 $Diagram -Text "$MainDiagramLabel Diagram" -Width $BestAspectRatio.Width -Height $BestAspectRatio.Height -Align Center } } diff --git a/Src/Private/Get-AbrProcessDiagram.ps1 b/Src/Private/Get-AbrProcessDiagram.ps1 index 44e6b85..a238256 100644 --- a/Src/Private/Get-AbrProcessDiagram.ps1 +++ b/Src/Private/Get-AbrProcessDiagram.ps1 @@ -19,7 +19,6 @@ function Get-AbrProcessDiagram { ) begin { - $reportTranslate = $reportTranslate.GetAbrProcessDiagram Write-PScriboMessage ($($reportTranslate.InfoLevel) -f 'ProcessInfo', $($InfoLevel.ProcessInfo)) Write-PScriboMessage $($reportTranslate.Generating) # Used for DiagramDebug diff --git a/Src/Private/Get-AbrProcessInfo.ps1 b/Src/Private/Get-AbrProcessInfo.ps1 index 2ad4403..5077894 100644 --- a/Src/Private/Get-AbrProcessInfo.ps1 +++ b/Src/Private/Get-AbrProcessInfo.ps1 @@ -81,6 +81,36 @@ function Get-AbrProcessInfo { } $SystemProcessInfo | Table @TableParams } + try { + $Chart = New-BarChart -Values $SystemProcessInfo.$($reportTranslate.CPU) -Labels $SystemProcessInfo.$($reportTranslate.Name) -Title $reportTranslate.CPUUsage -EnableLegend -LegendOrientation Horizontal -LegendAlignment UpperCenter -Width 600 -Height 600 -Format base64 -LabelYAxis $($reportTranslate.CPU) -LabelXAxis $($reportTranslate.Processes) -TitleFontSize 20 -TitleFontBold -AreaOrientation Vertical -EnableCustomColorPalette -CustomColorPalette @('#395879', '#59779a', '#7b98bc', '#9dbae0', '#c0ddff') -AxesMarginsTop 0.5 + if ($Chart) { + Section -Style Heading3 $reportTranslate.CPUUsageChart { + Image -Text $reportTranslate.CPUUsageChart -Align 'Center' -Percent 70 -Base64 $Chart + } + } + } catch { + Write-PScriboMessage -IsWarning $_.Exception.Message + } + try { + $Chart = New-BarChart -Values $SystemProcessInfo.$($reportTranslate.Memory) -Labels $SystemProcessInfo.$($reportTranslate.Name) -Title $reportTranslate.MEMUsage -EnableLegend -LegendOrientation Horizontal -LegendAlignment UpperCenter -Width 600 -Height 600 -Format base64 -LabelYAxis $($reportTranslate.Memory) -LabelXAxis $($reportTranslate.Processes) -TitleFontSize 20 -TitleFontBold -AreaOrientation Vertical -EnableCustomColorPalette -CustomColorPalette @('#395879', '#59779a', '#7b98bc', '#9dbae0', '#c0ddff') -AxesMarginsTop 0.5 + if ($Chart) { + Section -Style Heading3 $reportTranslate.MEMUsageChart { + Image -Text $reportTranslate.MEMUsageChart -Align 'Center' -Percent 70 -Base64 $Chart + } + } + } catch { + Write-PScriboMessage -IsWarning $_.Exception.Message + } + try { + $ProcessDiagram = Get-AbrProcessDiagram + if ($ProcessDiagram) { + Export-AbrDiagram -DiagramObject $ProcessDiagram -MainDiagramLabel $reportTranslate.MainDiagramLabel -FileName 'AsBuiltReport.System.Resources.Cluster' + } else { + Write-PScriboMessage -IsWarning $reportTranslate.Unable + } + } catch { + Write-PScriboMessage -IsWarning $($_.Exception.Message) + } } } } diff --git a/Src/Public/Invoke-AsBuiltReport.System.Resources.ps1 b/Src/Public/Invoke-AsBuiltReport.System.Resources.ps1 index 88e9dcd..7c26fa1 100644 --- a/Src/Public/Invoke-AsBuiltReport.System.Resources.ps1 +++ b/Src/Public/Invoke-AsBuiltReport.System.Resources.ps1 @@ -33,14 +33,10 @@ function Invoke-AsBuiltReport.System.Resources { $InfoLevel = $ReportConfig.InfoLevel $Options = $ReportConfig.Options - # Import Translated Strings - $LocalizedData = $reportTranslate.InvokeAsBuiltReportSystemResources - # Used to set values to TitleCase where required $TextInfo = (Get-Culture).TextInfo - # Update/rename the $System variable and build out your code within the ForEach loop. The ForEach loop enables AsBuiltReport to generate an as built configuration against multiple defined targets. - + # Used to set diagrams icon images $script:Images = @{ 'AsBuiltReport_LOGO' = 'AsBuiltReport_Logo.png' 'AsBuiltReport_Signature' = 'AsBuiltReport_Signature.png' @@ -55,12 +51,6 @@ function Invoke-AsBuiltReport.System.Resources { Get-AbrUptime Get-AbrPSHost Get-AbrProcessInfo - $ProcessDiagram = Get-AbrProcessDiagram - if ($ProcessDiagram) { - Export-AbrDiagram -DiagramObject $ProcessDiagram -MainDiagramLabel $LocalizedData.MainDiagramLabel -FileName 'AsBuiltReport.System.Resources.Cluster' - } else { - Write-PScriboMessage -IsWarning $LocalizedData.Unable - } } } From 57992dd0243f20aebe98bda6b781a3c0a9adec9f Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 13:37:04 -0400 Subject: [PATCH 05/23] Update README with options schema and remove old command Removed outdated PowerShell installation command and added detailed options schema for report configuration. --- README.md | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index d0c5516..22cf572 100644 --- a/README.md +++ b/README.md @@ -106,9 +106,6 @@ Local user privileges are required to run this report. ### PowerShell ```powershell -# Install AsBuiltReport.Core 1.5.0-RC1 -Install-Module AsBuiltReport.Core -Repository PSGallery -AllowPrerelease - # Install install-module AsBuiltReport.System.Resources -Force @@ -166,7 +163,21 @@ The **Report** schema provides configuration of the System Resources report info ### Options The **Options** schema allows certain options within the report to be toggled on or off. - +| Sub-Schema | Setting | Default | Description | +| ---------------------- | ------------ | ------- | ----------------------------------------------------------------------------- | +| DiagramColumnSize | int | 3 | Set the diagram node table size | +| DiagramTheme | string | White | Set the diagram theme (Black/White/Neon) | +| DiagramWaterMark | string | empty | Set the diagram watermark | +| DiagramType | true / false | true | Toggle to enable/disable the export of individual diagram diagrams | +| DisableDiagramMainLogo | true / false | false | Toggle to enable/disable the main logo in diagrams | +| EnableDiagrams | true / false | false | Toggle to enable/disable infrastructure diagrams | +| EnableDiagramsDebug | true / false | false | Toggle to enable/disable diagram debug option | +| EnableDiagramSignature | true / false | false | Toggle to enable/disable diagram signature (bottom right corner) | +| ExportDiagrams | true / false | true | Toggle to enable/disable diagram export option | +| ExportDiagramsFormat | string array | png | Set the format used to export the infrastructure diagram (dot, png, pdf, svg) | +| SignatureAuthorName | string | empty | Set the signature author name | +| SignatureCompanyName | string | empty | Set the signature company name | + ### InfoLevel The **InfoLevel** schema allows configuration of each section of the report at a granular level. The following sections can be set. From 60c081eb8d6a6525c26c01c700bb07e6217690b9 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 13:41:07 -0400 Subject: [PATCH 06/23] Revise README for clarity on module functionality Updated README to clarify module status and usage. --- README.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 22cf572..ce170b5 100644 --- a/README.md +++ b/README.md @@ -31,8 +31,8 @@ # System Resources As Built Report - -## :exclamation: THIS ASBUILTREPORT MODULE IS CURRENTLY IN DEVELOPMENT AND MIGHT NOT YET BE FUNCTIONAL ❗ +> [!IMPORTANT] +> The intention of this report is to ilustrate the capabilities of the AsBuiltReport project. This report is not intended to be used for production environments and should only be used for testing and demonstration purposes. System Resources As Built Report is a PowerShell module which works in conjunction with [AsBuiltReport.Core](https://github.com/AsBuiltReport/AsBuiltReport.Core). @@ -98,9 +98,6 @@ PowerShell 5.1 or PowerShell 7, and the following PowerShell modules are require Local user privileges are required to run this report. -> [!IMPORTANT] -> The intention of this report is to demonstrate the multi-language capabilities of the AsBuiltReport project. Therefore, this report does not require any special privileges to run. - ## :package: Module Installation ### PowerShell From 654fb3471aaf9c6205c45e62bc0055935e4219c0 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 13:44:39 -0400 Subject: [PATCH 07/23] Add sample reports section to README Added a section for sample reports with a link to a sample HTML file. --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index ce170b5..37243c7 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,11 @@ System Resources As Built Report is a PowerShell module which works in conjuncti Please refer to the AsBuiltReport [website](https://www.asbuiltreport.com) for more detailed information about this project. +## :books: Sample Reports + +### Sample Report +Sample System Resources As Built report HTML file: [Sample System Resources As-Built Report.html](https://htmlpreview.github.io/?https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.System.Resources/dev/Samples/Sample%20System%20Resources%20As-Built%20Report.html) + # :beginner: Getting Started Below are the instructions on how to install, configure and generate a System Resources As Built report. From 186dad2cf6558a10601eb4f9d7fb30623cf7e733 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 13:45:04 -0400 Subject: [PATCH 08/23] Update README.md --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 37243c7..bc41c5a 100644 --- a/README.md +++ b/README.md @@ -41,8 +41,6 @@ System Resources As Built Report is a PowerShell module which works in conjuncti Please refer to the AsBuiltReport [website](https://www.asbuiltreport.com) for more detailed information about this project. ## :books: Sample Reports - -### Sample Report Sample System Resources As Built report HTML file: [Sample System Resources As-Built Report.html](https://htmlpreview.github.io/?https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.System.Resources/dev/Samples/Sample%20System%20Resources%20As-Built%20Report.html) # :beginner: Getting Started From 9f173cd99ab6d1b5486ba2a14001ec9167677268 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 13:46:19 -0400 Subject: [PATCH 09/23] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bc41c5a..b252b7e 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ System Resources As Built Report is a PowerShell module which works in conjuncti Please refer to the AsBuiltReport [website](https://www.asbuiltreport.com) for more detailed information about this project. ## :books: Sample Reports -Sample System Resources As Built report HTML file: [Sample System Resources As-Built Report.html](https://htmlpreview.github.io/?https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.System.Resources/dev/Samples/Sample%20System%20Resources%20As-Built%20Report.html) +Sample System Resources As Built report HTML file: [Sample System Resources As-Built Report.html](https://htmlpreview.github.io/?https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.System.Resources/refs/heads/dev/Samples/System%20Resources%20As%20Built%20Report.html) # :beginner: Getting Started Below are the instructions on how to install, configure and generate a System Resources As Built report. From 7b1b70205a1e858a35c6ad7308027295055446cf Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 13:47:09 -0400 Subject: [PATCH 10/23] Update print statement from 'Hello' to 'Goodbye' --- Samples/System Resources As Built Report.html | 188 +++++++++++------- 1 file changed, 118 insertions(+), 70 deletions(-) diff --git a/Samples/System Resources As Built Report.html b/Samples/System Resources As Built Report.html index 8cb3da8..dc411e4 100644 --- a/Samples/System Resources As Built Report.html +++ b/Samples/System Resources As Built Report.html @@ -1,4 +1,4 @@ - + System Resources As Built Report











AsBuiltReport Logo
-
System Resources As Built Report

Acme Inc.






















- - - +
System Resources As Built Report

As Built Report






















Author:Jonathan Colon
Date:Monday, September 29, 2025
Version:1.0
+ + +
Autor:As Built Report
Fecha:Sunday, February 22, 2026
Versión:1.0

-
System Resources As Built Report - v1.0

Table of Contents

- - - - - - +
System Resources As Built Report - v1.0

Tabla de Contenido

1127.0.0.1
1.1   Date
1.2   TimeZone
1.3   Uptime
1.4   PowerShell Host
1.5   Process
+ + + + + + + + +
1PH-ADMIN-01V.PHARMAX.LOCAL
1.1   Fecha
1.2   Zona Horaria
1.3   Tiempo de Actividad
1.4   PowerShell Host
1.5   Procesos
1.5.1      Uso de CPU - Gráfico
1.5.2      Uso de Memoria - Gráfico
1.5.3      Diagrama de Jerarquía de Procesos
-

-
System Resources As Built Report - v1.0

1 127.0.0.1

1.1 Date

The following sections detail the system date.

127.0.0.1

+

+
System Resources As Built Report - v1.0

1 PH-ADMIN-01V.PHARMAX.LOCAL

1.1 Fecha

Las siguientes secciones detallan la fecha del sistema.

ph-admin-01v.pharmax.local

+ + + +
Fecha2026-02-22
Hora13:24:08
+
Table 1 - Fecha - ph-admin-01v.pharmax.local

+

1.2 Zona Horaria

Las siguientes secciones detallan la zona horaria del sistema.

ph-admin-01v.pharmax.local

+ + + + + + +
Zona HorariaSA Western Standard Time
Nombre(UTC-04:00) Georgetown, La Paz, Manaus, San Juan
Hora actual02/22/2026 13:24:08
Desfase UTC base-04:00:00
Soporta horario de veranoNo
+
Table 2 - Zona Horaria - ph-admin-01v.pharmax.local

+

1.3 Tiempo de Actividad

Las siguientes secciones detallan el tiempo de actividad del sistema.

ph-admin-01v.pharmax.local

+ + +
Tiempo de Actividad02h 09m 43s
+
Table 3 - Tiempo de Actividad - ph-admin-01v.pharmax.local

+

1.4 PowerShell Host

Las siguientes secciones detallan el PowerShell Host del sistema.

ph-admin-01v.pharmax.local

+ + + + + + +
NombreVisual Studio Code Host
Versión2025.4.0
Cultura Actualen-US
Cultura UI Actualen-US
Depurador HabilitadoDesconocido
+
Table 4 - PowerShell Host - ph-admin-01v.pharmax.local

+

1.5 Procesos

Las siguientes secciones detallan el proceso del sistema.

node

- - + + + + + +
Date2025-09-29
Hour08:37:44
Nombrenode
Id4380
CPU (%)193
Memoria (MB)866
CompañíaNode.js
ProductoNode.js
-
Table 1 - Date - 127.0.0.1

-

1.2 TimeZone

The following sections detail the system time zones.

127.0.0.1

+
Table 5 - Procesos -

+

pwsh

- - - - - + + + + + +
TimeZoneSA Western Standard Time
Display Name(UTC-04:00) Georgetown, La Paz, Manaus, San Juan
Current Time09/29/2025 08:37:44
Base UTC Offset-04:00:00
Supports Daylight Saving TimeNo
Nombrepwsh
Id7800
CPU (%)39
Memoria (MB)427
CompañíaMicrosoft Corporation
ProductoPowerShell
-
Table 2 - TimeZone - 127.0.0.1

-

1.3 Uptime

The following sections detail the system uptime.

127.0.0.1

+
Table 6 - Procesos -

+

node

- + + + + + +
Uptime00h 44m 34s
Nombrenode
Id4184
CPU (%)27
Memoria (MB)77
CompañíaNode.js
ProductoNode.js
-
Table 3 - Uptime - 127.0.0.1

-

1.4 PowerShell Host

The following sections detail the system PowerShell host.

127.0.0.1

+
Table 7 - Procesos -

+

svchost

- - - - - + + + + + +
NameVisual Studio Code Host
Version2025.2.0
Current Cultureen-US
Current UI Cultureen-US
Debugger EnabledUnknown
Nombresvchost
Id3084
CPU (%)24
Memoria (MB)21
CompañíaMicrosoft Corporation
ProductoMicrosoft® Windows® Operating System
-
Table 4 - PowerShell Host - 127.0.0.1

-

1.5 Process

The following table summarises the top 10 system process. For more detailed information, please set the InfoLevel.ProcessInfo value to 2 in your report configuration file. Sorted by CPU usage.

- - - - - - - - - - - +
Table 8 - Procesos -

+

System

NameIdCPU (%)Memory (MB)
powershell675665310
node562054782
node590815671
powershell410413166
node26726104
WmiPrvSE4904618
System450
MsMpEng35244156
powershell13084115
powershell5860497
+ + + + + + +
NombreSystem
Id4
CPU (%)15
Memoria (MB)0
Compañía--
Producto--
-
Table 5 - Process - 127.0.0.1

+
Table 9 - Procesos -

+

1.5.1 Uso de CPU - Gráfico

+Uso de CPU - Gráfico +
+

1.5.2 Uso de Memoria - Gráfico

+Uso de Memoria - Gráfico +
+

1.5.3 Diagrama de Jerarquía de Procesos

+Diagrama de Jerarquía de Procesos Diagram +
-

+

From 09691e16d4244099d3ee227d2858adeb8c425def Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 13:52:44 -0400 Subject: [PATCH 11/23] Fix link to Sample System Resources As-Built Report --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b252b7e..3ab2a4c 100644 --- a/README.md +++ b/README.md @@ -41,7 +41,7 @@ System Resources As Built Report is a PowerShell module which works in conjuncti Please refer to the AsBuiltReport [website](https://www.asbuiltreport.com) for more detailed information about this project. ## :books: Sample Reports -Sample System Resources As Built report HTML file: [Sample System Resources As-Built Report.html](https://htmlpreview.github.io/?https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.System.Resources/refs/heads/dev/Samples/System%20Resources%20As%20Built%20Report.html) +Sample System Resources As Built report HTML file: [Sample System Resources As-Built Report.html](https://htmlpreview.github.io/?https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.System.Resources/dev/Samples/System%20Resources%20As%20Built%20Report.html) # :beginner: Getting Started Below are the instructions on how to install, configure and generate a System Resources As Built report. From 3d3d746b543caa0fc94d3955821612128878684a Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 13:54:32 -0400 Subject: [PATCH 12/23] Update print statement from 'Hello' to 'Goodbye' --- Samples/System Resources As Built Report.html | 140 ++++++------------ 1 file changed, 49 insertions(+), 91 deletions(-) diff --git a/Samples/System Resources As Built Report.html b/Samples/System Resources As Built Report.html index dc411e4..0c826a8 100644 --- a/Samples/System Resources As Built Report.html +++ b/Samples/System Resources As Built Report.html @@ -50,111 +50,69 @@ AsBuiltReport Logo
System Resources As Built Report

As Built Report






















- - - + + +
Autor:As Built Report
Fecha:Sunday, February 22, 2026
Versión:1.0
Author:As Built Report
Date:Sunday, February 22, 2026
Version:1.0

-
System Resources As Built Report - v1.0

Tabla de Contenido

- - - - - - - - - +
System Resources As Built Report - v1.0

Table of Contents

1PH-ADMIN-01V.PHARMAX.LOCAL
1.1   Fecha
1.2   Zona Horaria
1.3   Tiempo de Actividad
1.4   PowerShell Host
1.5   Procesos
1.5.1      Uso de CPU - Gráfico
1.5.2      Uso de Memoria - Gráfico
1.5.3      Diagrama de Jerarquía de Procesos
+ + + + + + + + +
1PH-ADMIN-01V.PHARMAX.LOCAL
1.1   Date
1.2   TimeZone
1.3   Uptime
1.4   PowerShell Host
1.5   Process
1.5.1      CPU Usage - Chart
1.5.2      Memory Usage - Chart
1.5.3      Process Hierarchy Diagram
-

-
System Resources As Built Report - v1.0

1 PH-ADMIN-01V.PHARMAX.LOCAL

1.1 Fecha

Las siguientes secciones detallan la fecha del sistema.

ph-admin-01v.pharmax.local

- - - +

+
System Resources As Built Report - v1.0

1 PH-ADMIN-01V.PHARMAX.LOCAL

1.1 Date

The following table summarises the system date.

Fecha2026-02-22
Hora13:24:08
+ +
DateHour
2026-02-2213:53:20
-
Table 1 - Fecha - ph-admin-01v.pharmax.local

-

1.2 Zona Horaria

Las siguientes secciones detallan la zona horaria del sistema.

ph-admin-01v.pharmax.local

+
Table 1 - Date - ph-admin-01v.pharmax.local

+

1.2 TimeZone

The following sections detail the system TimeZone.

ph-admin-01v.pharmax.local

- - - - - + + + + +
Zona HorariaSA Western Standard Time
Nombre(UTC-04:00) Georgetown, La Paz, Manaus, San Juan
Hora actual02/22/2026 13:24:08
Desfase UTC base-04:00:00
Soporta horario de veranoNo
TimeZoneSA Western Standard Time
DisplayName(UTC-04:00) Georgetown, La Paz, Manaus, San Juan
Current Time02/22/2026 13:53:20
Base UTC Offset-04:00:00
Supports Daylight Saving TimeNo
-
Table 2 - Zona Horaria - ph-admin-01v.pharmax.local

-

1.3 Tiempo de Actividad

Las siguientes secciones detallan el tiempo de actividad del sistema.

ph-admin-01v.pharmax.local

+
Table 2 - TimeZone - ph-admin-01v.pharmax.local

+

1.3 Uptime

The following sections detail the system Uptime.

ph-admin-01v.pharmax.local

- +
Tiempo de Actividad02h 09m 43s
Uptime02h 38m 55s
-
Table 3 - Tiempo de Actividad - ph-admin-01v.pharmax.local

-

1.4 PowerShell Host

Las siguientes secciones detallan el PowerShell Host del sistema.

ph-admin-01v.pharmax.local

+
Table 3 - Uptime - ph-admin-01v.pharmax.local

+

1.4 PowerShell Host

The following sections detail the system PowerShell Host.

ph-admin-01v.pharmax.local

- - - - - + + + + +
NombreVisual Studio Code Host
Versión2025.4.0
Cultura Actualen-US
Cultura UI Actualen-US
Depurador HabilitadoDesconocido
NameVisual Studio Code Host
Version2025.4.0
Current Cultureen-US
Current UI Cultureen-US
Debugger EnabledUnknown
Table 4 - PowerShell Host - ph-admin-01v.pharmax.local

-

1.5 Procesos

Las siguientes secciones detallan el proceso del sistema.

node

- - - - - - - -
Nombrenode
Id4380
CPU (%)193
Memoria (MB)866
CompañíaNode.js
ProductoNode.js
-
Table 5 - Procesos -

-

pwsh

- - - - - - - -
Nombrepwsh
Id7800
CPU (%)39
Memoria (MB)427
CompañíaMicrosoft Corporation
ProductoPowerShell
-
Table 6 - Procesos -

-

node

- - - - - - - -
Nombrenode
Id4184
CPU (%)27
Memoria (MB)77
CompañíaNode.js
ProductoNode.js
-
Table 7 - Procesos -

-

svchost

- - - - - - - -
Nombresvchost
Id3084
CPU (%)24
Memoria (MB)21
CompañíaMicrosoft Corporation
ProductoMicrosoft® Windows® Operating System
-
Table 8 - Procesos -

-

System

- - - - - - - +

1.5 Process

The following table summarises the top 5 system process. For more detailed information, please set the InfoLevel.ProcessInfo value to 2 in your report configuration file. Sorted by CPU usage.

NombreSystem
Id4
CPU (%)15
Memoria (MB)0
Compañía--
Producto--
+ + + + + +
NameIdCPU (%)Memory (MB)
node4380226740
pwsh780042421
svchost30842921
node41842979
System4170
-
Table 9 - Procesos -

-

1.5.1 Uso de CPU - Gráfico

-Uso de CPU - Gráfico +
Table 5 - Process - ph-admin-01v.pharmax.local

+

1.5.1 CPU Usage - Chart

+CPU Usage - Chart
-

1.5.2 Uso de Memoria - Gráfico

+

From 3a598684d2841528576b519130512501cf72013f Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 14:02:44 -0400 Subject: [PATCH 13/23] Change Ko-fi username in FUNDING.yml Updated Ko-fi username in FUNDING.yml --- .github/FUNDING.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 76fff57..38a40cf 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -3,7 +3,7 @@ #github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] #patreon: # Replace with a single Patreon username #open_collective: # Replace with a single Open Collective username -ko_fi: F1F8DEV80 +ko_fi: B0B7DDGZ7 #tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel #community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry #liberapay: # Replace with a single Liberapay username From ebc1dbc0df0d749b18fd15ab08fdcbdd8f5cbf90 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 14:04:29 -0400 Subject: [PATCH 14/23] Update GitHub Actions to use checkout@v6 --- .github/workflows/Release.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml index 3768003..58961d2 100644 --- a/.github/workflows/Release.yml +++ b/.github/workflows/Release.yml @@ -8,7 +8,7 @@ jobs: publish-to-gallery: runs-on: windows-latest steps: - - uses: actions/checkout@v5 + - uses: actions/checkout@v6 - name: Set PSRepository to Trusted for PowerShell Gallery shell: pwsh run: | @@ -17,6 +17,14 @@ jobs: shell: pwsh run: | Install-Module -Name AsBuiltReport.Core -Repository PSGallery -Force + - name: Install AsBuiltReport.Chart module + shell: pwsh + run: | + Install-Module -Name AsBuiltReport.Chart -Repository PSGallery -Force + - name: Install Diagrammer.Core module + shell: pwsh + run: | + Install-Module -Name Diagrammer.Core -Repository PSGallery -Force - name: Test Module Manifest shell: pwsh run: | From 1246f689913b7886cbb6007aaebae7de99168910 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 14:05:35 -0400 Subject: [PATCH 15/23] Add assignees to bug report template --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 33fadbd..4ed3f1f 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,7 +1,7 @@ name: Bug Report description: File a bug report labels: ["bug"] -assignees: +assignees: ["rebelinux", "tpcarman"] body: - type: textarea id: bug-description From c21738754bd07a8036003b27d6c91f5c0b598b9d Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 14:05:47 -0400 Subject: [PATCH 16/23] Add assignees to change request template --- .github/ISSUE_TEMPLATE/change_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/change_request.yml b/.github/ISSUE_TEMPLATE/change_request.yml index 3dea7b8..484c235 100644 --- a/.github/ISSUE_TEMPLATE/change_request.yml +++ b/.github/ISSUE_TEMPLATE/change_request.yml @@ -1,7 +1,7 @@ name: Change Request description: Request a new change or an improvement labels: ["change request"] -assignees: +assignees: ["rebelinux", "tpcarman"] body: - type: textarea id: description From 7e6ab3caca55600a471e7da6f24e51da24957246 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 14:06:56 -0400 Subject: [PATCH 17/23] Update placeholder in bug report template for PowerShell --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 4ed3f1f..3a7b620 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -69,7 +69,7 @@ body: attributes: label: PowerShell Modules description: Please provide information about the PowerShell modules are you using. Please provide the output from the following PowerShell command `Get-Module -ListAvailable @("AsBuiltReport.Core";"AsBuiltReport.System.Resources";"PScribo") | Select Name, Version` - placeholder: Get-Module -ListAvailable @("AsBuiltReport.Core";"AsBuiltReport.System.Resources";"PScribo") | Select Name, Version + placeholder: Get-Module -ListAvailable @("AsBuiltReport.Core";"AsBuiltReport.System.Resources";"PScribo";"AsBuiltReport.Chart";"Diagrammer.Core") | Select Name, Version validations: required: true - type: textarea From 77e47b919fe70a4044f75d1f683d7ebd9b877164 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 14:08:15 -0400 Subject: [PATCH 18/23] Update PowerShell modules description in bug report template --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 3a7b620..5f05b38 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -68,7 +68,7 @@ body: id: powershell-modules attributes: label: PowerShell Modules - description: Please provide information about the PowerShell modules are you using. Please provide the output from the following PowerShell command `Get-Module -ListAvailable @("AsBuiltReport.Core";"AsBuiltReport.System.Resources";"PScribo") | Select Name, Version` + description: Please provide information about the PowerShell modules are you using. Please provide the output from the following PowerShell command `Get-Module -ListAvailable @("AsBuiltReport.Core";"AsBuiltReport.System.Resources";"PScribo";"AsBuiltReport.Chart";"Diagrammer.Core") | Select Name, Version` placeholder: Get-Module -ListAvailable @("AsBuiltReport.Core";"AsBuiltReport.System.Resources";"PScribo";"AsBuiltReport.Chart";"Diagrammer.Core") | Select Name, Version validations: required: true From ff495f73a34bf56125cb5b8f743e0d536a9ade7a Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 15:01:36 -0400 Subject: [PATCH 19/23] Refactor process name retrieval in Get-AbrProcessDiagram and Get-AbrProcessInfo functions to only include the first part of the name --- Src/Private/Get-AbrProcessDiagram.ps1 | 2 +- Src/Private/Get-AbrProcessInfo.ps1 | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Src/Private/Get-AbrProcessDiagram.ps1 b/Src/Private/Get-AbrProcessDiagram.ps1 index a238256..707b889 100644 --- a/Src/Private/Get-AbrProcessDiagram.ps1 +++ b/Src/Private/Get-AbrProcessDiagram.ps1 @@ -50,7 +50,7 @@ function Get-AbrProcessDiagram { process { try { - $Process = Get-Process | Sort-Object -Property CPU -Descending | Select-Object -Property @{Name = 'Name'; Expression = { "$($_.Name) (Id=$($_.Id))" } } -First 5 + $Process = Get-Process | Sort-Object -Property CPU -Descending | Select-Object -Property @{Name = 'Name'; Expression = { "$($_.Name.Split(' ')[0]) (Id=$($_.Id))" } } -First 5 SubGraph ProcessH -Attributes @{Label = $($reportTranslate.Label); fontsize = 22; penwidth = 1.5; labelloc = 't'; style = 'dashed,rounded'; color = 'gray' } { Node 'System' -NodeScript { $_ } -Attributes @{shape = 'rectangle'; style = 'filled'; fillcolor = '#EDEDED'; color = '#71797E'; fontcolor = $Fontcolor; penwidth = 1.5; } Node $Process.Name -NodeScript { $_ } -Attributes @{shape = 'rectangle'; style = 'filled'; fillcolor = '#EDEDED'; color = '#71797E'; fontcolor = $Fontcolor; penwidth = 1.5; } diff --git a/Src/Private/Get-AbrProcessInfo.ps1 b/Src/Private/Get-AbrProcessInfo.ps1 index 5077894..bf3573e 100644 --- a/Src/Private/Get-AbrProcessInfo.ps1 +++ b/Src/Private/Get-AbrProcessInfo.ps1 @@ -34,7 +34,7 @@ function Get-AbrProcessInfo { $SystemProcessInfo = @() foreach ($Process in $SystemProcess) { $InObj = [Ordered]@{ - $($reportTranslate.Name) = $Process.ProcessName + $($reportTranslate.Name) = $Process.ProcessName.Split(' ')[0] $($reportTranslate.Id) = $Process.Id $($reportTranslate.CPU) = & { try { [math]::Round($Process.CPU, 0) } catch { '--' } } $($reportTranslate.Memory) = & { try { [math]::Round($Process.WorkingSet / 1MB, 0) } catch { '--' } } From 1d71ea5a66f1a38fe9b3c0557eee74f4cd74fb44 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 15:54:46 -0400 Subject: [PATCH 20/23] Enhance process diagram functionality and update resources - Updated Get-AbrProcessDiagram.ps1 to include CPU and memory usage for the top 5 CPU-consuming processes. - Modified the SubGraph to improve node representation and added additional information for each process. - Incremented version number in Get-AbrProcessInfo.ps1 from 0.1.1 to 0.1.2. - Added a new resource entry for process icons in Invoke-AsBuiltReport.System.Resources.ps1. - Introduced a new icon file Process.png for process representation. --- CHANGELOG.md | 4 + Samples/System Resources As Built Report.html | 108 +++++++++--------- Src/Private/Get-AbrProcessDiagram.ps1 | 10 +- Src/Private/Get-AbrProcessInfo.ps1 | 2 +- .../Invoke-AsBuiltReport.System.Resources.ps1 | 2 +- icons/Process.png | Bin 0 -> 13047 bytes 6 files changed, 65 insertions(+), 61 deletions(-) create mode 100644 icons/Process.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 3a8e6ce..2c50dfe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Diagrammer.Core minimum version increased to 0.2.38 - AsBuiltReport.Chart minimum version increased to 0.2.0 +### Fixed + +- Fix process name display in Process section and diagram by removing extra information from the process name. + ## [0.1.1] - 2025-10-11 ### Added diff --git a/Samples/System Resources As Built Report.html b/Samples/System Resources As Built Report.html index 0c826a8..f9735a4 100644 --- a/Samples/System Resources As Built Report.html +++ b/Samples/System Resources As Built Report.html @@ -8,31 +8,31 @@ hr { margin-top: 1.0rem; } .portrait { background: white; width: 210mm; display: block; margin-top: 1rem; margin-left: auto; margin-right: auto; margin-bottom: 1rem; position: relative; border-style: solid; border-width: 1px; border-color: #c6c6c6; } .landscape { background: white; width: 297mm; display: block; margin-top: 1rem; margin-left: auto; margin-right: auto; margin-bottom: 1rem; position: relative; border-style: solid; border-width: 1px; border-color: #c6c6c6; } + .Heading6 { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #009683; } .NOTOCHeading4 { font-family: 'Segoe Ui'; font-size: 1.00rem; text-align: left; font-weight: normal; color: #958026; } - .TableDefaultAltRow { font-family: 'Calibri','Candara','Segoe','Segoe UI','Optima','Arial','Sans-Serif'; font-size: 0.92rem; text-align: left; font-weight: normal; color: #000000; background-color: #d0ddee; } .Heading3 { font-family: 'Segoe Ui'; font-size: 1.08rem; text-align: left; font-weight: normal; color: #395879; } - .Critical { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #feddd7; } + .Footer { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: center; font-weight: normal; color: #565656; } + .Normal { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; } + .Caption { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; font-style: italic; color: #072e58; } + .Heading5 { font-family: 'Segoe Ui'; font-size: 0.92rem; text-align: left; font-weight: normal; color: #009684; } .Header { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: center; font-weight: normal; color: #565656; } - .Info { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #e3f5fc; } - .Heading2 { font-family: 'Segoe Ui'; font-size: 1.17rem; text-align: left; font-weight: normal; color: #204369; } + .Title3 { font-family: 'Segoe Ui'; font-size: 1.00rem; text-align: left; font-weight: normal; color: #395879; } .NOTOCHeading7 { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; font-style: italic; color: #00ebcd; } - .Heading4 { font-family: 'Segoe Ui'; font-size: 1.00rem; text-align: left; font-weight: normal; color: #958026; } - .NOTOCHeading6 { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #009683; } - .OK { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #dff0d0; } - .Normal { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; } - .TableDefaultRow { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; } + .Heading2 { font-family: 'Segoe Ui'; font-size: 1.17rem; text-align: left; font-weight: normal; color: #204369; } + .Critical { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #feddd7; } .Title2 { font-family: 'Segoe Ui'; font-size: 1.50rem; text-align: center; font-weight: normal; color: #204369; } - .Title3 { font-family: 'Segoe Ui'; font-size: 1.00rem; text-align: left; font-weight: normal; color: #395879; } + .NOTOCHeading6 { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #009683; } + .Heading1 { font-family: 'Segoe Ui'; font-size: 1.33rem; text-align: left; font-weight: normal; color: #072e58; } + .Heading4 { font-family: 'Segoe Ui'; font-size: 1.00rem; text-align: left; font-weight: normal; color: #958026; } .TableDefaultHeading { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #fafafa; background-color: #072e58; } - .TOC { font-family: 'Segoe Ui'; font-size: 1.33rem; text-align: left; font-weight: normal; color: #072e58; } - .Title { font-family: 'Segoe Ui'; font-size: 2.00rem; text-align: center; font-weight: normal; color: #072e58; } .Warning { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #fff4c7; } - .Footer { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: center; font-weight: normal; color: #565656; } - .Heading1 { font-family: 'Segoe Ui'; font-size: 1.33rem; text-align: left; font-weight: normal; color: #072e58; } + .TableDefaultRow { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; } .NOTOCHeading5 { font-family: 'Segoe Ui'; font-size: 0.92rem; text-align: left; font-weight: normal; color: #009684; } - .Heading5 { font-family: 'Segoe Ui'; font-size: 0.92rem; text-align: left; font-weight: normal; color: #009684; } - .Heading6 { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #009683; } - .Caption { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; font-style: italic; color: #072e58; } + .Title { font-family: 'Segoe Ui'; font-size: 2.00rem; text-align: center; font-weight: normal; color: #072e58; } + .OK { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #dff0d0; } + .TOC { font-family: 'Segoe Ui'; font-size: 1.33rem; text-align: left; font-weight: normal; color: #072e58; } + .TableDefaultAltRow { font-family: 'Calibri','Candara','Segoe','Segoe UI','Optima','Arial','Sans-Serif'; font-size: 0.92rem; text-align: left; font-weight: normal; color: #000000; background-color: #d0ddee; } + .Info { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #e3f5fc; } table.borderless { padding: 0.08rem 0.33rem 0rem 0.33rem; border-style: none; border-collapse: collapse; } table.borderless th { font-family: 'Segoe Ui'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; padding: 0.08rem 0.33rem 0rem 0.33rem; border-style: none; border-collapse: collapse; } table.borderless td { padding: 0.08rem 0.33rem 0rem 0.33rem; border-style: none; border-collapse: collapse; } @@ -57,37 +57,37 @@
System Resources As Built Report - v1.0

Table of Contents

- - - - - - - - - + + + + + + + + +
1PH-ADMIN-01V.PHARMAX.LOCAL
1.1   Date
1.2   TimeZone
1.3   Uptime
1.4   PowerShell Host
1.5   Process
1.5.1      CPU Usage - Chart
1.5.2      Memory Usage - Chart
1.5.3      Process Hierarchy Diagram
1LOCALHOST
1.1   Date
1.2   TimeZone
1.3   Uptime
1.4   PowerShell Host
1.5   Process
1.5.1      CPU Usage - Chart
1.5.2      Memory Usage - Chart
1.5.3      Process Hierarchy Diagram

-
System Resources As Built Report - v1.0

1 PH-ADMIN-01V.PHARMAX.LOCAL

1.1 Date

The following table summarises the system date.

+
System Resources As Built Report - v1.0

1 LOCALHOST

1.1 Date

The following table summarises the system date.

- +
DateHour
2026-02-2213:53:20
2026-02-2215:53:07
-
Table 1 - Date - ph-admin-01v.pharmax.local

-

1.2 TimeZone

The following sections detail the system TimeZone.

ph-admin-01v.pharmax.local

+
Table 1 - Date - localhost

+

1.2 TimeZone

The following sections detail the system TimeZone.

localhost

- - - + + + - +
TimeZoneSA Western Standard Time
DisplayName(UTC-04:00) Georgetown, La Paz, Manaus, San Juan
Current Time02/22/2026 13:53:20
TimeZoneAmerica/Puerto_Rico
DisplayName(UTC-04:00) Atlantic Time (Puerto Rico)
Current Time02/22/2026 15:53:07
Base UTC Offset-04:00:00
Supports Daylight Saving TimeNo
Supports Daylight Saving TimeYes
-
Table 2 - TimeZone - ph-admin-01v.pharmax.local

-

1.3 Uptime

The following sections detail the system Uptime.

ph-admin-01v.pharmax.local

+
Table 2 - TimeZone - localhost

+

1.3 Uptime

The following sections detail the system Uptime.

localhost

- +
Uptime02h 38m 55s
Uptime04h 43m 00s
-
Table 3 - Uptime - ph-admin-01v.pharmax.local

-

1.4 PowerShell Host

The following sections detail the system PowerShell Host.

ph-admin-01v.pharmax.local

+
Table 3 - Uptime - localhost

+

1.4 PowerShell Host

The following sections detail the system PowerShell Host.

localhost

@@ -95,24 +95,24 @@
NameVisual Studio Code Host
Version2025.4.0
Current UI Cultureen-US
Debugger EnabledUnknown
-
Table 4 - PowerShell Host - ph-admin-01v.pharmax.local

-

1.5 Process

The following table summarises the top 5 system process. For more detailed information, please set the InfoLevel.ProcessInfo value to 2 in your report configuration file. Sorted by CPU usage.

+
Table 4 - PowerShell Host - localhost

+

1.5 Process

The following table summarises the top 5 system process. For more detailed information, please set the InfoLevel.ProcessInfo value to 2 in your report configuration file. Sorted by CPU usage.

- - - - - + + + + +
NameIdCPU (%)Memory (MB)
node4380226740
pwsh780042421
svchost30842921
node41842979
System4170
cosmic-comp829535237
code20994510355
chrome11544403216
chrome1829360392
chrome16726220173
-
Table 5 - Process - ph-admin-01v.pharmax.local

-

1.5.1 CPU Usage - Chart

-CPU Usage - Chart +
Table 5 - Process - localhost

+

1.5.1 CPU Usage - Chart

+CPU Usage - Chart
-

1.5.2 Memory Usage - Chart

+

\ No newline at end of file diff --git a/Src/Private/Get-AbrProcessDiagram.ps1 b/Src/Private/Get-AbrProcessDiagram.ps1 index 707b889..52a45c8 100644 --- a/Src/Private/Get-AbrProcessDiagram.ps1 +++ b/Src/Private/Get-AbrProcessDiagram.ps1 @@ -50,12 +50,12 @@ function Get-AbrProcessDiagram { process { try { - $Process = Get-Process | Sort-Object -Property CPU -Descending | Select-Object -Property @{Name = 'Name'; Expression = { "$($_.Name.Split(' ')[0]) (Id=$($_.Id))" } } -First 5 - SubGraph ProcessH -Attributes @{Label = $($reportTranslate.Label); fontsize = 22; penwidth = 1.5; labelloc = 't'; style = 'dashed,rounded'; color = 'gray' } { - Node 'System' -NodeScript { $_ } -Attributes @{shape = 'rectangle'; style = 'filled'; fillcolor = '#EDEDED'; color = '#71797E'; fontcolor = $Fontcolor; penwidth = 1.5; } - Node $Process.Name -NodeScript { $_ } -Attributes @{shape = 'rectangle'; style = 'filled'; fillcolor = '#EDEDED'; color = '#71797E'; fontcolor = $Fontcolor; penwidth = 1.5; } - Edge -From 'System' -To $Process.Name -Attributes @{color = $Edgecolor; style = 'dashed'; penwidth = 1.5; } + $Process = Get-Process | Sort-Object -Property CPU -Descending | Select-Object -Property @{Name = 'Name'; Expression = { "$($_.Name.Split(' ')[0]) (Id=$($_.Id))" } }, @{Name = 'CPU'; Expression = { try { [math]::Round($_.CPU, 0) } catch { '--' } } }, @{Name = 'MEM'; Expression = { try { [math]::Round($_.WorkingSet / 1MB, 0) } catch { '--' } } } -First 5 + SubGraph ProcessH -Attributes @{Label = $($reportTranslate.Label); fontsize = 28; fontcolor = $Fontcolor; penwidth = 1.5; labelloc = 't'; style = 'dashed,rounded'; color = 'gray' } { + Add-DiaNodeIcon -Name 'System' -IconDebug $IconDebug -IconType 'Process' -ImagesObj $Images -NodeObject + $Process | ForEach-Object { Add-DiaNodeIcon -Name $_.Name -IconDebug $IconDebug -IconType 'Process' -ImagesObj $Images -NodeObject -AditionalInfo @{'CPU Usage' = $_.CPU; 'Memory Usage' = $_.MEM} } + Edge -From 'System' -To $Process.Name -Attributes @{color = $Edgecolor; style = 'dashed'; penwidth = 1.5; } } } catch { diff --git a/Src/Private/Get-AbrProcessInfo.ps1 b/Src/Private/Get-AbrProcessInfo.ps1 index bf3573e..be65fe6 100644 --- a/Src/Private/Get-AbrProcessInfo.ps1 +++ b/Src/Private/Get-AbrProcessInfo.ps1 @@ -6,7 +6,7 @@ function Get-AbrProcessInfo { .DESCRIPTION .NOTES - Version: 0.1.1 + Version: 0.1.2 Author: AsBuiltReport Community Twitter: @AsBuiltReport Github: AsBuiltReport diff --git a/Src/Public/Invoke-AsBuiltReport.System.Resources.ps1 b/Src/Public/Invoke-AsBuiltReport.System.Resources.ps1 index 7c26fa1..1ff2d51 100644 --- a/Src/Public/Invoke-AsBuiltReport.System.Resources.ps1 +++ b/Src/Public/Invoke-AsBuiltReport.System.Resources.ps1 @@ -41,6 +41,7 @@ function Invoke-AsBuiltReport.System.Resources { 'AsBuiltReport_LOGO' = 'AsBuiltReport_Logo.png' 'AsBuiltReport_Signature' = 'AsBuiltReport_Signature.png' 'Abr_LOGO_Footer' = 'AsBuiltReport.png' + 'Process' = 'Process.png' } #region foreach loop @@ -52,7 +53,6 @@ function Invoke-AsBuiltReport.System.Resources { Get-AbrPSHost Get-AbrProcessInfo } - } #endregion foreach loop } diff --git a/icons/Process.png b/icons/Process.png new file mode 100644 index 0000000000000000000000000000000000000000..99f7a24262d1e89d2bb65a86851f290d2fe33d2e GIT binary patch literal 13047 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 Date: Sun, 22 Feb 2026 16:01:30 -0400 Subject: [PATCH 21/23] Enhance Get-AbrProcessDiagram to include detailed process node information and improve diagram styling --- Src/Private/Get-AbrProcessDiagram.ps1 | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/Src/Private/Get-AbrProcessDiagram.ps1 b/Src/Private/Get-AbrProcessDiagram.ps1 index 52a45c8..23c1630 100644 --- a/Src/Private/Get-AbrProcessDiagram.ps1 +++ b/Src/Private/Get-AbrProcessDiagram.ps1 @@ -50,14 +50,29 @@ function Get-AbrProcessDiagram { process { try { + # Get top 5 CPU consuming processes and build diagram $Process = Get-Process | Sort-Object -Property CPU -Descending | Select-Object -Property @{Name = 'Name'; Expression = { "$($_.Name.Split(' ')[0]) (Id=$($_.Id))" } }, @{Name = 'CPU'; Expression = { try { [math]::Round($_.CPU, 0) } catch { '--' } } }, @{Name = 'MEM'; Expression = { try { [math]::Round($_.WorkingSet / 1MB, 0) } catch { '--' } } } -First 5 + + # Subgraph is a graphviz element that allows to group nodes together. In this case we are grouping the top 5 processes + # together in a subgraph called ProcessH. Subgraph is used to create a cluster in the diagram. The cluster is styled with a + # dashed border and a label. The nodes inside the cluster are the top 5 processes. Each process node has an icon and additional + # information about CPU and Memory usage. Edges are drawn from the System node to each process node with a dashed line. SubGraph ProcessH -Attributes @{Label = $($reportTranslate.Label); fontsize = 28; fontcolor = $Fontcolor; penwidth = 1.5; labelloc = 't'; style = 'dashed,rounded'; color = 'gray' } { + # Add system node with icon and then add process nodes with icons and additional info. + # Add-DiaNodeIcon is a custom function that adds an icon to the node. It takes parameters for the name of the node, + # whether to include debug styling, the type of icon to use, the images object that contains the icons, and the node + # object to add the icon to. For process nodes, additional info about CPU and Memory usage is added as well. Add-DiaNodeIcon -Name 'System' -IconDebug $IconDebug -IconType 'Process' -ImagesObj $Images -NodeObject - $Process | ForEach-Object { Add-DiaNodeIcon -Name $_.Name -IconDebug $IconDebug -IconType 'Process' -ImagesObj $Images -NodeObject -AditionalInfo @{'CPU Usage' = $_.CPU; 'Memory Usage' = $_.MEM} } - Edge -From 'System' -To $Process.Name -Attributes @{color = $Edgecolor; style = 'dashed'; penwidth = 1.5; } - } + # Add process nodes with icons and additional info about CPU and Memory usage. The process name is simplified to remove extra information. + $Process | ForEach-Object { Add-DiaNodeIcon -Name $_.Name -IconDebug $IconDebug -IconType 'Process' -ImagesObj $Images -NodeObject -AditionalInfo @{'CPU Usage' = $_.CPU; 'Memory Usage' = $_.MEM } } + + # Edge is a graphviz element that represents a connection between two nodes. In this case, we are adding edges from the System node + # to each process node. The edges are styled with a dashed line and a specific color based on the diagram theme. + # The pen width is set to 1.5 for better visibility. + $Process | ForEach-Object { Edge -From 'System' -To $_.Name -Attributes @{color = $Edgecolor; style = 'dashed'; penwidth = 1.5; } } + } } catch { Write-PScriboMessage -IsWarning $_.Exception.Message } From 1afba06416c437aa4dda4504b7a87f48d79696ff Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 17:21:09 -0400 Subject: [PATCH 22/23] Release 0.1.2 with new features and fixes Update changelog for version 0.1.2 release with added features and fixes. --- CHANGELOG.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2c50dfe..1e6f23f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.1.2] - Unreleased +## [0.1.2] - 2026-02-22 ### Added @@ -24,11 +24,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed -- Fix process name display in Process section and diagram by removing extra information from the process name. +- Fix process name display in Process section and diagram by removing extra information from the process name ## [0.1.1] - 2025-10-11 ### Added - Introduce multi-language support. -- Add sections for Date, TimeZone, Uptime, PowerShell Host, and Process. \ No newline at end of file +- Add sections for Date, TimeZone, Uptime, PowerShell Host, and Process. From 3e712e76a419578da42239e54a563d4df39f7df4 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 22 Feb 2026 17:21:38 -0400 Subject: [PATCH 23/23] Update CHANGELOG for clarity on new features Refine wording for diagram and chart generation entries. --- CHANGELOG.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1e6f23f..f485f57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,9 +11,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Add initial support for diagrams using the Diagrammer module - Add Export-AbrDiagram function to handle diagram exports - - Generate a Process Hierarchy Diagram in Invoke-AsBuiltReport.System.Resources + - Generate a Process Hierarchy Diagram - Add initial support for charts - - Generate Memory Usage and CPU Usage charts in Invoke-AsBuiltReport.System.Resources + - Generate Memory Usage and CPU Usage charts ### Changed