From 25206e6895ae40c53967eabbbf0ba5cfeb7675d3 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Mon, 24 Oct 2022 10:48:10 -0400 Subject: [PATCH 01/18] Removed Linux & MacOs guidelines --- README.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/README.md b/README.md index 7713607..8b8ac5f 100644 --- a/README.md +++ b/README.md @@ -68,14 +68,6 @@ PowerShell 5.1 or PowerShell 7, and the following PowerShell modules are require - [VMware PowerCLI Module](https://www.powershellgallery.com/packages/VMware.PowerCLI/) - [AsBuiltReport.VMware.Horizon Module](https://www.powershellgallery.com/packages/AsBuiltReport.VMware.Horizon/) -### Linux & macOS - -* .NET Core is required for cover page image support on Linux and macOS operating systems. - * [Installing .NET Core for macOS](https://docs.microsoft.com/en-us/dotnet/core/install/macos) - * [Installing .NET Core for Linux](https://docs.microsoft.com/en-us/dotnet/core/install/linux) - -❗ If you are unable to install .NET Core, you must set `ShowCoverPageImage` to `False` in the report JSON configuration file. - ### :closed_lock_with_key: Required Privileges - A VMware Horizon As Built Report can be generated with Administrators(Read only) privileges. From 9ed68d6366201243a0c60f047f28b3b6648e5ef2 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Wed, 12 Jul 2023 11:10:55 -0400 Subject: [PATCH 02/18] Close #6 --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 8b8ac5f..486fa9e 100644 --- a/README.md +++ b/README.md @@ -208,3 +208,9 @@ PS C:\> New-AsBuiltReport -Report VMware.Horizon -Target 'Horizon-cs-01.corp.loc # Generate a Horizon As Built Report for Horizon Connection Server 'Horizon-cs-01.corp.local' using specified credentials. Export report to HTML & DOCX formats. Use default report style. Reports are saved to the user profile folder by default. Attach and send reports via e-mail. PS C:\> New-AsBuiltReport -Report VMware.Horizon -Target 'Horizon-cs-01.corp.local' -Username 'administrator@domain.local' -Password 'VMware1!' -Format Html,Word -OutputFolderPath 'C:\Users\Jon\Documents' -SendEmail +``` + +## :x: Known Issues + +- There are problems with the report when the IP address is used instead of the "Fully Qualified Domain Name" of the server. +- The report requires the user to be specified as follows: "username@domain.local". Specifying otherwise will generate an error like this: "Valid Domain is required". From c846c1c912d0085356c171651b1ff7dce047cea9 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sun, 20 Aug 2023 09:06:30 -0400 Subject: [PATCH 03/18] Fix logo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 486fa9e..836c846 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@

- +

From c15397aec87df57ce9bed331f0a93d15325aee09 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Fri, 8 Sep 2023 16:16:15 -0400 Subject: [PATCH 04/18] Improved bug and feature request templates --- .github/ISSUE_TEMPLATE/bug_report.md | 35 -------- .github/ISSUE_TEMPLATE/bug_report.yml | 98 +++++++++++++++++++++++ .github/ISSUE_TEMPLATE/change_request.yml | 34 ++++++++ .github/ISSUE_TEMPLATE/config.yml | 1 + .github/ISSUE_TEMPLATE/feature_request.md | 17 ---- 5 files changed, 133 insertions(+), 52 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/change_request.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index 4de26c7..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..225a3ac --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,98 @@ +name: Bug Report +description: File a bug report +labels: ["bug"] +assignees: + - rebelinux +body: + - type: textarea + id: bug-description + attributes: + label: Bug description + description: >- + Please provide a clear and concise description of the bug. + validations: + required: true + - type: input + id: command-line-input + attributes: + label: Command-line input + description: >- + Please provide the command line input you are using to run AsBuiltReport. Please ensure that you obscure any sensitive information. + placeholder: New-AsBuiltReport -Report VMware.Horizon -Target xxxxxxx -Format Word,HTML -OutputFolderPath .\Documents\ -AsBuiltConfigFilePath .\AsBuiltReport\AsBuiltReport.json -ReportConfigFilePath .\AsBuiltReport\AsBuiltReport.VMware.Horizon.json -EnableHealthCheck -Verbose + validations: + required: true + - type: textarea + id: steps-to-reproduce + attributes: + label: Steps to reproduce + description: >- + Please provide a detailed list of steps to reproduce the bug. + placeholder: |- + 1. .... + 2. .... + 3. .... + validations: + required: true + - type: textarea + id: expected-behaviour + attributes: + label: Expected behaviour + description: >- + Please provide a clear and concise description of what you expected to happen. + validations: + required: true + - type: textarea + id: screenshots + attributes: + label: Screenshots + description: >- + Please attach any screenshots to help explain the problem. Please ensure that you obscure any sensitive information. + placeholder: |- + Drag and drop screenshots here. + - type: textarea + id: operating-system + attributes: + label: Operating System + description: Please provide information about the operating system are you using. + placeholder: macOS Big Sur, Windows 10, Ubuntu 20.04 LTS + validations: + required: true + - type: textarea + id: powershell-version + attributes: + label: PowerShell Version + description: Please provide information about the PowerShell version you are using. Please provide the output from the following PowerShell command `$PSVersionTable`. + placeholder: $PSVersionTable + validations: + required: true + - type: textarea + 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.VMware.Horizon";"PSPKI";"PScriboCharts";"PScribo") | Select Name, Version` + placeholder: Get-Module -ListAvailable @("AsBuiltReport.Core";"AsBuiltReport.VMware.Horizon";"PSPKI";"PScriboCharts";"PScribo") | Select Name, Version + validations: + required: true + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: This field is optional. You may provide additional context for the bug you wish to report. You may wish to include links to any related [issues](https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon/issues) or other relevant information. + - type: checkboxes + id: checklist + attributes: + label: Before submitting + description: >- + Please ensure your bug report fulfills all of the following requirements. + If you are unsure of what a specific requirement means, please follow the links to learn about it and understand why it is necessary before submitting. + options: + - label: >- + I have read and followed the [bug reporting guidelines](https://www.asbuiltreport.com/about/contributing/#reporting-issues-and-bugs). + required: true + - label: >- + I have read [the documentation](https://www.asbuiltreport.com/user-guide/new-asbuiltconfig), + and referred to the [known issues](https://www.asbuiltreport.com/user-guide/known-issues/) before submitting this bug report. + required: true + - label: >- + I have checked for previously opened & closed [issues](https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon/issues) before submitting this bug report. + required: true diff --git a/.github/ISSUE_TEMPLATE/change_request.yml b/.github/ISSUE_TEMPLATE/change_request.yml new file mode 100644 index 0000000..02dd650 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/change_request.yml @@ -0,0 +1,34 @@ +name: Change Request +description: Request a new change or an improvement +labels: ["change request"] +assignees: + - rebelinux +body: + - type: textarea + id: description + attributes: + label: Description + description: >- + Please provide a detailed description of your idea so that the project maintainers and contributors can fully understand what change, feature, or improvement you are proposing. + validations: + required: true + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: This field is optional. You may provide additional context for the idea you wish to propose. You may wish to include links to any related [issues](https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon/issues) or other relevant information. + - type: checkboxes + id: checklist + attributes: + label: Before submitting + description: >- + Please ensure your change request fulfills all of the following requirements. + If you are unsure of what a specific requirement means, please follow the links to learn about it and understand why it is necessary before submitting. + options: + - label: >- + I have read [the documentation](https://www.asbuiltreport.com/user-guide/new-asbuiltconfig), + and referred to the [known issues](https://www.asbuiltreport.com/user-guide/known-issues/) before submitting this change request. + required: true + - label: >- + I have checked for previously opened & closed [issues](https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon/issues) before submitting this change request. + required: true diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..ec4bb38 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1 @@ +blank_issues_enabled: false \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 5384295..0000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. From 89f237db1e48227b412f6731e9bd843c38584aea Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sat, 9 Sep 2023 09:41:10 -0400 Subject: [PATCH 05/18] Update bug_report.yml --- .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 225a3ac..59d3913 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -70,7 +70,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.VMware.Horizon";"PSPKI";"PScriboCharts";"PScribo") | Select Name, Version` - placeholder: Get-Module -ListAvailable @("AsBuiltReport.Core";"AsBuiltReport.VMware.Horizon";"PSPKI";"PScriboCharts";"PScribo") | Select Name, Version + placeholder: Get-Module -ListAvailable @("AsBuiltReport.Core";"AsBuiltReport.VMware.Horizon";"PScribo") | Select Name, Version validations: required: true - type: textarea From 3edc171250609ba9706342f2bd2fa8f1e5493f95 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Sat, 9 Sep 2023 10:23:37 -0400 Subject: [PATCH 06/18] Update bug_report.yml --- .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 59d3913..969e74b 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -69,7 +69,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.VMware.Horizon";"PSPKI";"PScriboCharts";"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.VMware.Horizon";"PScribo") | Select Name, Version` placeholder: Get-Module -ListAvailable @("AsBuiltReport.Core";"AsBuiltReport.VMware.Horizon";"PScribo") | Select Name, Version validations: required: true From 8e7cc34df80b4ad138945fbeff30c92cc492cde8 Mon Sep 17 00:00:00 2001 From: Chris Hildebrandt Date: Thu, 14 Dec 2023 15:28:53 -0600 Subject: [PATCH 07/18] Lots of Updates --- .github/ISSUE_TEMPLATE/bug_report.md | 35 +++ .github/ISSUE_TEMPLATE/feature_request.md | 17 ++ AsBuiltReport.VMware.Horizon.json | 18 +- README.md | 16 +- Src/Private/Get-AbrHRZAccessGroup.ps1 | 12 +- Src/Private/Get-AbrHRZAdminGroup.ps1 | 13 +- Src/Private/Get-AbrHRZApplicationPool.ps1 | 37 ++- Src/Private/Get-AbrHRZCertMgmt.ps1 | 83 ++++++ Src/Private/Get-AbrHRZCloudPod.ps1 | 104 ++++++++ Src/Private/Get-AbrHRZConnectionServer.ps1 | 225 ++++++++++++----- Src/Private/Get-AbrHRZDatastore.ps1 | 8 +- Src/Private/Get-AbrHRZDesktopPool.ps1 | 181 +++++++++++-- Src/Private/Get-AbrHRZDomains.ps1 | 116 +++++++++ Src/Private/Get-AbrHRZESXi.ps1 | 14 +- Src/Private/Get-AbrHRZEventConf.ps1 | 16 +- Src/Private/Get-AbrHRZFarm.ps1 | 145 ++++++++--- .../Get-AbrHRZFederationAccessGroups.ps1 | 138 ++++++++++ Src/Private/Get-AbrHRZGatewayCert.ps1 | 73 ++++++ Src/Private/Get-AbrHRZGlobalEntitlement.ps1 | 238 +++++++++++++++++- Src/Private/Get-AbrHRZGlobalPolicies.ps1 | 72 ++++++ Src/Private/Get-AbrHRZGlobalSetting.ps1 | 128 +++++++--- Src/Private/Get-AbrHRZHomeSite.ps1 | 1 + Src/Private/Get-AbrHRZInfrastructure.ps1 | 6 +- Src/Private/Get-AbrHRZLicense.ps1 | 128 +++++++--- Src/Private/Get-AbrHRZLocalEntitlement.ps1 | 3 +- Src/Private/Get-AbrHRZMachines.ps1 | 118 +++++++++ Src/Private/Get-AbrHRZRegisteredMachine.ps1 | 46 +++- Src/Private/Get-AbrHRZRolePermission.ps1 | 14 +- Src/Private/Get-AbrHRZRolePrivilege.ps1 | 39 ++- Src/Private/Get-AbrHRZSites.ps1 | 80 ++++++ Src/Private/Get-AbrHRZUAG.ps1 | 10 +- Src/Private/Get-AbrHRZVcenter.ps1 | 8 +- .../Invoke-ASBuiltReport.VMware.Horizon.ps1 | 190 ++++++++++---- 33 files changed, 2017 insertions(+), 315 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md create mode 100644 Src/Private/Get-AbrHRZCertMgmt.ps1 create mode 100644 Src/Private/Get-AbrHRZCloudPod.ps1 create mode 100644 Src/Private/Get-AbrHRZDomains.ps1 create mode 100644 Src/Private/Get-AbrHRZFederationAccessGroups.ps1 create mode 100644 Src/Private/Get-AbrHRZGatewayCert.ps1 create mode 100644 Src/Private/Get-AbrHRZGlobalPolicies.ps1 create mode 100644 Src/Private/Get-AbrHRZMachines.ps1 create mode 100644 Src/Private/Get-AbrHRZSites.ps1 diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..b735373 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,35 @@ +--- +name: Bug report +about: Create a report to help us improve + +--- + +**Describe the bug** +A clear and concise description of what the bug is. + +**To Reproduce** +Steps to reproduce the behavior: +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +**Expected behavior** +A clear and concise description of what you expected to happen. + +**Screenshots** +If applicable, add screenshots to help explain your problem. + +**Desktop (please complete the following information):** + - OS: [e.g. iOS] + - Browser [e.g. chrome, safari] + - Version [e.g. 22] + +**Smartphone (please complete the following information):** + - Device: [e.g. iPhone6] + - OS: [e.g. iOS8.1] + - Browser [e.g. stock browser, safari] + - Version [e.g. 22] + +**Additional context** +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..066b2d9 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,17 @@ +--- +name: Feature request +about: Suggest an idea for this project + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. diff --git a/AsBuiltReport.VMware.Horizon.json b/AsBuiltReport.VMware.Horizon.json index 800948b..e3f9857 100644 --- a/AsBuiltReport.VMware.Horizon.json +++ b/AsBuiltReport.VMware.Horizon.json @@ -21,12 +21,9 @@ "Desktop": 1, "Applications": 1, "Farms": 1, - "Machines": { - "vCenterVM": 1, - "RDSHosts": 1 - }, + "Machines": 1, "PersistentDisks": 1, - "ThinApps": 0, + "ThinApps": 1, "GlobalEntitlements": 1 }, "Settings": { @@ -61,7 +58,14 @@ "AdministratorsandGroups": 1, "RolePrivileges": 1, "RolePermissions": 1, - "AccessGroup": 1 + "AccessGroup": 1, + "FederationAccessGroup": 1 + }, + "CloudPodArch": { + "CloudPodArch": 1 + }, + "Sites": { + "Sites": 1 }, "EventConfiguration": { "EventDatabase": 1, @@ -69,7 +73,7 @@ "EventstoFileSystem": 1 }, "GlobalPolicies": { - "GlobalPolicies": 0 + "GlobalPolicies": 1 } } }, diff --git a/README.md b/README.md index 836c846..7713607 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@

- +

@@ -68,6 +68,14 @@ PowerShell 5.1 or PowerShell 7, and the following PowerShell modules are require - [VMware PowerCLI Module](https://www.powershellgallery.com/packages/VMware.PowerCLI/) - [AsBuiltReport.VMware.Horizon Module](https://www.powershellgallery.com/packages/AsBuiltReport.VMware.Horizon/) +### Linux & macOS + +* .NET Core is required for cover page image support on Linux and macOS operating systems. + * [Installing .NET Core for macOS](https://docs.microsoft.com/en-us/dotnet/core/install/macos) + * [Installing .NET Core for Linux](https://docs.microsoft.com/en-us/dotnet/core/install/linux) + +❗ If you are unable to install .NET Core, you must set `ShowCoverPageImage` to `False` in the report JSON configuration file. + ### :closed_lock_with_key: Required Privileges - A VMware Horizon As Built Report can be generated with Administrators(Read only) privileges. @@ -208,9 +216,3 @@ PS C:\> New-AsBuiltReport -Report VMware.Horizon -Target 'Horizon-cs-01.corp.loc # Generate a Horizon As Built Report for Horizon Connection Server 'Horizon-cs-01.corp.local' using specified credentials. Export report to HTML & DOCX formats. Use default report style. Reports are saved to the user profile folder by default. Attach and send reports via e-mail. PS C:\> New-AsBuiltReport -Report VMware.Horizon -Target 'Horizon-cs-01.corp.local' -Username 'administrator@domain.local' -Password 'VMware1!' -Format Html,Word -OutputFolderPath 'C:\Users\Jon\Documents' -SendEmail -``` - -## :x: Known Issues - -- There are problems with the report when the IP address is used instead of the "Fully Qualified Domain Name" of the server. -- The report requires the user to be specified as follows: "username@domain.local". Specifying otherwise will generate an error like this: "Valid Domain is required". diff --git a/Src/Private/Get-AbrHRZAccessGroup.ps1 b/Src/Private/Get-AbrHRZAccessGroup.ps1 index 45ef7e1..44f3013 100644 --- a/Src/Private/Get-AbrHRZAccessGroup.ps1 +++ b/Src/Private/Get-AbrHRZAccessGroup.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZAccessGroup { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -31,8 +31,8 @@ function Get-AbrHRZAccessGroup { try { if ($AccessGroups) { if ($InfoLevel.Settings.Administrators.AccessGroup -ge 1) { - section -Style Heading4 "Access Groups" { - Paragraph "The following section summarizes the configuration of Access Groups for $($HVEnvironment.split('.')[0]) server." + section -Style Heading3 "Access Groups" { + Paragraph "The following section summarizes the configuration of Access Groups for $($HVEnvironment) server." BlankLine $OutObj = @() $AccessGroupJoined = @() @@ -49,9 +49,9 @@ function Get-AbrHRZAccessGroup { } $TableParams = @{ - Name = "Access Groups - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Access Groups - $($HVEnvironment)" List = $false - ColumnWidths = 50, 50 + ColumnWidths = 35, 65 } if ($Report.ShowTableCaptions) { @@ -105,7 +105,7 @@ function Get-AbrHRZAccessGroup { $TableParams = @{ Name = "Access Groups - $($AccessGroup.base.Name)" List = $false - ColumnWidths = 50, 50 + ColumnWidths = 35, 65 } if ($Report.ShowTableCaptions) { diff --git a/Src/Private/Get-AbrHRZAdminGroup.ps1 b/Src/Private/Get-AbrHRZAdminGroup.ps1 index 1dbe444..ce64502 100644 --- a/Src/Private/Get-AbrHRZAdminGroup.ps1 +++ b/Src/Private/Get-AbrHRZAdminGroup.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZAdminGroup { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -31,8 +31,8 @@ function Get-AbrHRZAdminGroup { try { if ($Administrators) { if ($InfoLevel.Settings.Administrators.AdministratorsandGroups -ge 1) { - section -Style Heading4 "Administrators and Groups" { - Paragraph "The following section details the configuration of Administrators and Groups for $($HVEnvironment.split('.')[0]) server." + section -Style Heading3 "Administrators and Groups" { + Paragraph "The following section details the configuration of Administrators and Groups for $($HVEnvironment) server." BlankLine $OutObj = @() foreach ($Administrator in $Administrators) { @@ -71,7 +71,7 @@ function Get-AbrHRZAdminGroup { } $TableParams = @{ - Name = "Administrators and Groups - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Administrators and Groups - $($HVEnvironment)" List = $false ColumnWidths = 42, 15, 43 } @@ -82,7 +82,7 @@ function Get-AbrHRZAdminGroup { $OutObj | Sort-Object -Property 'Display Name' | Table @TableParams try { if ($InfoLevel.Settings.Administrators.AdministratorsandGroups -ge 2) { - section -Style Heading5 'Administrators Details' { + section -Style Heading4 "Administrators Users and Groups Details for $($Administrator.base.Name)" { foreach ($Administrator in $Administrators) { Write-PscriboMessage "Discovered $($Administrator.base.Name) Information." $RoleIDNameResults = '' @@ -124,6 +124,7 @@ function Get-AbrHRZAdminGroup { 'AD Distinguished Name' = $Administrator.base.AdDistinguishedName 'Email' = $Administrator.base.Email 'Kiosk User' = $Administrator.base.KioskUser + 'Un-Authenticated User' = $Administrator.base.UnauthenticatedUser 'Phone Number' = $Administrator.base.Phone 'Description' = $Administrator.base.Description 'in Folder' = $Administrator.base.InFolder @@ -135,7 +136,7 @@ function Get-AbrHRZAdminGroup { $TableParams = @{ Name = "Administrator - $($Administrator.base.Name)" List = $true - ColumnWidths = 50, 50 + ColumnWidths = 40, 60 } if ($Report.ShowTableCaptions) { diff --git a/Src/Private/Get-AbrHRZApplicationPool.ps1 b/Src/Private/Get-AbrHRZApplicationPool.ps1 index aa4cdab..1e3a69e 100644 --- a/Src/Private/Get-AbrHRZApplicationPool.ps1 +++ b/Src/Private/Get-AbrHRZApplicationPool.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZApplicationPool { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -32,11 +32,11 @@ function Get-AbrHRZApplicationPool { if ($Apps) { if ($InfoLevel.Inventory.Applications -ge 1) { section -Style Heading3 "Application Pool" { - Paragraph "The following section details the configuration of Application Pool for $($HVEnvironment.split('.')[0]) server." + Paragraph "The following section details the configuration of Application Pool for $($HVEnvironment) server." BlankLine $OutObj = @() foreach ($App in $Apps) { - Write-PscriboMessage "Discovered Applications Information." + Write-PscriboMessage "Discovered Applications Information for $($App.Data.DisplayName)." $inObj = [ordered] @{ 'Name' = $App.Data.DisplayName 'Version' = $App.ExecutionData.Version @@ -47,7 +47,7 @@ function Get-AbrHRZApplicationPool { } $TableParams = @{ - Name = "Applications - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Applications - $($HVEnvironment)" List = $false ColumnWidths = 34, 33, 33 } @@ -85,24 +85,35 @@ function Get-AbrHRZApplicationPool { } # Find out Global Application Entitlement Group for Applications + $GlobalApplicationEntitlementGroupDisplayName = ('') $GlobalApplicationEntitlementGroupMatch = $false foreach ($GlobalApplicationEntitlementGroup in $GlobalApplicationEntitlementGroups) { if ($GlobalApplicationEntitlementGroup.Id.id -eq $app.data.GlobalApplicationEntitlement.id) { $GlobalApplicationEntitlementGroupDisplayName = $GlobalApplicationEntitlementGroup.base.DisplayName $GlobalApplicationEntitlementGroupMatch = $true + } else { + $GlobalApplicationEntitlementGroupDisplayName = "No Global Application Entitlement" } if ($GlobalApplicationEntitlementGroupMatch) { break } } + If([string]::IsNullOrEmpty($App.Data.AvApplicationPackageGuid)){ + + $AppVolumesApp = "False" + } + else { + $AppVolumesApp = "True" + } + $ApplicationFileTypes = $App.ExecutionData.FileTypes | ForEach-Object { $_.FileType} $ApplicationFileTypesresult = $ApplicationFileTypes -join ', ' $OtherApplicationFileTypes = $App.ExecutionData.OtherFileTypes | ForEach-Object { $_.FileType} $OtherApplicationFileTypesresult = $OtherApplicationFileTypes -join ', ' - section -ExcludeFromTOC -Style NOTOCHeading5 $App.Data.DisplayName { + section -Style Heading5 "Application Summary - $($App.Data.DisplayName)" { $OutObj = @() Write-PscriboMessage "Discovered $($App.Data.DisplayName) Applications Information." $inObj = [ordered] @{ @@ -111,8 +122,18 @@ function Get-AbrHRZApplicationPool { 'Enabled' = $App.Data.Enabled 'Global Application Entitlement' = $GlobalApplicationEntitlementGroupDisplayName 'Enable Anti Affinity Rules' = $App.Data.EnableAntiAffinityRules - 'Anti Affinity Patterns' = $App.Data.AntiAffinityPatterns - 'Anti Affinity Count' = $App.Data.AntiAffinityCount + 'Anti-Affinity Patterns' = $App.Data.AntiAffinityPatterns + 'Anti-Affinity Count' = $App.Data.AntiAffinityCount + 'Enable Pre-Launch' = $App.Data.EnablePreLaunch + 'Connection Server Restrictions' = $App.Data.ConnectionServerRestrictions + 'Category Folder' = $App.Data.CategoryFolder + 'Client Restrictions' = $App.Data.ClientRestrictions + 'Shortcut Location' = $App.Data.ShortcutLocation + 'Multi Session Mode' = $App.Data.MultiSessionMode + 'Max Multi Sessions' = $App.Data.MaxMultiSessions + 'Cloud Brokered' = $App.Data.CloudBrokered + 'App Volumes App' = $AppVolumesApp + 'App Volumes Package' = $App.Data.AvApplicationPackageGuid 'Executable Path' = $App.ExecutionData.ExecutablePath 'Version' = $App.ExecutionData.Version 'Publisher' = $App.ExecutionData.Publisher @@ -129,7 +150,7 @@ function Get-AbrHRZApplicationPool { $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) $TableParams = @{ - Name = "Application - $($App.Data.Name)" + Name = "Application Summary - $($App.Data.DisplayName)" List = $true ColumnWidths = 50, 50 } diff --git a/Src/Private/Get-AbrHRZCertMgmt.ps1 b/Src/Private/Get-AbrHRZCertMgmt.ps1 new file mode 100644 index 0000000..9285f85 --- /dev/null +++ b/Src/Private/Get-AbrHRZCertMgmt.ps1 @@ -0,0 +1,83 @@ +function Get-AbrHRZCertMgmt { + <# + .SYNOPSIS + PowerShell script which documents the configuration of VMware Horizon in Word/HTML/XML/Text formats + .DESCRIPTION + Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. + .NOTES + Version: 1.1.0 + Author: Chris Hildebrandt, Karl Newick + Twitter: @childebrandt42, @karlnewick + Editor: Jonathan Colon, @jcolonfzenpr + Twitter: @asbuiltreport + Github: AsBuiltReport + Credits: Iain Brighton (@iainbrighton) - PScribo module + + + .LINK + https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon + #> + + [CmdletBinding()] + param ( + ) + + begin { + Write-PScriboMessage "Certificate Management InfoLevel set at $($InfoLevel.Settings.Servers.ConnectionServers.ConnectionServers)." + Write-PscriboMessage "Collecting Certificate Management information." + } + + process { + try { + if ($ConnectionServersHealth) { + if ($InfoLevel.Settings.CloudPodArch.CloudPodArch -ge 1) { + + # Connection Server Health Data + $ConnectionServerHealthData = $ConnectionServersHealth | Select-Object -First 1 + + section -Style Heading2 "Certificate Management" { + Paragraph "The following section details on the certificate management information for $($HVEnvironment)." + BlankLine + $OutObj = @() + + Write-PscriboMessage "Working on Certificate Information for $($ConnectionServerHealthData.Name)." + + $Cert = $ConnectionServerHealthData.CertificateHealth.ConnectionServerCertificate + $Bytes = [System.Text.Encoding]::UTF8.GetBytes($Cert) + $PodCert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($Bytes) + + $inObj = [ordered] @{ + 'Self-Signed Certificate' = $ConnectionServerHealthData.DefaultCertificate + 'Certificate Subject' = $PodCert.Subject + 'Certificate Issuer' = $PodCert.Issuer + 'Certificate Not Before' = $PodCert.NotBefore + 'Certificate Not After' = $PodCert.NotAfter + 'Certificate SANs' = $PodCert.DnsNameList + 'Certificate Thumbprint' = $PodCert.Thumbprint + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + if ($HealthCheck.ConnectionServers.Status) { + $OutObj | Where-Object { $_.'Enabled' -eq 'No' } | Set-Style -Style Warning -Property 'Enabled' + } + $TableParams = @{ + Name = "Certificate Management - $($HVEnvironment)" + List = $true + ColumnWidths = 30, 70 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + + } + + + } + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + end {} +} \ No newline at end of file diff --git a/Src/Private/Get-AbrHRZCloudPod.ps1 b/Src/Private/Get-AbrHRZCloudPod.ps1 new file mode 100644 index 0000000..74b6fcb --- /dev/null +++ b/Src/Private/Get-AbrHRZCloudPod.ps1 @@ -0,0 +1,104 @@ +function Get-AbrHRZCloudPod { + <# + .SYNOPSIS + PowerShell script which documents the configuration of VMware Horizon in Word/HTML/XML/Text formats + .DESCRIPTION + Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. + .NOTES + Version: 1.1.0 + Author: Chris Hildebrandt, Karl Newick + Twitter: @childebrandt42, @karlnewick + Editor: Jonathan Colon, @jcolonfzenpr + Twitter: @asbuiltreport + Github: AsBuiltReport + Credits: Iain Brighton (@iainbrighton) - PScribo module + + + .LINK + https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon + #> + + [CmdletBinding()] + param ( + ) + + begin { + Write-PScriboMessage "Cloud Pod Architecture InfoLevel set at $($InfoLevel.Settings.CloudPodArch.CloudPodArch)." + Write-PscriboMessage "Collecting Cloud Pod Architecture information." + } + + process { + try { + if ($CloudPodFederation) { + if ($InfoLevel.Settings.CloudPodArch.CloudPodArch -ge 1) { + section -Style Heading2 "Cloud Pod Architecture" { + Paragraph "The following section details on the cloud pod architecture information for $($HVEnvironment)." + BlankLine + $OutObj = @() + foreach ($CloudPodList in $CloudPodLists) { + + # CP Site Info + $CloudPodSiteInfo = $hzServices.Site.Site_Get($CloudPodList.site) + + # Connection Server Info + $CloudPodListEndpoints = $CloudPodList.Endpoints + $CloudPodListEndpointConnectionServerList = '' + foreach($CloudPodListEndpoint in $CloudPodListEndpoints){ + $CloudPodListEndpointConnectionServer = $hzServices.PodEndpoint.PodEndpoint_Get($CloudPodListEndpoint) + $CloudPodListEndpointConnectionServerList += $CloudPodListEndpointConnectionServer.name -join "`r`n" | Out-String + } + + # Active Global Entitlements + $CloudPodListActiveGlobalEntitlements = $CloudPodList.ActiveGlobalEntitlements + $CloudPodListActiveGlobalEntitlementList = '' + foreach($CloudPodListActiveGlobalEntitlement in $CloudPodListActiveGlobalEntitlements){ + $CloudPodListActiveGlobalEntitlementInfo = $hzServices.GlobalEntitlement.GlobalEntitlement_Get($CloudPodListActiveGlobalEntitlement) + $CloudPodListActiveGlobalEntitlementList += $CloudPodListActiveGlobalEntitlementInfo.Base.DisplayName -join "`r`n" | Out-String + } + + # Active Global Application Entitlements + $CloudPodListActiveGlobalApplicationEntitlements = $CloudPodList.ActiveGlobalApplicationEntitlements + $CloudPodListActiveGlobalApplicationEntitlementList = '' + foreach($CloudPodListActiveGlobalApplicationEntitlement in $CloudPodListActiveGlobalApplicationEntitlements){ + $CloudPodListActiveGlobalApplicationEntitlementInfo = $hzServices.GlobalApplicationEntitlement.GlobalApplicationEntitlement_Get($CloudPodListActiveGlobalApplicationEntitlement) + $CloudPodListActiveGlobalApplicationEntitlementList += $CloudPodListActiveGlobalApplicationEntitlementInfo.Base.DisplayName -join "`r`n" | Out-String + } + + + Write-PscriboMessage "Discovered Cloud Pod Federation Information." + $inObj = [ordered] @{ + 'Pod Name' = $CloudPodList.DisplayName + 'Pod Local' = $CloudPodList.Localpod + 'Pod Site' = $CloudPodSiteInfo.Base.DisplayName + 'Pod Description' = $CloudPodList.Description + 'Pod Cloud Managed' = $CloudPodList.CloudManaged + 'Pod Connection Servers' = $CloudPodListEndpointConnectionServerList + 'Pod Active Global Entitlements' = $CloudPodListActiveGlobalEntitlementList + 'Pod Active Global Application Entitlements' = $CloudPodListActiveGlobalApplicationEntitlementList + } + + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + + $TableParams = @{ + Name = "Cloud Pod Architecture - $($HVEnvironment)" + List = $true + ColumnWidths = 50, 50 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + + + } + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + end {} +} \ No newline at end of file diff --git a/Src/Private/Get-AbrHRZConnectionServer.ps1 b/Src/Private/Get-AbrHRZConnectionServer.ps1 index 95aae3e..6cbfca3 100644 --- a/Src/Private/Get-AbrHRZConnectionServer.ps1 +++ b/Src/Private/Get-AbrHRZConnectionServer.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZConnectionServer { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -31,17 +31,17 @@ function Get-AbrHRZConnectionServer { try { if ($ConnectionServers) { if ($InfoLevel.Settings.Servers.ConnectionServers.ConnectionServers -ge 1) { - section -Style Heading4 "Connection Servers" { - Paragraph "The following section details the configuration of Connection Servers for $($HVEnvironment.split('.')[0]) server." + section -Style Heading3 "Connection Servers" { + Paragraph "The following section details the configuration of Connection Servers for $($HVEnvironment) server." BlankLine $OutObj = @() foreach ($ConnectionServer in $ConnectionServers) { try { Write-PscriboMessage "Discovered Connection Servers Information $($ConnectionServer.General.Name)." - Switch ($GatewayServer.Type) - { - 'AP' {$GatewayType = 'UAG' } - } + #Switch ($GatewayServer.Type) + #{ + # 'AP' {$GatewayType = 'UAG' } + #} $inObj = [ordered] @{ 'Name' = $ConnectionServer.General.Name 'Version' = $ConnectionServer.General.Version @@ -60,7 +60,7 @@ function Get-AbrHRZConnectionServer { } $TableParams = @{ - Name = "Connection Servers - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Connection Servers - $($HVEnvironment)" List = $false ColumnWidths = 42, 43, 15 } @@ -73,10 +73,23 @@ function Get-AbrHRZConnectionServer { try { $OutObj = @() foreach ($ConnectionServer in $ConnectionServers) { - section -Style Heading5 "$($ConnectionServer.General.Name) Details" { + section -Style Heading5 "General $($ConnectionServer.General.Name) Details" { try { $ConnectionServerTags = $ConnectionServer.General | ForEach-Object { $_.Tags} $ConnectionServerTagsresult = $ConnectionServerTags -join ', ' + + # Connection Server Health Data + $ConnectionServerHealthMatch = $false + foreach ($ConnectionServerHealth in $ConnectionServersHealth) { + if ($ConnectionServerHealth.id.id -eq $ConnectionServer.id.id) { + $ConnectionServerHealthData = $ConnectionServerHealth + $ConnectionServerHealthMatch = $true + } + if ($ConnectionServerHealthMatch) { + break + } + } + Write-PscriboMessage "Discovered Connection Servers Information $($ConnectionServer.General.Name)." $inObj = [ordered] @{ 'Name' = $ConnectionServer.General.Name @@ -87,7 +100,7 @@ function Get-AbrHRZConnectionServer { 'Tags' = $ConnectionServerTagsresult 'External URL' = $ConnectionServer.General.ExternalURL 'External PCoIP URL' = $ConnectionServer.General.ExternalPCoIPURL - 'Auxillary External PCoIP IPv4 Address' = $ConnectionServer.General.AuxillaryExternalPCoIPIPv4Address + 'Auxiliary External PCoIP IPv4 Address' = $ConnectionServer.General.AuxillaryExternalPCoIPIPv4Address 'External App Blast URL' = $ConnectionServer.General.ExternalAppblastURL 'Local Connection Server' = $ConnectionServer.General.LocalConnectionServer 'Bypass Tunnel' = $ConnectionServer.General.BypassTunnel @@ -95,6 +108,9 @@ function Get-AbrHRZConnectionServer { 'Bypass App Blast Gateway' = $ConnectionServer.General.BypassAppBlastGateway 'IP Mode' = $ConnectionServer.General.IpMode 'FIPs Mode Enabled' = $ConnectionServer.General.FipsModeEnabled + 'Replication Status' = $ConnectionServerHealthData.ReplicationStatus.Status + 'Current CPU Usage Percentage' = $($ConnectionServerHealthData.ResourcesData.CpuUsagePercentage).ToString() + '%' + 'Current Memory Usage Percentage' = $($ConnectionServerHealthData.ResourcesData.MemoryUsagePercentage).ToString() + '%' } $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) @@ -113,59 +129,75 @@ function Get-AbrHRZConnectionServer { $TableParams['Caption'] = "- $($TableParams.Name)" } $OutObj | Table @TableParams - try { - $OutObj = @() - section -ExcludeFromTOC -Style NOTOCHeading6 "Authentication" { - try { - if($connectionserver.authentication.samlconfig.SamlAuthenticator) { - $SAMLAuth = $hzServices.SAMLAuthenticator.SAMLAuthenticator_Get($connectionserver.authentication.samlconfig.SamlAuthenticator) - $SAMLAuthList = $hzServices.SAMLAuthenticator.SAMLAuthenticator_list($ConnectionServer.Authentication.SamlConfig.SamlAuthenticators) - } - Write-PscriboMessage "Discovered Connection Servers Authentication Information $($ConnectionServer.General.Name)." - $inObj = [ordered] @{ - 'Smart Card Support' = $ConnectionServer.Authentication.SmartCardSupport - 'Log off When Smart Card Removed' = $ConnectionServer.Authentication.LogoffWhenRemoveSmartCard - 'RSA Secure ID Enabled' = $ConnectionServer.Authentication.RsaSecureIdConfig.SecureIdEnabled - 'RSA Secure ID Name Mapping' = $ConnectionServer.Authentication.RsaSecureIdConfig.NameMapping - 'RSA Secure ID Clear Node Secret' = $ConnectionServer.Authentication.RsaSecureIdConfig.ClearNodeSecret - 'RSA Secure ID Security File Data' = $ConnectionServer.Authentication.RsaSecureIdConfig.SecurityFileData - 'RSA Secure ID Security File Uploaded' = $ConnectionServer.Authentication.RsaSecureIdConfig.SecurityFileUploaded - 'Radius Enabled' = $ConnectionServer.Authentication.RadiusConfig.RadiusEnabled - 'Radius Authenticator' = $ConnectionServer.Authentication.RadiusConfig.RadiusAuthenticator - 'Radius Name Mapping' = $ConnectionServer.Authentication.RadiusConfig.RadiusNameMapping - 'Radius SSO' = $ConnectionServer.Authentication.RadiusConfig.RadiusSSO - 'SAML Support' = $ConnectionServer.Authentication.SamlConfig.SamlSupport - 'SAML Authenticator' = $SAMLAuth.base.Label - 'SAML Authenticators' = $SAMLAuthList.base.label - 'Unauthenticated Access Config Enabled' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.Enabled - 'Unauthenticated Access Default User' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.DefaultUser - 'Unauthenticated Access User Idle Timeout' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.UserIdleTimeout - } - $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) - $TableParams = @{ - Name = "Connection Servers - $($ConnectionServer.General.Name)" - List = $true - ColumnWidths = 50, 50 - } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" - } - $OutObj | Table @TableParams - } - catch { - Write-PscriboMessage -IsWarning $_.Exception.Message - } + try { + $OutObj = @() + section -Style Heading5 "Authentication $($ConnectionServer.General.Name) Details" { + try { + Write-PscriboMessage "Discovered Connection Servers Authentication Information $($ConnectionServer.General.Name)." + + if($connectionserver.authentication.samlconfig.SamlAuthenticators) { + $SAMLAuth = $hzServices.SAMLAuthenticator.SAMLAuthenticator_Get($connectionserver.authentication.samlconfig.SamlAuthenticator) + #$SAMLAuthList = $hzServices.SAMLAuthenticator.SAMLAuthenticator_list() } + + $inObj = [ordered] @{ + 'Smart Card Support' = $ConnectionServer.Authentication.SmartCardSupport + 'Log off When Smart Card Removed' = $ConnectionServer.Authentication.LogoffWhenRemoveSmartCard + 'RSA Secure ID Enabled' = $ConnectionServer.Authentication.RsaSecureIdConfig.SecureIdEnabled + 'RSA Secure ID Name Mapping' = $ConnectionServer.Authentication.RsaSecureIdConfig.NameMapping + 'RSA Secure ID Clear Node Secret' = $ConnectionServer.Authentication.RsaSecureIdConfig.ClearNodeSecret + 'RSA Secure ID Security File Data' = $ConnectionServer.Authentication.RsaSecureIdConfig.SecurityFileData + 'RSA Secure ID Security File Uploaded' = $ConnectionServer.Authentication.RsaSecureIdConfig.SecurityFileUploaded + 'Radius Enabled' = $ConnectionServer.Authentication.RadiusConfig.RadiusEnabled + 'Radius Authenticator' = $ConnectionServer.Authentication.RadiusConfig.RadiusAuthenticator + 'Radius Name Mapping' = $ConnectionServer.Authentication.RadiusConfig.RadiusNameMapping + 'Radius SSO' = $ConnectionServer.Authentication.RadiusConfig.RadiusSSO + 'SAML Support' = $ConnectionServer.Authentication.SamlConfig.SamlSupport + 'SAML Authenticator' = $SAMLAuth.General.Label + 'SAML Authenticator Description' = $SAMLAuth.General.Description + 'SAML Trigger Mode' = $SAMLAuth.General.CertificateSSOData.TriggerMode + 'SAML Password Mode' = $SAMLAuth.General.CertificateSSOData.PasswordMode + 'SAML Authenticator Type' = $SAMLAuth.server.AuthenticatorType + 'SAML Metadata URL' = $SAMLAuth.server.MetadataURL + 'SAML Administrator URL' = $SAMLAuth.server.AdministratorURL + 'SAML Static Meta Data' = $SAMLAuth.server.StaticMetaData + 'Unauthenticated Access Config Enabled' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.Enabled + 'Unauthenticated Access Default User' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.DefaultUser + 'Unauthenticated Access User Idle Timeout' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.UserIdleTimeout + 'Unauthenticated Access Client Puzzle Difficulty' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.ClientPuzzleDifficulty + 'Block Unsupported Clients' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.BlockUnsupportedClients } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + $TableParams = @{ + Name = "Authentication - $($ConnectionServer.General.Name)" + List = $true + ColumnWidths = 40, 60 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams } catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - try { + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + + try { $OutObj = @() - section -ExcludeFromTOC -Style NOTOCHeading6 "Backup" { + section -Style Heading5 "Backup $($ConnectionServer.General.Name) Details" { try { Write-PscriboMessage "Discovered Connection Servers Authentication Information $($ConnectionServer.General.Name)." $inObj = [ordered] @{ @@ -193,7 +225,7 @@ function Get-AbrHRZConnectionServer { } $TableParams = @{ - Name = "Connection Servers - $($ConnectionServer.General.Name)" + Name = "Backup - $($ConnectionServer.General.Name)" List = $true ColumnWidths = 50, 50 } @@ -208,22 +240,93 @@ function Get-AbrHRZConnectionServer { } } } - catch { - Write-PscriboMessage -IsWarning $_.Exception.Message + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + try { + $OutObj = @() + section -Style Heading5 "Certificate Details for $($ConnectionServer.General.Name) Details" { + try { + Write-PscriboMessage "Working on Certificate Information for $($ConnectionServerHealthData.Name)." + + $Cert = $ConnectionServerHealthData.CertificateHealth.ConnectionServerCertificate + $Bytes = [System.Text.Encoding]::UTF8.GetBytes($Cert) + $PodCert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($Bytes) + + $inObj = [ordered] @{ + 'Connection Server' = $ConnectionServerHealthData.Name + 'Self-Signed Certificate' = $ConnectionServerHealthData.DefaultCertificate + 'Certificate Subject' = $PodCert.Subject + 'Certificate Issuer' = $PodCert.Issuer + 'Certificate Not Before' = $PodCert.NotBefore + 'Certificate Not After' = $PodCert.NotAfter + 'Certificate SANs' = $PodCert.DnsNameList + 'Certificate Thumbprint' = $PodCert.Thumbprint + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + if ($HealthCheck.ConnectionServers.Status) { + $OutObj | Where-Object { $_.'Enabled' -eq 'No' } | Set-Style -Style Warning -Property 'Enabled' + } + $TableParams = @{ + Name = "Connection Servers - $($ConnectionServerHealthData.Name)" + List = $true + ColumnWidths = 30, 70 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } } - } - catch { - Write-PscriboMessage -IsWarning $_.Exception.Message - } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message } + } } catch { Write-PscriboMessage -IsWarning $_.Exception.Message } } + } } + + if ($InfoLevel.settings.servers.ConnectionServers.ConnectionServers -ge 1) { + try { + $OutObj = @() + section -Style Heading4 "Replication Status for Connection Servers" { + try { + Write-PscriboMessage "Working on Replication Information for $($ConnectionServersHealth.Namee)." + + $ConnectionServersHealth.ReplicationStatus | Where-Object { $_.ServerName -and $_.Status -and $_.Message} + $ConnectionServersHealth.ReplicationStatus | Table -Columns ServerName,Status,Message -Headers 'Replication Partner','Status','Message' + + $TableParams = @{ + Name = "Connection Servers Replication- $($ConnectionServerHealthData.Name)" + List = $true + ColumnWidths = 33, 33, 34 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + } } } catch { diff --git a/Src/Private/Get-AbrHRZDatastore.ps1 b/Src/Private/Get-AbrHRZDatastore.ps1 index a6c0d6f..aa23343 100644 --- a/Src/Private/Get-AbrHRZDatastore.ps1 +++ b/Src/Private/Get-AbrHRZDatastore.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZDatastore { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -31,7 +31,7 @@ function Get-AbrHRZDatastore { try { if ($vCenterHealth) { if ($InfoLevel.Settings.Servers.vCenterServers.DataStores -ge 1) { - section -Style Heading4 "Datastores" { + section -Style Heading5 "Datastores" { $OutObj = @() $Datastores = $vCenterHealth.datastoredata foreach ($DataStore in $Datastores) { @@ -56,7 +56,7 @@ function Get-AbrHRZDatastore { } $TableParams = @{ - Name = "Datastores - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Datastores - $($HVEnvironment)" List = $false ColumnWidths = 50, 50 } @@ -67,7 +67,7 @@ function Get-AbrHRZDatastore { $OutObj | Sort-Object -Property 'Name' | Table @TableParams try { if ($InfoLevel.Settings.Servers.vCenterServers.DataStores -ge 2) { - section -Style Heading5 "Datastores Detailed" { + section -Style Heading6 "Datastores Detailed" { foreach ($DataStore in $Datastores) { if ($DataStore) { try { diff --git a/Src/Private/Get-AbrHRZDesktopPool.ps1 b/Src/Private/Get-AbrHRZDesktopPool.ps1 index 6e883a0..729bb5a 100644 --- a/Src/Private/Get-AbrHRZDesktopPool.ps1 +++ b/Src/Private/Get-AbrHRZDesktopPool.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZDesktopPool { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -32,11 +32,11 @@ function Get-AbrHRZDesktopPool { if ($Pools) { if ($InfoLevel.Inventory.Desktop -ge 1) { section -Style Heading3 "Desktop Pools" { - Paragraph "The following section details the Desktop Pools configuration for $($HVEnvironment.split('.')[0]) server." + Paragraph "The following section details the Desktop Pools configuration for $($HVEnvironment) server." BlankLine $OutObj = @() foreach ($Pool in $Pools) { - Write-PscriboMessage "Discovered Desktop Pool Information." + Write-PscriboMessage "Discovered Desktop Pool Information for Pool $($Pool.Base.Name)." Switch ($Pool.Automateddesktopdata.ProvisioningType) { 'INSTANT_CLONE_ENGINE' {$ProvisioningType = 'Instant Clone' } @@ -58,7 +58,7 @@ function Get-AbrHRZDesktopPool { } $TableParams = @{ - Name = "Desktop Pools - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Desktop Pools - $($HVEnvironment.toUpper()[0])" List = $false ColumnWidths = 25, 25, 25, 25 } @@ -114,7 +114,7 @@ function Get-AbrHRZDesktopPool { $farmMatch = $false foreach ($farm in $farms) { - if ($farm.Id.id -eq $pool.rdsdesktopdata.farm.id) { + if ($farm.Id.id -eq $Pool.rdsdesktopdata.farm.id) { $FarmIDName = $farm.data.name $farmMatch = $true } @@ -123,6 +123,20 @@ function Get-AbrHRZDesktopPool { } } + # Desktop OS Data + $DesktopAssignmentViewResultsDataMatch = $false + foreach ($DesktopAssignmentViewResult in $DesktopAssignmentViewResultsData.DesktopAssignmentData) { + if ($DesktopAssignmentViewResult.name -eq $Pool.Base.Name) { + $NumberofPoolMachines = $DesktopAssignmentViewResult.Name + $PooLOpperatingSystem = $DesktopAssignmentViewResult.OperatingSystem + $PoolOpperatingSystemArch = $DesktopAssignmentViewResult.OperatingSystemArchitecture + $DesktopAssignmentViewResultsDataMatch = $true + } + if ($DesktopAssignmentViewResultsDataMatch) { + break + } + } + # Find vCenter ID Name $vCenterServerIDName = '' $PoolGroups = $pool.manualdesktopdata.virtualcenter.id @@ -245,6 +259,25 @@ function Get-AbrHRZDesktopPool { } } + # Black out Times + $BlackOutDates = $pool.ManualDesktopData.ViewStorageAcceleratorSettings.BlackoutTimes + $BlackOutDateString = $BlackOutDates | Format-Table | Out-String + + + # Pool Customization Type + $Customizations = ('') + If($pool.AutomatedDesktopData.CustomizationSettings.CustomizationType -eq "SYS_PREP"){ + Foreach ($vCenterServer in $vCenterServers){ + $Customizations = $hzServices.CustomizationSpec.CustomizationSpec_List($vCenterServer.id) + Foreach ($Customization in $Customizations){ + if($pool.AutomatedDesktopData.CustomizationSettings.SysprepCustomizationSettings.CustomizationSpec.id -eq $Customization.id.id){ + $PoolCustomization = $($Customization.CustomizationSpecData.Name) + } + } + + } + } + # VM Template $PoolTemplateName = '' if ($Pool.automateddesktopdata.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.Template.id){ @@ -256,7 +289,7 @@ function Get-AbrHRZDesktopPool { } } try { - section -Style Heading5 $($Pool.Base.name) { + section -Style Heading5 "Pool - $($Pool.Base.name)" { $SupportedDisplayProtocolsresult = '' $SupportedDisplayProtocols = $Pool.DesktopSettings.DisplayProtocolSettings | ForEach-Object { $_.SupportedDisplayProtocols} $SupportedDisplayProtocolsresult = $SupportedDisplayProtocols -join ', ' @@ -277,7 +310,7 @@ function Get-AbrHRZDesktopPool { } $DatastorePathsresult = $DatastorePaths -join ', ' try { - section -ExcludeFromTOC -Style NOTOCHeading5 "General" { + section -ExcludeFromTOC -Style NOTOCHeading5 "General Summary - $($Pool.Base.name)" { $OutObj = @() Write-PscriboMessage "Discovered $($Pool.Base.name) General Information." $inObj = [ordered] @{ @@ -324,15 +357,36 @@ function Get-AbrHRZDesktopPool { Write-PscriboMessage -IsWarning $_.Exception.Message } try { - section -ExcludeFromTOC -Style NOTOCHeading5 "Settings" { + section -ExcludeFromTOC -Style NOTOCHeading5 "Detailed Settings - $($Pool.Base.name)" { $OutObj = @() - Write-PscriboMessage "Discovered $($Pool.Base.name) Pool Settings Information." + Write-PscriboMessage "Discovered $($Pool.Base.name) Pool Setting Information." $inObj = [ordered] @{ + 'Name' = $Pool.Base.name + 'Display Name' = $Pool.base.displayName + 'Description' = $Pool.base.description + 'Access Group' = $AccessGroupName + 'Enabled' = $Pool.DesktopSettings.Enabled + 'Type' = $Pool.Type + 'Machine Source' = Switch ($pool.Source) { + 'INSTANT_CLONE_ENGINE' {'vCenter(Instant Clone)' } + 'VIRTUAL_CENTER' {'vCenter' } + default {$pool.Source} + } + 'Provisioning Type' = Switch ($Pool.Automateddesktopdata.ProvisioningType) { + 'INSTANT_CLONE_ENGINE' {'Instant Clone' } + 'VIRTUAL_CENTER' {'Full Virtual Machines' } + default {$Pool.Automateddesktopdata.ProvisioningType} + } + 'Enabled for Provisioning' = $Pool.automateddesktopdata.VirtualCenterProvisioningSettings.EnableProvisioning + 'Client Restrictions Enabled' = $Pool.DesktopSettings.ClientRestrictions + 'Max Number of Machines' = $pool.automateddesktopdata.vmnamingsettings.patternnamingsettings.MaxNumberOfMachines 'Min number of Machines' = $pool.automateddesktopdata.vmnamingsettings.patternnamingsettings.MinNumberOfMachines 'Number of Spare Machines' = $pool.automateddesktopdata.vmnamingsettings.patternnamingsettings.NumberOfSpareMachines 'Connection Server Restrictions' = [string]($Pool.DesktopSettings.ConnectionServerRestrictions -join ",") 'Stop Provisioning on Error' = $Pool.automateddesktopdata.VirtualCenterProvisioningSettings.StopProvisioningOnError + 'Add Virtual TPM' = $Pool.automateddesktopdata.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.AddVirtualTPM + 'Minimum Number of Machines Ready' = $Pool.automateddesktopdata.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.MinReadyVMsOnVComposerMaintenance 'Naming Method' = $Pool.automateddesktopdata.VmNamingSettings.NamingMethod 'Naming Pattern' = $pool.automateddesktopdata.vmnamingsettings.patternnamingsettings.namingpattern 'Power Policy' = $Pool.DesktopSettings.LogoffSettings.PowerPolicy @@ -345,16 +399,42 @@ function Get-AbrHRZDesktopPool { 'Refresh OS Disk After Logoff' = $Pool.DesktopSettings.LogoffSettings.RefreshOsDiskAfterLogoff 'Refresh Period Days for Replica OS Disk' = $Pool.DesktopSettings.LogoffSettings.RefreshPeriodDaysForReplicaOsDisk 'Refresh Threshold Percentage For Replica OS Disk' = $Pool.DesktopSettings.LogoffSettings.RefreshThresholdPercentageForReplicaOsDisk + 'Empty Session Timeout Policy' = $Pool.DesktopSettings.LogoffSettings.EmptySessionTimeoutPolicy + 'Empty Session Timeout Minutes' = $Pool.DesktopSettings.LogoffSettings.EmptySessionTimeoutMinutes + 'Log off After Timeout' = $Pool.DesktopSettings.LogoffSettings.LogoffAfterTimeout + 'Prelaunch Session Timeout Policy' = $Pool.DesktopSettings.LogoffSettings.PreLaunchSessionTimeoutPolicy + 'Prelaunch Session Timeout Minutes' = $Pool.DesktopSettings.LogoffSettings.PreLaunchSessionTimeoutMinutes + 'Session Timeout Policy' = $Pool.DesktopSettings.LogoffSettings.SessionTimeoutPolicy + 'Category Folder Name' = $pool.DesktopSettings.CategoryFolderName + 'Client Restrictions' = $Pool.DesktopSettings.ClientRestrictions + 'Shortcut Locations' = $Pool.DesktopSettings.ShortcutLocations + 'Allow Users to use Multiple Sessions Per User' = $Pool.DesktopSettings.LogoffSettings.AllowMultipleSessionsPerUser + 'Supported Session Types' = $Pool.DesktopSettings.SupportedSessionTypes + 'Cloud Managed' = $Pool.DesktopSettings.CloudManaged + 'Cloud Assigned' = $Pool.DesktopSettings.CloudAssigned + 'Display Assigned Machine Name' = $Pool.DesktopSettings.DisplayAssignedMachineName + 'Display Machine Alias' = $Pool.DesktopSettings.DisplayMachineAlias 'Supported Display Protocols' = $SupportedDisplayProtocolsresult 'Default Display Protocol' = $Pool.DesktopSettings.DisplayProtocolSettings.DefaultDisplayProtocol 'Allow Users to Choose Protocol' = $Pool.DesktopSettings.DisplayProtocolSettings.AllowUsersToChooseProtocol 'Enable HTML Access' = $Pool.DesktopSettings.DisplayProtocolSettings.EnableHTMLAccess + 'Enable Collaboration' = $Pool.DesktopSettings.DisplayProtocolSettings.EnableCollaboration 'Renderer 3D' = $Pool.DesktopSettings.DisplayProtocolSettings.PcoipDisplaySettings.Renderer3D 'Enable GRID vGPUs' = $Pool.DesktopSettings.DisplayProtocolSettings.PcoipDisplaySettings.EnableGRIDvGPUs 'vGPU Grid Profile' = $Pool.DesktopSettings.DisplayProtocolSettings.PcoipDisplaySettings.VGPUGridProfile 'vRam Size MB' = $Pool.DesktopSettings.DisplayProtocolSettings.PcoipDisplaySettings.VRamSizeMB 'Max Number of Monitors' = $Pool.DesktopSettings.DisplayProtocolSettings.PcoipDisplaySettings.MaxNumberOfMonitors 'Max Resolution of Any One Monitor' = $Pool.DesktopSettings.DisplayProtocolSettings.PcoipDisplaySettings.MaxResolutionOfAnyOneMonitor + 'Use View Storage Accelerator' = $pools.ManualDesktopData.ViewStorageAcceleratorSettings.UseViewStorageAccelerator + 'Regenerate View Storage Accelerator Days' = $pools.ManualDesktopData.ViewStorageAcceleratorSettings.RegenerateViewStorageAcceleratorDays + 'Black Out Times' = $BlackOutDateString + 'Transparent Page Sharing Scope' = $Pool.ManualDesktopData.VirtualCenterManagedCommonSettings.TransparentPageSharingScope + } + if ($Pool.Type -eq 'AUTOMATED') { + $inObj.Remove('Use View Storage Accelerator') + $inObj.Remove('Regenerate View Storage Accelerator Days') + $inObj.Remove('Black Out Times') + $inObj.Remove('Transparent Page Sharing Scope') } if ($Pool.Type -eq 'MANUAL') { @@ -400,7 +480,7 @@ function Get-AbrHRZDesktopPool { Write-PscriboMessage -IsWarning $_.Exception.Message } try { - section -ExcludeFromTOC -Style NOTOCHeading5 "vCenter Server" { + section -ExcludeFromTOC -Style NOTOCHeading5 "vCenter Server Settings - $($Pool.Base.name)" { $OutObj = @() Write-PscriboMessage "Discovered $($Pool.Base.name) vCenter Server Information." $inObj = [ordered] @{ @@ -411,6 +491,9 @@ function Get-AbrHRZDesktopPool { 'Template' = $PoolTemplateName 'Parent VM' = $PoolBaseImage 'Parent VM Path' = $PoolBaseImagePath + 'Current Number of Machines' = $NumberofPoolMachines + 'Parent Operating System' = $PooLOpperatingSystem + 'Parent Operating System Architecture' = $PoolOpperatingSystemArch 'Snapshot' = $BaseImageSnapshotListLast.name 'Snapshot Path' = $BaseImageSnapshotListLast.path 'Datacenter' = $PoolDataCenterName @@ -432,6 +515,8 @@ function Get-AbrHRZDesktopPool { } 'Datastores' = $DatastoreFinal 'Datastores Storage Over-Commit' = $StorageOvercommitsresult + 'Use VSan' = $pools.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterStorageSettings.usevsan + 'Storage Cluster Path' = $pools.AutomatedDesktopData.VirtualCenterNamesData.SdrsClusterPath 'View Storage Accelerator' = Switch ($Pool.Type) { 'MANUAL' {$Pool.ManualDesktopData.ViewStorageAcceleratorSettings.UseViewStorageAccelerator} 'AUTOMATED' {$Pool.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterStorageSettings.ViewStorageAcceleratorSettings.UseViewStorageAccelerator} @@ -447,10 +532,28 @@ function Get-AbrHRZDesktopPool { $null {'Golden Image network selected'} default {$Pool.AutomatedDesktopData.VirtualCenterNamesData.NetworkLabelNames} } + 'Network Card' = $NetworkInterfaceCardList.data.name + 'Network Label Enabled' = $pool.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterNetworkingSettings.nics.NetworkLabelAssignmentSpecs.Enabled + 'Network Nic Name' = $pool.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterNetworkingSettings.nics.NicName + 'Network Label Names' = [string]($Pool.DesktopSettings.ConnectionServerRestrictions -join ",") + 'Network Max Label Type' = $pool.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterNetworkingSettings.nics.NetworkLabelAssignmentSpecs.MaxLabelType + 'Network Max Label' = $pool.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterNetworkingSettings.nics.NetworkLabelAssignmentSpecs.MaxLabel 'Customization Type' = $Pool.automateddesktopdata.CustomizationSettings.CustomizationType - 'Guest Customization Account' = ($InstantCloneDomainAdmins | Where-Object {$_.id.id -eq $Pools.automateddesktopdata.CustomizationSettings.InstantCloneEngineDomainAdministrator.id}).Base.Username + 'Customization Spec Name' = $Pool.automateddesktopdata.CustomizationSettings.CustomizationSpecName + 'Power off Script Name' = $pools.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PowerOffScriptName + 'Power off Script Parameters' = $pools.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PowerOffScriptParameters + 'Post Synchronization Script Name' = $pools.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PostSynchronizationScriptName + 'Post Synchronization Script Parameters' = $pools.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PostSynchronizationScriptParameters + 'Priming Computer Account' = $pools.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PrimingComputerAccount + 'Guest Customization Account' = ($InstantCloneDomainAdmins | Where-Object {$_.id.id -eq $Pool.automateddesktopdata.CustomizationSettings.InstantCloneEngineDomainAdministrator.id}).Base.Username + 'No Customization Settings' = $pools.AutomatedDesktopData.CustomizationSettings.NoCustomizationSettings + 'Sysprep Customization Settings' = $PoolCustomization + 'Quick Prep Customization Settings' = $pool.AutomatedDesktopData.CustomizationSettings.QuickprepCustomizationSettings 'Ad Container' = $PoolContainerName 'Reuse Pre-Existing Accounts' = $Pool.automateddesktopdata.CustomizationSettings.ReusePreExistingAccounts + 'Image Management Stream' = $pool.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.ImageManagementStream + 'Image Management Tag' = $pool.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.ImageManagementTag + 'Compute Profile' = $pool.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.ComputeProfile } if ($Pool.Automateddesktopdata.ProvisioningType -eq 'VIRTUAL_CENTER') { @@ -503,12 +606,20 @@ function Get-AbrHRZDesktopPool { } + if ([string]::IsNullOrEmpty($pools.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings)) { + $inObj.Remove('Power off Script Name') + $inObj.Remove('Power Off Script Parameters') + $inObj.Remove('Post Synchronization Script Name') + $inObj.Remove('Post Synchronization Script Parameters') + $inObj.Remove('Priming Computer Account') + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) $TableParams = @{ - Name = "vCenter Server - $($Pool.Base.name)" + Name = "vCenter Server Settings - $($Pool.Base.name)" List = $true - ColumnWidths = 50, 50 + ColumnWidths = 40, 60 } if ($Report.ShowTableCaptions) { @@ -521,11 +632,53 @@ function Get-AbrHRZDesktopPool { Write-PscriboMessage -IsWarning $_.Exception.Message } } + + if ($InfoLevel.Inventory.Desktop -ge 3) { + try { + section -ExcludeFromTOC -Style NOTOCHeading6 "Pool Machine Summary - $($Pool.Base.name)" { + $OutObj = @() + foreach ($Machine in $Machines) { + If($Machine.Base.DesktopName -like $Pool.base.Name){ + $inObj = [ordered] @{ + 'Machine Name' = $Machine.Base.Name + 'Agent Version' = $Machine.Base.AgentVersion + 'User' = $Machine.Base.User + 'Host' = $Machine.ManagedMachineData.VirtualCenterData.Hostname + 'Data Store' = $Machine.ManagedMachineData.VirtualCenterData.VirtualDisks.DatastorePath + 'Basic State' = $Machine.Base.BasicState + } + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + } + + $TableParams = @{ + Name = "Pool Machine Summary - $($Pool.Base.Name)" + List = $false + ColumnWidths = 15, 10, 20, 25, 15, 15 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Sort-Object -Property 'Name' | Table @TableParams + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + } + } catch { Write-PscriboMessage -IsWarning $_.Exception.Message - } + } + + + } + + } } } diff --git a/Src/Private/Get-AbrHRZDomains.ps1 b/Src/Private/Get-AbrHRZDomains.ps1 new file mode 100644 index 0000000..7c86cb4 --- /dev/null +++ b/Src/Private/Get-AbrHRZDomains.ps1 @@ -0,0 +1,116 @@ +function Get-AbrHRZDomains { + <# + .SYNOPSIS + PowerShell script which documents the configuration of VMware Horizon in Word/HTML/XML/Text formats + .DESCRIPTION + Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. + .NOTES + Version: 1.1.0 + Author: Chris Hildebrandt, Karl Newick + Twitter: @childebrandt42, @karlnewick + Editor: Jonathan Colon, @jcolonfzenpr + Twitter: @asbuiltreport + Github: AsBuiltReport + Credits: Iain Brighton (@iainbrighton) - PScribo module + + + .LINK + https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon + #> + + [CmdletBinding()] + param ( + ) + + begin { + Write-PScriboMessage "InstantCloneDomainAccounts InfoLevel set at $($InfoLevel.Settings.InstantClone.InstantCloneDomainAccounts)." + Write-PscriboMessage "Collecting Instant Clone Domain Accounts information." + } + + process { + try { + section -Style Heading2 "Domains" { + if ($InstantCloneDomainAdmins) { + if ($InfoLevel.Settings.InstantClone.InstantCloneDomainAccounts -ge 1) { + section -Style Heading3 "Domain Accounts" { + Paragraph "The following section details the Domain Accounts configuration for $($HVEnvironment) server." + BlankLine + $OutObj = @() + foreach ($InstantCloneDomainAdmin in $InstantCloneDomainAdmins) { + try { + Write-PscriboMessage "Discovered Domain Accounts Information." + $inObj = [ordered] @{ + 'User Name' = $InstantCloneDomainAdmin.Base.UserName + 'Domain Name' = $InstantCloneDomainAdmin.NamesData.DnsName + } + + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + + $TableParams = @{ + Name = "Domain Accounts - $($HVEnvironment)" + List = $false + ColumnWidths = 50, 50 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Sort-Object -Property 'User Name' | Table @TableParams + } + } + } + if ($Domains) { + if ($InfoLevel.Settings.Servers.vCenterServers.ADDomains -ge 1) { + section -Style Heading3 "Connection Server" { + Paragraph "The following section shows connection servers domains for $($HVEnvironment) envirnoment." + BlankLine + $OutObj = @() + foreach ($Domain in $Domains) { + try { + Write-PscriboMessage "Discovered Domain Information $($Domain.DNSName)." + $inObj = [ordered] @{ + 'Domain DNS Name' = $Domain.DNSName + 'Status' = $Domain.ConnectionServerState[0].Status + 'Trust Relationship' = $Domain.ConnectionServerState[0].TrustRelationship + 'Connection Status' = $Domain.ConnectionServerState[0].Contactable + + } + + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + + if ($HealthCheck.DataStores.Status) { + $OutObj | Where-Object { $_.'Status' -eq 'ERROR'} | Set-Style -Style Warning + } + + $TableParams = @{ + Name = "Connection Server- $($HVEnvironment)" + List = $false + ColumnWidths = 25, 25, 25, 25 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Sort-Object -Property 'Name' | Table @TableParams + } + } + } + } + + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + end {} +} \ No newline at end of file diff --git a/Src/Private/Get-AbrHRZESXi.ps1 b/Src/Private/Get-AbrHRZESXi.ps1 index 46496d1..5aef413 100644 --- a/Src/Private/Get-AbrHRZESXi.ps1 +++ b/Src/Private/Get-AbrHRZESXi.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZESXi { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -31,8 +31,8 @@ function Get-AbrHRZESXi { try { if ($vCenterHealth) { if ($InfoLevel.Settings.Servers.vCenterServers.ESXiHosts -ge 1) { - section -Style Heading4 "ESXi Hosts" { - Paragraph "The following section details the hardware information of ESXi Hosts for $($HVEnvironment.split('.')[0]) server." + section -Style Heading5 "ESXi Hosts" { + Paragraph "The following section details the hardware information of ESXi Hosts for $($HVEnvironment) server." BlankLine $ESXHosts = $vCenterHealth.hostdata foreach ($ESXCLUSTER in ($ESXHosts.ClusterName | Select-Object -Unique)) { @@ -73,13 +73,13 @@ function Get-AbrHRZESXi { foreach ($ESXHost in ($ESXHosts | Where-Object {$_.ClusterName -eq $ESXCLUSTER})) { if ($ESXHost.Name) { try { - section -ExcludeFromTOC -Style NOTOCHeading5 "$($ESXHost.Name) Details" { + section -ExcludeFromTOC -Style NOTOCHeading6 "$($ESXHost.Name) Details" { Write-PscriboMessage "Discovered ESXI Server Information from $($ESXHost.Name)." $inObj = [ordered] @{ - 'Cpu Cores' = $ESXHost.NumCpuCores - 'Cpu in Mhz' = $ESXHost.CpuMhz + 'CPU Cores' = $ESXHost.NumCpuCores + 'CPU in Mhz' = $ESXHost.CpuMhz 'Memory Size' = "$([math]::round($ESXHost.MemorySizeBytes / 1GB))GB" - 'VGPU Types' = $ESXHost.VGPUTypes + 'vGPU Types' = $ESXHost.VGPUTypes 'VDI Machines' = $ESXHost.NumMachines } diff --git a/Src/Private/Get-AbrHRZEventConf.ps1 b/Src/Private/Get-AbrHRZEventConf.ps1 index dc00025..bcef66b 100644 --- a/Src/Private/Get-AbrHRZEventConf.ps1 +++ b/Src/Private/Get-AbrHRZEventConf.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZEventConf { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -31,10 +31,12 @@ function Get-AbrHRZEventConf { try { if ($EventDataBases -or $Syslog) { if ($InfoLevel.Settings.EventConfiguration.PSObject.Properties.Value -ne 0) { - section -Style Heading4 "Event Configuration" { + section -Style Heading2 "Event Configuration" { + Paragraph "The following section details on the events configuration information for $($HVEnvironment)." + BlankLine if ($InfoLevel.Settings.EventConfiguration.EventDatabase -ge 1) { try { - section -Style Heading5 "Event Database" { + section -Style Heading3 "Event Database" { $OutObj = @() foreach ($EventDataBase in $EventDataBases) { Write-PscriboMessage "Discovered Event Database Information." @@ -76,7 +78,7 @@ function Get-AbrHRZEventConf { } if ($InfoLevel.Settings.EventConfiguration.Syslog -ge 1 -and $Syslog.UdpData.Enabled) { try { - section -Style Heading5 "Syslog Configuration" { + section -Style Heading3 "Syslog Configuration" { $OutObj = @() foreach ($Logging in $Syslog.UdpData.NetworkAddresses) { Write-PscriboMessage "Discovered Syslog Information." @@ -106,13 +108,15 @@ function Get-AbrHRZEventConf { } if ($InfoLevel.Settings.EventConfiguration.EventstoFileSystem -ge 1 -and ($Syslog.FileData.Enabled -or $Syslog.FileData.EnabledOnError)) { try { - section -Style Heading5 "Events to File System" { + section -Style Heading3 "Events to File System" { $OutObj = @() foreach ($Logging in $Syslog) { Write-PscriboMessage "Discovered Events to File System Information." $inObj = [ordered] @{ + 'Enabled' = $Logging.FileData.Enabled + 'Enabled on Error' = $Logging.FileData.EnabledOnError 'Path' = $Logging.FileData.UncPath - 'UserName' = $Logging.FileData.UncUserName + 'User name' = $Logging.FileData.UncUserName 'Domain' = $Logging.FileData.UncDomain } diff --git a/Src/Private/Get-AbrHRZFarm.ps1 b/Src/Private/Get-AbrHRZFarm.ps1 index abf08e1..7c5cc7c 100644 --- a/Src/Private/Get-AbrHRZFarm.ps1 +++ b/Src/Private/Get-AbrHRZFarm.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZFarm { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -32,7 +32,7 @@ function Get-AbrHRZFarm { if ($Farms) { if ($InfoLevel.Inventory.Farms -ge 1) { section -Style Heading3 "Farm Pools" { - Paragraph "The following section details the Farms configuration for $($HVEnvironment.split('.')[0]) server." + Paragraph "The following section details the Farms configuration for $($HVEnvironment.toUpper()[0]) server." BlankLine $OutObj = @() foreach ($Farm in $Farms) { @@ -51,7 +51,7 @@ function Get-AbrHRZFarm { } $TableParams = @{ - Name = "Farms - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Farms - $($HVEnvironment.toUpper()[0])" List = $false ColumnWidths = 34, 33, 33 } @@ -79,6 +79,39 @@ function Get-AbrHRZFarm { break } } + + # Farm AD Container + $FarmContainerName = '' + if ($Farm.AutomatedFarmData.CustomizationSettings.AdContainer.id) { + foreach ($ADDomain in $ADDomains){ + $ADDomainID = ($ADDomain.id.id -creplace '^[^/]*/', '') + if ($Farm.AutomatedFarmData.CustomizationSettings.AdContainer.id -like "ADContainer/$ADDomainID/*") { + $ADContainers = $hzServices.ADContainer.ADContainer_ListByDomain($ADDomain.id) + foreach ($ADContainer in $ADContainers) { + if ($ADContainer.id.id -eq $Farm.AutomatedFarmData.CustomizationSettings.AdContainer.id){ + $FarmContainerName = $ADContainer.rdn + break + } + } + } + } + } + + # Farm Customization Type + $Customizations = ('') + If($Farm.AutomatedFarmData.CustomizationSettings.SysprepCustomizationSettings.CustomizationSpec){ + Foreach ($vCenterServer in $vCenterServers){ + $Customizations = $hzServices.CustomizationSpec.CustomizationSpec_List($vCenterServer.id) + Foreach ($Customization in $Customizations){ + if($Farm.AutomatedFarmData.CustomizationSettings.SysprepCustomizationSettings.CustomizationSpec.id -eq $Customization.id.id){ + $FarmCustomization = $($Customization.CustomizationSpecData.Name) + } + } + + } + } + + try { section -ExcludeFromTOC -Style NOTOCHeading5 "General" { $OutObj = @() @@ -87,15 +120,19 @@ function Get-AbrHRZFarm { 'Pool Name' = $Farm.Data.name 'Display Name' = $Farm.Data.displayName 'Description' = $Farm.Data.description + 'Access Group' = $AccessGroupName 'Type' = $Farm.Type 'Source' = $Farm.Source 'Enabled' = $Farm.Data.Enabled 'Deleting' = $Farm.Data.Deleting 'Desktop' = $Farm.Data.Desktop - 'Access Group' = $AccessGroupName + 'App Volumes Server' = $Farm.Data.AppVolumesManagerGuid + 'Default Display Protocol' = $Farm.Data.DisplayProtocolSettings.DefaultDisplayProtocol 'Allow Users to Choose Protocol' = $Farm.Data.DisplayProtocolSettings.AllowDisplayProtocolOverride 'HTML Access' = $Farm.Data.DisplayProtocolSettings.EnableHTMLAccess + 'Enable Grid GPUs' = $Farm.Data.DisplayProtocolSettings.EnableGridGpu + 'vGPU Profile' = $Farm.Data.DisplayProtocolSettings.VGPUGridProfile } $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) @@ -120,27 +157,24 @@ function Get-AbrHRZFarm { Write-PscriboMessage -IsWarning $_.Exception.Message } try { - section -ExcludeFromTOC -Style NOTOCHeading5 "Settings" { + section -ExcludeFromTOC -Style NOTOCHeading5 "Load Balancing Settings" { $OutObj = @() - Write-PscriboMessage "Discovered $($Farm.Data.name) Settings." + Write-PscriboMessage "Discovered $($Farm.Data.name) Load Balancing Settings." $inObj = [ordered] @{ - 'Provisioning Enabled' = $Farm.AutomatedFarmData.VirtualCenterProvisioningSettings.EnableProvisioning - 'Stop Provisioning on Error' = $Farm.AutomatedFarmData.VirtualCenterProvisioningSettings.StopProvisioningOnError - 'Disconnected Session Timeout Minutes' = $Farm.Data.settings.DisconnectedSessionTimeoutMinutes - 'Disconnected Session Timeout Policy' = $Farm.Data.settings.DisconnectedSessionTimeoutPolicy - 'Empty Session Timeout Minutes' = $Farm.Data.settings.EmptySessionTimeoutMinutes - 'Empty Session Timeout Policy' = $Farm.data.Settings.EmptySessionTimeoutPolicy - 'Log off After Timeout' = $Farm.data.Settings.LogoffAfterTimeout + 'Use Custom Script' = $Farm.Data.LbSettings.UseCustomScript + 'Include Session Count' = $Farm.Data.LbSettings.LbMetricsSettings.IncludeSessionCount + 'CPU Usage Threshold' = $Farm.Data.LbSettings.LbMetricsSettings.CpuThreshold + 'Memory Usage Threshold' = $Farm.Data.LbSettings.LbMetricsSettings.MemThreshold + 'Disk Queue Length Threshold' = $Farm.Data.LbSettings.LbMetricsSettings.DiskQueueLengthThreshold + 'Disk Read Latency Threshold' = $Farm.Data.LbSettings.LbMetricsSettings.DiskReadLatencyThreshold + 'Disk Write Latency Threshold' = $Farm.Data.LbSettings.LbMetricsSettings.DiskWriteLatencyThreshold + } $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) - if ($HealthCheck.Farms.Status) { - $OutObj | Where-Object { $_.'Provisioning Enabled' -eq 'No'} | Set-Style -Style Warning -Property 'Provisioning Enabled' - } - $TableParams = @{ - Name = "Settings - $($Farm.Data.name)" + Name = "Load Balancing Settings - $($Farm.Data.name)" List = $true ColumnWidths = 50, 50 } @@ -155,24 +189,27 @@ function Get-AbrHRZFarm { Write-PscriboMessage -IsWarning $_.Exception.Message } try { - section -ExcludeFromTOC -Style NOTOCHeading5 "Load Balancing Settings" { + section -ExcludeFromTOC -Style NOTOCHeading5 "Provisioning Settings" { $OutObj = @() - Write-PscriboMessage "Discovered $($Farm.Data.name) Load Balancing Settings." + Write-PscriboMessage "Discovered $($Farm.Data.name) Settings." $inObj = [ordered] @{ - 'Use Custom Script' = $Farm.Data.LbSettings.UseCustomScript - 'Include Session Count' = $Farm.Data.LbSettings.LbMetricsSettings.IncludeSessionCount - 'Cpu Usage Threshold' = $Farm.Data.LbSettings.LbMetricsSettings.CpuThreshold - 'Memory UsageThreshold' = $Farm.Data.LbSettings.LbMetricsSettings.MemThreshold - 'Disk Queue Length Threshold' = $Farm.Data.LbSettings.LbMetricsSettings.DiskQueueLengthThreshold - 'Disk Read Latency Threshold' = $Farm.Data.LbSettings.LbMetricsSettings.DiskReadLatencyThreshold - 'Disk Write Latency Threshold' = $Farm.Data.LbSettings.LbMetricsSettings.DiskWriteLatencyThreshold - + 'Provisioning Enabled' = $Farm.AutomatedFarmData.VirtualCenterProvisioningSettings.EnableProvisioning + 'Stop Provisioning on Error' = $Farm.AutomatedFarmData.VirtualCenterProvisioningSettings.StopProvisioningOnError + 'Disconnected Session Timeout Minutes' = $Farm.Data.settings.DisconnectedSessionTimeoutMinutes + 'Disconnected Session Timeout Policy' = $Farm.Data.settings.DisconnectedSessionTimeoutPolicy + 'Empty Session Timeout Minutes' = $Farm.Data.settings.EmptySessionTimeoutMinutes + 'Empty Session Timeout Policy' = $Farm.data.Settings.EmptySessionTimeoutPolicy + 'Log off After Timeout' = $Farm.data.Settings.LogoffAfterTimeout } $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + if ($HealthCheck.Farms.Status) { + $OutObj | Where-Object { $_.'Provisioning Enabled' -eq 'No'} | Set-Style -Style Warning -Property 'Provisioning Enabled' + } + $TableParams = @{ - Name = "Load Balancing Settings - $($Farm.Data.name)" + Name = "Provisioning Settings - $($Farm.Data.name)" List = $true ColumnWidths = 50, 50 } @@ -201,15 +238,61 @@ function Get-AbrHRZFarm { $null {'Golden Image network selected'} default {$Farm.AutomatedFarmData.VirtualCenterNamesData.NetworkLabelNames} } + #'Guest Customization' = $Farm.AutomatedFarmData.CustomizationSettings.CustomizationType + #'Guest Customization Domain and Account' = ($InstantCloneDomainAdmins | Where-Object {$_.Id.id -eq $Farm.AutomatedFarmData.CustomizationSettings.InstantCloneEngineDomainAdministrator.id}).Base.UserName + #'Allow Reuse of Existing Computer Accounts' = $Farm.AutomatedFarmData.CustomizationSettings.ReusePreExistingAccounts + } + + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + + $TableParams = @{ + Name = "vCenter Settings - $($Farm.Data.name)" + List = $true + ColumnWidths = 50, 50 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + try { + section -ExcludeFromTOC -Style NOTOCHeading5 "Guest Customization" { + $OutObj = @() + Write-PscriboMessage "Guest Customization $($Farm.Data.name) Settings." + $inObj = [ordered] @{ 'Guest Customization' = $Farm.AutomatedFarmData.CustomizationSettings.CustomizationType 'Guest Customization Domain and Account' = ($InstantCloneDomainAdmins | Where-Object {$_.Id.id -eq $Farm.AutomatedFarmData.CustomizationSettings.InstantCloneEngineDomainAdministrator.id}).Base.UserName 'Allow Reuse of Existing Computer Accounts' = $Farm.AutomatedFarmData.CustomizationSettings.ReusePreExistingAccounts + 'AD Container' = $FarmContainerName + 'Farm Customization Specification' = $FarmCustomization + 'Power Off Script Name' = $Farm.AutomatedFarmData.CustomizationSettings.CloneprepCustomizationSettings.PowerOffScriptName + 'Power Off Script Parameters' = $Farm.AutomatedFarmData.CustomizationSettings.CloneprepCustomizationSettings.PowerOffScriptParameters + 'Post Sync Script Name' = $Farm.AutomatedFarmData.CustomizationSettings.CloneprepCustomizationSettings.PostSynchronizationScriptName + 'Post Sync Script Parameters' = $Farm.AutomatedFarmData.CustomizationSettings.CloneprepCustomizationSettings.PostSynchronizationScriptParameters + 'Priming Computer Account' = $Farm.AutomatedFarmData.CustomizationSettings.CloneprepCustomizationSettings.PrimingComputerAccount } $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + if ($Farm.AutomatedFarmData.CustomizationSettings.SysprepCustomizationSettings.CustomizationSpec -eq "SYS_PREP") { + $inObj.Remove('Power Off Script Name') + $inObj.Remove('Power Off Script Parameters') + $inObj.Remove('Post Sync Script Name') + $inObj.Remove('Post Sync Script Parameters') + $inObj.Remove('Priming Computer Account') + + } + + + $TableParams = @{ - Name = "vCenter Settings - $($Farm.Data.name)" + Name = "Guest Customization - $($Farm.Data.name)" List = $true ColumnWidths = 50, 50 } @@ -223,6 +306,8 @@ function Get-AbrHRZFarm { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } + + } } } diff --git a/Src/Private/Get-AbrHRZFederationAccessGroups.ps1 b/Src/Private/Get-AbrHRZFederationAccessGroups.ps1 new file mode 100644 index 0000000..1647915 --- /dev/null +++ b/Src/Private/Get-AbrHRZFederationAccessGroups.ps1 @@ -0,0 +1,138 @@ +function Get-AbrHRZFederationAccessGroups { + <# + .SYNOPSIS + PowerShell script which documents the configuration of VMware Horizon in Word/HTML/XML/Text formats + .DESCRIPTION + Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. + .NOTES + Version: 1.1.0 + Author: Chris Hildebrandt, Karl Newick + Twitter: @childebrandt42, @karlnewick + Editor: Jonathan Colon, @jcolonfzenpr + Twitter: @asbuiltreport + Github: AsBuiltReport + Credits: Iain Brighton (@iainbrighton) - PScribo module + + + .LINK + https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon + #> + + [CmdletBinding()] + param ( + ) + + begin { + Write-PScriboMessage "Role Permissions InfoLevel set at $($InfoLevel.Settings.Administrators.RolePermissions)." + Write-PscriboMessage "Collecting Role Federation Access Groups information." + } + + process { + try { + if ($Permissions) { + if ($InfoLevel.Settings.Administrators.FederationAccessGroup -ge 1) { + section -Style Heading3 "Federation Access Groups" { + Paragraph "The following section details the Federation Access Group information for $($HVEnvironment) server." + BlankLine + $OutObj = @() + + $FilteredPermissions = '' + $FilteredPermissions = $Permissions | Where-Object{$null -ne $_.base.GlobalAccessGroup} + + foreach ($Permission in $FilteredPermissions) { + #If(![string]::IsNullOrEmpty($($Permission.base.GlobalAccessGroup))){ + + $AdministratorIDNameResults = '' + # Find Administrator ID Name + $AdministratorIDName = '' + $PermissionGroups = $Permission.base.UserOrGroup.id + foreach ($PermissionGroup in $PermissionGroups) { + foreach ($Administrator in $Administrators) { + if ($Administrator.Id.id -eq $PermissionGroup) { + $AdministratorIDName = $Administrator.base.name + break + } + } + if ($PermissionGroups.count -gt 1){ + $AdministratorIDNameResults += "$AdministratorIDName, " + $AdministratorIDName = $AdministratorIDNameResults.TrimEnd(', ') + } + } + Switch ($AdministratorIDName) + { + '' {$AdministratorIDName = 'N/A'} + ' ' {$AdministratorIDName = 'N/A'} + } + + # Mach Permission Role ID with Role ID + # Find Role ID Name + $RoleIDName = '' + $PermissionGroups = $Permission.base.Role.id + foreach ($PermissionGroup in $PermissionGroups) { + + foreach ($Role in $Roles) { + if ($Role.Id.id -eq $PermissionGroup) { + $RoleIDName = $Role.base.name + break + } + + } + if ($PermissionGroups.count -gt 1) { + $RoleIDNameResults += "$RoleIDName, " + $RoleIDName = $RoleIDNameResults.TrimEnd(', ') + $RoleIDName = [string](($RoleIDName.split(', ') | Select-Object -Unique) -join ', ') + } + } + + # Find AccessGroup ID Name + $GlobalAccessGroupIDName = '' + $PermissionGroups = $Permission.base.GlobalAccessGroup.id + foreach ($PermissionGroup in $PermissionGroups) { + foreach ($GlobalAccessGroup in $GlobalAccessGroups) { + if ($GlobalAccessGroup.Id.id -eq $PermissionGroup) { + $GlobalAccessGroupIDName = "/$($GlobalAccessGroup.base.name)" + } + elseif ($GlobalAccessGroup.Children.id.id -eq $PermissionGroup) { + $GlobalAccessGroupIDName = "/Root/$(($AccessGroup.Children | Where-Object {$_.id.id -eq $PermissionGroup}).Base.Name)" + } + $GlobalAccessGroupIDName = $GlobalAccessGroupIDName.TrimStart('/') + + } + } + + + + #} + $inObj = [ordered] @{ + 'User or Group Name' = $AdministratorIDName + 'Role' = $RoleIDName + 'Global Access Group' = $GlobalAccessGroupIDName + } + + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + + + $TableParams = @{ + Name = "Role Permissions - $($HVEnvironment)" + List = $false + ColumnWidths = 33, 33, 34 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Sort-Object -Property 'User or Group Name' | Table @TableParams + + + + } + } + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + end {} +} \ No newline at end of file diff --git a/Src/Private/Get-AbrHRZGatewayCert.ps1 b/Src/Private/Get-AbrHRZGatewayCert.ps1 new file mode 100644 index 0000000..77216b6 --- /dev/null +++ b/Src/Private/Get-AbrHRZGatewayCert.ps1 @@ -0,0 +1,73 @@ +function Get-AbrHRZGatewayCert { + <# + .SYNOPSIS + PowerShell script which documents the configuration of VMware Horizon in Word/HTML/XML/Text formats + .DESCRIPTION + Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. + .NOTES + Version: 1.1.0 + Author: Chris Hildebrandt, Karl Newick + Twitter: @childebrandt42, @karlnewick + Editor: Jonathan Colon, @jcolonfzenpr + Twitter: @asbuiltreport + Github: AsBuiltReport + Credits: Iain Brighton (@iainbrighton) - PScribo module + + + .LINK + https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon + #> + + [CmdletBinding()] + param ( + ) + + begin { + Write-PScriboMessage "Gatway Certificate InfoLevel set at $($InfoLevel.Settings.Servers.ConnectionServers.ConnectionServers)." + Write-PscriboMessage "Collecting Gatway Certificate information." + } + + process { + try { + if ($GatewayCerts) { + if ($InfoLevel.Settings.CloudPodArch.CloudPodArch -ge 1) { + + section -Style Heading3 "Gateway Certificate" { + Paragraph "The following section details on the gateway certificate information for $($HVEnvironment)." + BlankLine + + Write-PscriboMessage "Working on Gateway Certificate Information for $($HVEnvironment)." + + $OutObj = @() + foreach ($GatewayCert in $GatewayCerts){ + $inObj = [ordered] @{ + 'Certificate Name' = $GatewayCert.CertificateName + 'Common Name' = $GatewayCert.CommonName + 'Issuer' = $GatewayCert.Issuer + 'Expiry Date' = $GatewayCert.ExpiryDate + 'Serial Number' = $GatewayCert.SerialNum + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + } + $TableParams = @{ + Name = "Gateway Certificate - $($HVEnvironment)" + List = $true + ColumnWidths = 30, 70 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + + } + + + } + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + end {} +} \ No newline at end of file diff --git a/Src/Private/Get-AbrHRZGlobalEntitlement.ps1 b/Src/Private/Get-AbrHRZGlobalEntitlement.ps1 index 7647ee5..ae72d5b 100644 --- a/Src/Private/Get-AbrHRZGlobalEntitlement.ps1 +++ b/Src/Private/Get-AbrHRZGlobalEntitlement.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZGlobalEntitlement { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -30,13 +30,18 @@ function Get-AbrHRZGlobalEntitlement { process { try { if ($GlobalEntitlements) { + if ($InfoLevel.Inventory.GlobalEntitlements -ge 1) { - section -Style Heading4 "Global Entitlements" { - Paragraph "The following section details the Global Entitlements configuration for $($HVEnvironment.split('.')[0]) server." + section -Style Heading3 "Global Entitlements" { + Paragraph "The following section details the Global Entitlements configuration for $($HVEnvironment) server." BlankLine + + $GlobalEntitlements | ForEach-Object{ $_ | Add-Member -MemberType NoteProperty -Name "GE_Type" -Value "Desktop"} + $GlobalApplicationEntitlementGroups | ForEach-Object{ $_ | Add-Member -MemberType NoteProperty -Name "GE_Type" -Value "Application"} $GlobalEntitlementJoined = @() $GlobalEntitlementJoined += $GlobalEntitlements $GlobalEntitlementJoined += $GlobalApplicationEntitlementGroups + $OutObj = @() foreach ($GlobalEntitlement in $GlobalEntitlementJoined) { Write-PscriboMessage "Discovered Global Entitlements Information." @@ -57,7 +62,7 @@ function Get-AbrHRZGlobalEntitlement { } $TableParams = @{ - Name = "Global Entitlements - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Global Entitlements - $($HVEnvironment)" List = $false ColumnWidths = 34, 33, 33 } @@ -66,8 +71,233 @@ function Get-AbrHRZGlobalEntitlement { $TableParams['Caption'] = "- $($TableParams.Name)" } $OutObj | Sort-Object -Property 'Name' | Table @TableParams + + + section -Style Heading4 "Global Entitlement Summary Details" { + foreach ($GlobalEntitlement in $GlobalEntitlementJoined) { + + Write-PscriboMessage "Discovered Global Entitlements Detailed Information for $($GlobalEntitlement.base.DisplayName)." + try { + if ($InfoLevel.Inventory.GlobalEntitlements -ge 2) { + section -Style Heading5 "Summary - $($GlobalEntitlement.base.DisplayName)" { + + $SupportedDisplayProtocolsresult = '' + $SupportedDisplayProtocols = $GlobalEntitlement.base | ForEach-Object { $_.SupportedDisplayProtocols} + $SupportedDisplayProtocolsresult = $SupportedDisplayProtocols -join ', ' + + if ($GlobalEntitlement.Data.LocalApplicationCount) { + $Type = 'Application' + } + elseif ($GlobalEntitlement.Data.LocalDesktopCount) { + $Type = 'Desktop' + } + + $GlobalAccessGroupID = $($hzServices.GlobalAccessGroup.GlobalAccessGroup_Get($GlobalEntitlement.base.GlobalAccessGroupId).base.Name) + + + $OutObj = @() + Write-PscriboMessage "Discovered Global Entitlement Data for $HVEnvironment" + $inObj = [ordered] @{ + 'Display Name' = $GlobalEntitlement.base.DisplayName + 'Alias Name' = $GlobalEntitlement.base.AliasName + 'Description' = $GlobalEntitlement.base.DisplayName.description + 'Scope' = $GlobalEntitlement.base.Scope + 'From Home Site' = $GlobalEntitlement.base.FromHome + 'Require Home Site' = $GlobalEntitlement.base.RequireHomeSite + 'Multiple Session Auto Clean' = $GlobalEntitlement.base.MultipleSessionAutoClean + 'Enabled' = $GlobalEntitlement.base.Enabled + 'Supported Display Protocols' = $SupportedDisplayProtocolsresult + 'Default Display Protocol' = $GlobalEntitlement.base.DefaultDisplayProtocol + 'Allow Users to Choose Display Protocol' = $GlobalEntitlement.base.AllowUsersToChooseProtocol + 'Allow User to Reset Machines' = $GlobalEntitlement.base.AllowUsersToResetMachines + 'Enable HTML Access' = $GlobalEntitlement.base.EnableHTMLAccess + 'Allow Multiple Sessions Per User' = $GlobalEntitlement.base.AllowMultipleSessionsPerUser + 'Enable Pre-Launch' = $GlobalEntitlement.base.EnablePreLaunch + 'Connection Server Restrictions' = $GlobalEntitlement.base.ConnectionServerRestrictions + 'Enable Prelaunch' = $GlobalEntitlement.base.EnablePreLaunch + 'Category Folder Name' = $GlobalEntitlement.base.CategoryFolderName + 'Client Restrictions' = $GlobalEntitlement.base.ClientRestrictions + 'Enable Collaboration' = $GlobalEntitlement.base.EnableCollaboration + 'Shortcut Locations' = $GlobalEntitlement.base.ShortcutLocations + 'Multisession Mode' = $GlobalEntitlement.base.MultiSessionMode + 'Backup GAE' = $GlobalEntitlement.base.BackupGAE + 'Display Assigned Machine Name' = $GlobalEntitlement.base.DisplayAssignedMachineName + 'Display Machine Alias' = $GlobalEntitlement.base.DisplayMachineAlias + 'Global Access Group ID' = $GlobalAccessGroupID + } + + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + + if ($Type -eq 'Desktop') { + $inObj.Remove('Enable Pre-Launch') + $inObj.Remove('Multi Session Mode') + } + + + if ($Type -eq 'Application') { + $inObj.Remove('Allow User to Reset Machines') + $inObj.Remove('Allow Multiple Sessions Per User') + $inObj.Remove('Enable Collaboration') + $inObj.Remove('Display Assigned Machine Name') + $inObj.Remove('Display Machine Alias') + } + + + $TableParams = @{ + Name = "Detailed Information - $($GlobalEntitlement.base.DisplayName)" + List = $true + ColumnWidths = 50, 50 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + + } + + try { + $OutObj = @() + section -Style Heading6 "Local Pools - $($GlobalEntitlement.base.DisplayName)" { + try { + Write-PscriboMessage "Discovered Local Pools Information for $($HVEnvironment)." + + $GEPodMembers = $GlobalEntitlement.data.MemberPods.id + $PodSiteID = ('') + + + Foreach($GEPodMember in $GEPodMembers){ + Foreach($CPSite in $CloudPodLists){ + If($CPSite.id.id -eq $GEPodMember){ + Write-Host "They Match" -ForegroundColor Green + $PodSiteID += $CPSite.DisplayName + } + } + } + + $PodMembers = '' + $PodMembers = ForEach-Object {$PodSiteID} + $PodMemberList = $PodMembers -join ', ' + + + $inObj = [ordered] @{ + 'Local Desktop Count' = $GlobalEntitlement.data.LocalDesktopCount + 'Local Application Count' = $GlobalEntitlement.data.LocalApplicationCount + 'Remote Desktop Count' = $GlobalEntitlement.data.RemoteDesktopCount + 'Remote Application Count' = $GlobalEntitlement.data.RemoteApplicationCount + 'User Count' = $GlobalEntitlement.data.UserCount + 'User or Group Count' = $GlobalEntitlement.data.UserGroupCount + 'User or Group Site Override Count' = $GlobalEntitlement.data.UserGroupSiteOverrideCount + 'Member Pods' = $PodMemberList #$GlobalEntitlement.data.MemberPods + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + + if ($Type -eq 'Application'){ + $inObj.Remove('Local Desktop Count') + $inObj.Remove('Remote Desktop Count') + } + + if ($Type -eq 'Desktop') { + $inObj.Remove('Local Application Count') + $inObj.Remove('Remote Application Count') + } + + $TableParams = @{ + Name = "Local Pools - $($HVEnvironment)" + List = $true + ColumnWidths = 30, 70 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + # Users and Groups + try { + + section -Style Heading6 "Users and Groups - $($GlobalEntitlement.base.DisplayName)" { + $OutObj = @() + try { + Write-PscriboMessage "Discovered Users and Groups - $($GlobalEntitlement.base.DisplayName)." + + foreach ($EntitledUserOrGroupGlobal in $EntitledUserOrGroupGlobals) { + Switch ($EntitledUserOrGroupGlobal.base.Group) { + 'True' { $GlobalEntitledGroup = 'Group' } + 'False' { $GlobalEntitledGroup = 'User' } + } + $EntitledDefined = @() + + + foreach ($GE in $($EntitledUserOrGroupGlobal.GlobalData.GlobalEntitlements.id -split [Environment]::NewLine)) { + if ($GlobalEntitlement.Id.id -eq $GE) { + $EntitledDefined += $EntitledUserOrGroupGlobal + } + } + foreach ($GEA in $($EntitledUserOrGroupGlobal.GlobalData.GlobalApplicationEntitlements.id -split [Environment]::NewLine)) { + if ($GlobalEntitlement.Id.id -eq $GEA) { + $EntitledDefined += $EntitledUserOrGroupGlobal + } + } + + foreach ($ED in $EntitledDefined){ + $inObj = [ordered] @{ + 'Name' = $ED.Base.Name + 'User or Group' = $GlobalEntitledGroup + 'Domain' = $ED.Base.Domain + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + } + + } # End If Group or User + + + + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + $TableParams = @{ + Name = "Users and Groups - $($GlobalEntitlement.base.DisplayName)" + List = $false + ColumnWidths = 40, 30, 30 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + + + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + + + + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + } + } } + } + } } catch { diff --git a/Src/Private/Get-AbrHRZGlobalPolicies.ps1 b/Src/Private/Get-AbrHRZGlobalPolicies.ps1 new file mode 100644 index 0000000..e0359c0 --- /dev/null +++ b/Src/Private/Get-AbrHRZGlobalPolicies.ps1 @@ -0,0 +1,72 @@ +function Get-AbrHRZGlobalPolicies { + <# + .SYNOPSIS + PowerShell script which documents the configuration of VMware Horizon in Word/HTML/XML/Text formats + .DESCRIPTION + Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. + .NOTES + Version: 1.1.0 + Author: Chris Hildebrandt, Karl Newick + Twitter: @childebrandt42, @karlnewick + Editor: Jonathan Colon, @jcolonfzenpr + Twitter: @asbuiltreport + Github: AsBuiltReport + Credits: Iain Brighton (@iainbrighton) - PScribo module + + + .LINK + https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon + #> + + [CmdletBinding()] + param ( + ) + + begin { + Write-PScriboMessage "Global Policies InfoLevel set at $($InfoLevel.Settings.GlobalPolicies.GlobalPolicies)." + Write-PscriboMessage "Collecting Global Policies information." + } + + process { + try { + if ($GlobalPolicies) { + if ($InfoLevel.Settings.GlobalPolicies.GlobalPolicies -ge 1) { + section -Style Heading2 "Global Policies" { + Paragraph "The following section details on the Global Policies information for $($HVEnvironment)." + BlankLine + $OutObj = @() + + Write-PscriboMessage "Discovered Global Policies Information." + $inObj = [ordered] @{ + 'Allow Multimedia Redirection' = $GlobalPolicies.GlobalPolicies.AllowMultimediaRedirection + 'Allow USB Access' = $GlobalPolicies.GlobalPolicies.AllowUSBAccess + 'Allow Remote Mode' = $GlobalPolicies.GlobalPolicies.AllowRemoteMode + 'Allow PCoIP Hardware Acceleration' = $GlobalPolicies.GlobalPolicies.AllowPCoIPHardwareAcceleration + 'PCoIP Hardware Acceleration Priority' = $GlobalPolicies.GlobalPolicies.PcoipHardwareAccelerationPriority + } + + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + + + $TableParams = @{ + Name = "Global Policies - $($HVEnvironment)" + List = $true + ColumnWidths = 50, 50 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + + + } + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + end {} +} \ No newline at end of file diff --git a/Src/Private/Get-AbrHRZGlobalSetting.ps1 b/Src/Private/Get-AbrHRZGlobalSetting.ps1 index 0b0923f..1d833c0 100644 --- a/Src/Private/Get-AbrHRZGlobalSetting.ps1 +++ b/Src/Private/Get-AbrHRZGlobalSetting.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZGlobalSetting { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -31,50 +31,102 @@ function Get-AbrHRZGlobalSetting { try { if ($GlobalSettings) { if ($InfoLevel.Settings.GlobalSettings.GlobalSettings -ge 1) { - section -Style Heading3 "Global Settings" { - Paragraph "The following section details the Global Settings configuration for $($HVEnvironment.split('.')[0]) server." + section -Style Heading2 "Global Settings" { + Paragraph "The following section details the Global Settings configuration for $($HVEnvironment) server." BlankLine - $OutObj = @() - Write-PscriboMessage "Discovered Global Settings Information." - $inObj = [ordered] @{ - 'Client Session Time Out Policy' = $GlobalSettings.GeneralData.ClientIdleSessionTimeoutPolicy - 'Client Max Session Time Minutes ' = $GlobalSettings.GeneralData.ClientMaxSessionTimeMinutes - 'Client Idle Session Timeout Policy' = $GlobalSettings.GeneralData.ClientIdleSessionTimeoutPolicy - 'Client Idle Session Timeout Minutes' = $GlobalSettings.GeneralData.ClientIdleSessionTimeoutMinutes - 'Client Session Timeout Minutes ' = $GlobalSettings.GeneralData.ClientSessionTimeoutMinutes - 'Desktop SSO Timeout Policy' = $GlobalSettings.GeneralData.DesktopSSOTimeoutPolicy - 'Desktop SSO Timeout Minutes' = $GlobalSettings.GeneralData.DesktopSSOTimeoutMinutes - 'Application SSO Timeout Policy' = $GlobalSettings.GeneralData.ApplicationSSOTimeoutPolicy - 'Application SSO Timeout Minutes' = $GlobalSettings.GeneralData.ApplicationSSOTimeoutMinutes - 'View API Session Timeout Minutes' = $GlobalSettings.GeneralData.ViewAPISessionTimeoutMinutes - 'Pre-Login Message' = $GlobalSettings.GeneralData.PreLoginMessage - 'Display Warning Before Forced Logoff' = $GlobalSettings.GeneralData.DisplayWarningBeforeForcedLogoff - 'Forced Logoff Timeout Minutes' = $GlobalSettings.GeneralData.ForcedLogoffTimeoutMinutes - 'Forced Logoff Message' = $GlobalSettings.GeneralData.ForcedLogoffMessage - 'Enable Server in Single User Mode' = $GlobalSettings.GeneralData.EnableServerInSingleUserMode - 'Store CAL on Broker' = $GlobalSettings.GeneralData.StoreCALOnBroker - 'Store CAL on Client' = $GlobalSettings.GeneralData.StoreCALOnClient - 'Reauthenticate Secure Tunnel After Interruption' = $GlobalSettings.SecurityData.ReauthSecureTunnelAfterInterruption - 'Message Security Mode' = $GlobalSettings.SecurityData.MessageSecurityMode - 'Message Security Status' = $GlobalSettings.SecurityData.MessageSecurityStatus - 'Enable IP Sec for Security Server Pairing' = $GlobalSettings.SecurityData.EnableIPSecForSecurityServerPairing - } + section -Style Heading3 "General Settings" { + $OutObj = @() + Write-PscriboMessage "Discovered Global Settings Information." + $inObj = [ordered] @{ + 'Client Session Time Out Policy' = $GlobalSettings.GeneralData.ClientIdleSessionTimeoutPolicy + 'Client Max Session Time Minutes ' = $GlobalSettings.GeneralData.ClientMaxSessionTimeMinutes + 'Client Idle Session Timeout Policy' = $GlobalSettings.GeneralData.ClientIdleSessionTimeoutPolicy + 'Client Idle Session Timeout Minutes' = $GlobalSettings.GeneralData.ClientIdleSessionTimeoutMinutes + 'Client Session Timeout Minutes ' = $GlobalSettings.GeneralData.ClientSessionTimeoutMinutes + 'Desktop SSO Timeout Policy' = $GlobalSettings.GeneralData.DesktopSSOTimeoutPolicy + 'Desktop SSO Timeout Minutes' = $GlobalSettings.GeneralData.DesktopSSOTimeoutMinutes + 'Application SSO Timeout Policy' = $GlobalSettings.GeneralData.ApplicationSSOTimeoutPolicy + 'Application SSO Timeout Minutes' = $GlobalSettings.GeneralData.ApplicationSSOTimeoutMinutes + 'View API Session Timeout Minutes' = $GlobalSettings.GeneralData.ViewAPISessionTimeoutMinutes + 'Pre-Login Message' = $GlobalSettings.GeneralData.PreLoginMessage + 'Display Warning Before Forced Logoff' = $GlobalSettings.GeneralData.DisplayWarningBeforeForcedLogoff + 'Forced Logoff Timeout Minutes' = $GlobalSettings.GeneralData.ForcedLogoffTimeoutMinutes + 'Forced Logoff Message' = $GlobalSettings.GeneralData.ForcedLogoffMessage + 'Enable Server in Single User Mode' = $GlobalSettings.GeneralData.EnableServerInSingleUserMode + 'Store CAL on Broker' = $GlobalSettings.GeneralData.StoreCALOnBroker + 'Store CAL on Client' = $GlobalSettings.GeneralData.StoreCALOnClient + 'Enable UI User Name Caching' = $GlobalSettings.GeneralData.EnableUIUserNameCaching + 'Console Session Timeout in Minutes' = $GlobalSettings.GeneralData.ConsoleSessionTimeoutMinutes + 'Enable Automatic Status Updates' = $GlobalSettings.GeneralData.EnableAutomaticStatusUpdates + 'Send Domain List' = $GlobalSettings.GeneralData.SendDomainList + 'Enable Credential Cleanup for HTML Access' = $GlobalSettings.GeneralData.EnableCredentialCleanupForHTMLAccess + 'Hide Server Information In Client' = $GlobalSettings.GeneralData.HideServerInformationInClient + 'Hide Domain List In Client' = $GlobalSettings.GeneralData.HideDomainListInClient + 'Enable Multi Factor Reauthentication' = $GlobalSettings.GeneralData.EnableMultiFactorReAuth + 'Disconnect Warning Time' = $GlobalSettings.GeneralData.DisconnectWarningTime + 'Disconnect Warning Message' = $GlobalSettings.GeneralData.DisconnectWarningMessage + 'Disconnect Message' = $GlobalSettings.GeneralData.DisconnectMessage + 'Display Pre-login Admin Banner' = $GlobalSettings.GeneralData.DisplayPreLoginAdminBanner + 'Pre-Login Admin Banner Header' = $GlobalSettings.GeneralData.PreLoginAdminBannerHeader + 'Pre-Login Admin Banner Message' = $GlobalSettings.GeneralData.PreLoginAdminBannerMessage + 'Enforce CSRF Protection' = $GlobalSettings.GeneralData.EnorceCSRFProtection + 'Enforce E2E Encryption' = $GlobalSettings.GeneralData.EnforceE2EEncryption + + + } - $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) - $TableParams = @{ - Name = "Global Settings - $($HVEnvironment.split(".").toUpper()[0])" - List = $true - ColumnWidths = 50, 50 + $TableParams = @{ + Name = "Global Settings - $($HVEnvironment)" + List = $true + ColumnWidths = 50, 50 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" + try { + if ($InfoLevel.Settings.GlobalSettings.GlobalSettings -ge 2) { + section -Style Heading3 "Security Settings" { + $OutObj = @() + Write-PscriboMessage "Discovered Security Settings Information." + foreach ($CLientData in $GlobalSettings.ClientRestrictionConfiguration.ClientData) { + $inObj = [ordered] @{ + 'Reauthenticate Secure Tunnel After Interruption' = $GlobalSettings.SecurityData.ReauthSecureTunnelAfterInterruption + 'Disallow Enhanced Security Mode' = $GlobalSettings.SecurityData.DisallowEnhancedSecurityMode + 'No Managed Certs' = $GlobalSettings.SecurityData.NoManagedCerts + 'Message Security Mode' = $GlobalSettings.SecurityData.MessageSecurityMode + 'Message Security Status' = $GlobalSettings.SecurityData.MessageSecurityStatus + 'Enable IP Sec for Security Server Pairing' = $GlobalSettings.SecurityData.EnableIPSecForSecurityServerPairing + } + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + + $TableParams = @{ + Name = "Security Settings - $($HVEnvironment)" + List = $true + ColumnWidths = 50, 50 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + } } - $OutObj | Table @TableParams + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + try { if ($InfoLevel.Settings.GlobalSettings.GlobalSettings -ge 2) { - section -Style Heading4 "Client Restriction Settings" { + section -Style Heading3 "Client Restriction Settings" { $OutObj = @() Write-PscriboMessage "Discovered Client Restriction Settings Information." foreach ($CLientData in $GlobalSettings.ClientRestrictionConfiguration.ClientData) { @@ -88,7 +140,7 @@ function Get-AbrHRZGlobalSetting { } $TableParams = @{ - Name = "Client Restriction Settings - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Client Restriction Settings - $($HVEnvironment)" List = $false ColumnWidths = 25, 25, 25, 25 } diff --git a/Src/Private/Get-AbrHRZHomeSite.ps1 b/Src/Private/Get-AbrHRZHomeSite.ps1 index 2b4af34..189a97c 100644 --- a/Src/Private/Get-AbrHRZHomeSite.ps1 +++ b/Src/Private/Get-AbrHRZHomeSite.ps1 @@ -72,6 +72,7 @@ function Get-AbrHRZHomeSite { $HomeSiteGlobalApplicationEntitlementID = $hzServices.GlobalApplicationEntitlement.GlobalApplicationEntitlement_Get($homesite.Base.GlobalApplicationEntitlement) $HomeSiteGlobalApplicationEntitlementIDName = $HomeSiteGlobalApplicationEntitlementID.base.DisplayName } + $inObj = [ordered] @{ 'User or Group Name' = $HomeSiteUserIDName 'Domain' = $HomeSiteUserIDDomain diff --git a/Src/Private/Get-AbrHRZInfrastructure.ps1 b/Src/Private/Get-AbrHRZInfrastructure.ps1 index 95b9694..2654228 100644 --- a/Src/Private/Get-AbrHRZInfrastructure.ps1 +++ b/Src/Private/Get-AbrHRZInfrastructure.ps1 @@ -5,10 +5,10 @@ function Get-AbrHRZInfrastructure { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 0.3.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick - Editor: Jonathan Colon, @jcolonfzenpr + Editor: Jonathan Colon, @jcolonfzenpr, Chris Hildebrandt Twitter: @asbuiltreport Github: AsBuiltReport Credits: Iain Brighton (@iainbrighton) - PScribo module @@ -28,7 +28,7 @@ function Get-AbrHRZInfrastructure { process { try { - section -Style NOTOCHeading2 "Executive Summary" { + section -Style NOTOCHeading2 "Executive Summary for $($HVEnvironment.split(".").toUpper()[0])" { $OutObj = @() Write-PscriboMessage "Discovered Infrastructure Summary Information." $inObj = [ordered] @{ diff --git a/Src/Private/Get-AbrHRZLicense.ps1 b/Src/Private/Get-AbrHRZLicense.ps1 index d662e33..c5494a4 100644 --- a/Src/Private/Get-AbrHRZLicense.ps1 +++ b/Src/Private/Get-AbrHRZLicense.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZLicense { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -31,49 +31,67 @@ function Get-AbrHRZLicense { try { if ($ProductLicenseingInfo) { if ($InfoLevel.Settings.ProductLicensing.ProductLicensingandUsage -ge 1) { - section -Style Heading3 "Product Licenses" { - Paragraph "The following section details the Product License information for $($HVEnvironment.split('.')[0]) server." + section -Style Heading2 "Product Licensing and Usage" { + Paragraph "The following section details the product license and usage information for $($HVEnvironment) server." BlankLine - $OutObj = @() - foreach ($ProductLic in $ProductLicenseingInfo) { - try { - Write-PscriboMessage "Discovered Product Licensing Information." - $inObj = [ordered] @{ - 'License Edition' = $ProductLic.LicenseEdition - 'Is Licensed' = $ProductLic.Licensed - 'License Key' = $ProductLic.LicenseKey - 'License Expiration' = $ProductLic.ExpirationTime.ToShortDateString() - 'Composer enabled' = $ProductLic.ViewComposerEnabled - 'Desktop Launching enabled' = $ProductLic.DesktopLaunchingEnabled - 'Application Launching enabled' = $ProductLic.ApplicationLaunchingEnabled - 'Instant Clone enabled' = $ProductLic.InstantCloneEnabled - 'HelpDesk enabled' = $ProductLic.HelpDeskEnabled - 'Collaboration enabled' = $ProductLic.CollaborationEnabled - 'License Usage Model' = $ProductLic.UsageModel - } - $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) - } - catch { - Write-PscriboMessage -IsWarning $_.Exception.Message + section -Style Heading3 "Licensing" { + $OutObj = @() + foreach ($ProductLic in $ProductLicenseingInfo) { + try { + Write-PscriboMessage "Discovered Product Licensing Information." + + # If $ProductLic.ExpirationTime is null, then the license is perpetual + $ProductLicExpirationTime = "" + if ($null -eq $ProductLic.ExpirationTime) { + $ProductLicExpirationTime = "Perpetual" + }else { + $ProductLicExpirationTime = $ProductLic.ExpirationTime.ToShortDateString() + } + + $inObj = [ordered] @{ + 'Is Licensed' = $ProductLic.Licensed + 'License Key' = $ProductLic.LicenseKey + 'License Expiration' = $ProductLicExpirationTime + 'Composer enabled' = $ProductLic.ViewComposerEnabled + 'Desktop Launching enabled' = $ProductLic.DesktopLaunchingEnabled + 'Application Launching enabled' = $ProductLic.ApplicationLaunchingEnabled + 'Instant Clone enabled' = $ProductLic.InstantCloneEnabled + 'Helpdesk enabled' = $ProductLic.HelpDeskEnabled + 'Collaboration enabled' = $ProductLic.CollaborationEnabled + 'License Edition' = $ProductLic.LicenseEdition + 'License Usage Model' = $ProductLic.UsageModel + 'License Mode' = $ProductLic.LicenseMode + 'Grace Period Days' = $ProductLic.GracePeriodDays + 'Subscription Slice Expiry' = $ProductLic.SubscriptionSliceExpiry + 'License Health' = $ProductLic.LicenseHealth + } + + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + } + Catch{ + Write-PscriboMessage -IsWarning $_.Exception.Message + } } - } + - $TableParams = @{ - Name = "Product Licenses - $($HVEnvironment.split(".").toUpper()[0])" - List = $true - ColumnWidths = 50, 50 - } + $TableParams = @{ + Name = "Licensing - $($HVEnvironment)" + List = $true + ColumnWidths = 50, 50 + } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams } - $OutObj | Table @TableParams + try { $UsageStatisticsInfo = try {$hzServices.UsageStatistics.UsageStatistics_GetLicensingCounters()} catch {Write-PscriboMessage -IsWarning $_.Exception.Message} if ($UsageStatisticsInfo) { if ($InfoLevel.Settings.ProductLicensing.ProductLicensingandUsage -ge 2) { - section -Style Heading4 "Product License Usage" { + section -Style Heading3 "Usage" { $OutObj = @() foreach ($ProductUsage in $UsageStatisticsInfo.HighestUsage.PSObject.Properties.Name) { try { @@ -92,7 +110,7 @@ function Get-AbrHRZLicense { } $TableParams = @{ - Name = "Product Licenses Usage - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Usage - $($HVEnvironment)" List = $false ColumnWidths = 60, 20, 20 } @@ -108,6 +126,46 @@ function Get-AbrHRZLicense { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } + + try { + if ($CEIP) { + if ($InfoLevel.Settings.ProductLicensing.ProductLicensingandUsage -ge 2) { + section -Style Heading3 "Customer Experience Program" { + $OutObj = @() + try { + Write-PscriboMessage "Discovered Customer Experience Program Information." + $inObj = [ordered] @{ + 'CEIP Enabled' = $CEIP.Enabled + 'Company Size' = $CEIP.CompanySize + 'Geolocation' = $CEIP.Geolocation + 'Vertical' = $CEIP.Vertical + } + + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + $TableParams = @{ + Name = "Customer Experience Program - $($HVEnvironment)" + List = $true + ColumnWidths = 40, 60 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + } + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + } } } diff --git a/Src/Private/Get-AbrHRZLocalEntitlement.ps1 b/Src/Private/Get-AbrHRZLocalEntitlement.ps1 index 504d060..5df02ee 100644 --- a/Src/Private/Get-AbrHRZLocalEntitlement.ps1 +++ b/Src/Private/Get-AbrHRZLocalEntitlement.ps1 @@ -148,7 +148,6 @@ function Get-AbrHRZLocalEntitlement { $inObj = [ordered] @{ 'Name' = $EntitledUserOrGroupLocalMachine.base.Name 'Group or User' = $EntitledUserOrGroupLocalMachinegroup - 'SID' = $EntitledUserOrGroupLocalMachine.base.Sid 'Domain' = $EntitledUserOrGroupLocalMachine.base.Domain 'Ad Distinguished Name' = $EntitledUserOrGroupLocalMachine.base.AdDistinguishedName 'First Name' = $EntitledUserOrGroupLocalMachine.base.FirstName @@ -160,7 +159,7 @@ function Get-AbrHRZLocalEntitlement { 'Kiosk User' = $EntitledUserOrGroupLocalMachine.base.KioskUser 'Phone' = $EntitledUserOrGroupLocalMachine.base.Phone 'Description' = $EntitledUserOrGroupLocalMachine.base.Description - 'in Folder' = $EntitledUserOrGroupLocalMachine.base.InFolder + 'In Folder' = $EntitledUserOrGroupLocalMachine.base.InFolder 'User Principal Name' = $EntitledUserOrGroupLocalMachine.base.UserPrincipalName 'Local Machines' = $MachineIDName 'Local User Persistent Disks' = $EntitledUserOrGroupLocalMachine.LocalData.PersistentDisks diff --git a/Src/Private/Get-AbrHRZMachines.ps1 b/Src/Private/Get-AbrHRZMachines.ps1 new file mode 100644 index 0000000..d5f568f --- /dev/null +++ b/Src/Private/Get-AbrHRZMachines.ps1 @@ -0,0 +1,118 @@ +function Get-AbrHRZMachines { + <# + .SYNOPSIS + PowerShell script which documents the configuration of VMware Horizon in Word/HTML/XML/Text formats + .DESCRIPTION + Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. + .NOTES + Version: 1.1.0 + Author: Chris Hildebrandt, Karl Newick + Twitter: @childebrandt42, @karlnewick + Editor: Jonathan Colon, @jcolonfzenpr + Twitter: @asbuiltreport + Github: AsBuiltReport + Credits: Iain Brighton (@iainbrighton) - PScribo module + + + .LINK + https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon + #> + + [CmdletBinding()] + param ( + ) + + begin { + Write-PScriboMessage "Machine InfoLevel set at $($InfoLevel.Inventory.Machines)." + Write-PscriboMessage "Collecting Machine information." + } + + process { + try { + if ($Machines) { + if ($InfoLevel.Inventory.Machines -ge 1) { + section -Style Heading3 "Machines" { + Paragraph "The following section details on all of the machine information for $($HVEnvironment)." + BlankLine + + Write-PscriboMessage "Working on Machines Information for $($HVEnvironment)." + + section -Style Heading4 "vCenter Machine Summary" { + $OutObj = @() + + foreach ($Machine in $Machines) { + $inObj = [ordered] @{ + 'Machine Name' = $Machine.Base.Name + 'Agent Version' = $Machine.Base.AgentVersion + 'User' = $Machine.Base.User + 'Host' = $Machine.ManagedMachineData.VirtualCenterData.Hostname + 'Data Store' = $Machine.ManagedMachineData.VirtualCenterData.VirtualDisks.DatastorePath + 'Basic State' = $Machine.Base.BasicState + } + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + + $TableParams = @{ + Name = "vCenter Machine Summary - $($HVEnvironment)" + List = $false + ColumnWidths = 15, 10, 20, 25, 15, 15 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + <# + if ($InfoLevel.Inventory.Machines -ge 1) { + + $OutObj = @() + #section -Style Heading4 "vCenter Machine Details" { + foreach ($Machine in $Machines) { + $inObj = [ordered] @{ + 'Machine Name' = $machine.base.Name + 'DNS Name' = $machine.base.DnsName + 'User' = $machine.base.User + 'Users' = $machine.base.Users + 'Aliases' = $machine.base.Aliases + 'Access Group' = $machine.base.AccessGroup + 'Desktop' = $machine.base.Desktop + 'Desktop Name' = $machine.base.DesktopName + 'Session' = $machine.base.Session + 'State' = $machine.base.BasicState + 'Type' = $machine.base.Type + 'Operating System' = $machine.base.OperatingSystem + 'System Architecture' = $machine.base.OperatingSystemArchitecture + 'Agent Build Version' = $machine.base.AgentVersion + 'Agent Build Number' = $machine.base.AgentBuildNumber + 'Remote Experence Agent Version' = $machine.base.RemoteExperienceAgentVersion + 'Remote Experence Agent Build' = $machine.base.RemoteExperienceAgentBuildNumber + 'Agent Upgrade' = $machine.base.AgentUpgradeInfo + } + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + + $TableParams = @{ + Name = "vCenter Machine Details - $($HVEnvironment)" + List = $true + ColumnWidths = 60, 40 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + #} + + } + #> + + } + + } + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + end {} +} \ No newline at end of file diff --git a/Src/Private/Get-AbrHRZRegisteredMachine.ps1 b/Src/Private/Get-AbrHRZRegisteredMachine.ps1 index d0ddc48..0fa3cca 100644 --- a/Src/Private/Get-AbrHRZRegisteredMachine.ps1 +++ b/Src/Private/Get-AbrHRZRegisteredMachine.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZRegisteredMachine { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -31,11 +31,11 @@ function Get-AbrHRZRegisteredMachine { try { if ($RDSServers) { if ($InfoLevel.Settings.RegisteredMachines.RDSHosts -ge 1) { - section -Style Heading3 "Registered Machines" { - Paragraph "The following section provides information of Registered Machines for $($HVEnvironment.split('.')[0]) server." + section -Style Heading2 "Registered Machines" { + Paragraph "The following section provides information of Registered Machines for $($HVEnvironment) server." BlankLine - section -Style Heading4 'RDS Hosts' { - Paragraph "The following section details the RDS Hosts configuration for $($HVEnvironment.split('.')[0]) server." + section -Style Heading3 'RDS Hosts' { + Paragraph "The following section details the RDS Hosts configuration for $($HVEnvironment) server." BlankLine $OutObj = @() foreach ($RDSServer in $RDSServers) { @@ -54,7 +54,7 @@ function Get-AbrHRZRegisteredMachine { } $TableParams = @{ - Name = "RDS Hosts - $($HVEnvironment.split(".").toUpper()[0])" + Name = "RDS Hosts - $($HVEnvironment)" List = $false ColumnWidths = 34, 33, 33 } @@ -65,7 +65,7 @@ function Get-AbrHRZRegisteredMachine { $OutObj | Table @TableParams try { if ($InfoLevel.Settings.RegisteredMachines.RDSHosts -ge 2) { - section -Style Heading5 'RDS Hosts Details' { + section -Style Heading4 'RDS Hosts Details' { foreach ($RDSServer in $RDSServers) { Write-PscriboMessage "Discovered RDS Host $($RDSServer.base.name) Information." $OutObj = @() @@ -111,6 +111,38 @@ function Get-AbrHRZRegisteredMachine { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } + + section -Style Heading3 'Others' { + Paragraph "The following section details the RDS Hosts configuration for $($HVEnvironment) server." + BlankLine + $OutObj = @() + foreach ($RegisteredPhysicalMachine in $RegisteredPhysicalMachines) { + Write-PscriboMessage "Other Registerd Machines" + $inObj = [ordered] @{ + 'Name' = $RegisteredPhysicalMachines.MachineBase.name + 'DNS Name' = $RegisteredPhysicalMachines.MachineBase.DnsName + 'Description' = $RegisteredPhysicalMachines.MachineBase.Description + 'OperatingSystem' = $RegisteredPhysicalMachines.MachineBase.Description + } + + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + + if ($HealthCheck.RegisteredMachines.Status) { + $OutObj | Where-Object { $_.'Status' -ne 'AVAILABLE'} | Set-Style -Style Warning + } + + $TableParams = @{ + Name = "Other Registered Machines - $($HVEnvironment)" + List = $false + ColumnWidths = 20, 20, 30, 30 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + } + } } } diff --git a/Src/Private/Get-AbrHRZRolePermission.ps1 b/Src/Private/Get-AbrHRZRolePermission.ps1 index f7b9416..30bc5a4 100644 --- a/Src/Private/Get-AbrHRZRolePermission.ps1 +++ b/Src/Private/Get-AbrHRZRolePermission.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZRolePermission { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -31,11 +31,15 @@ function Get-AbrHRZRolePermission { try { if ($Permissions) { if ($InfoLevel.Settings.Administrators.RolePermissions -ge 1) { - section -Style Heading4 "Role Permissions" { - Paragraph "The following section details the Role Permissions information for $($HVEnvironment.split('.')[0]) server." + section -Style Heading3 "Role Permissions" { + Paragraph "The following section details the Role Permissions information for $($HVEnvironment) server." BlankLine $OutObj = @() - foreach ($Permission in $Permissions) { + + $FilteredPermissions = '' + $FilteredPermissions = $Permissions | Where-Object{$null -eq $_.base.GlobalAccessGroup} + + foreach ($Permission in $FilteredPermissions) { Write-PscriboMessage "Discovered Role Permissions Information." $AdministratorIDNameResults = '' # Find Administrator ID Name @@ -110,7 +114,7 @@ function Get-AbrHRZRolePermission { } $TableParams = @{ - Name = "Role Permissions - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Role Permissions - $($HVEnvironment)" List = $false ColumnWidths = 33, 33, 34 } diff --git a/Src/Private/Get-AbrHRZRolePrivilege.ps1 b/Src/Private/Get-AbrHRZRolePrivilege.ps1 index ca8cb50..4daa0ba 100644 --- a/Src/Private/Get-AbrHRZRolePrivilege.ps1 +++ b/Src/Private/Get-AbrHRZRolePrivilege.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZRolePrivilege { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -31,8 +31,8 @@ function Get-AbrHRZRolePrivilege { try { if ($Roles) { if ($InfoLevel.Settings.Administrators.RolePrivileges -ge 1) { - section -Style Heading4 "Role Privileges" { - Paragraph "The following section details the Role Privileges information for $($HVEnvironment.split('.')[0]) server." + section -Style Heading3 "Role Privileges" { + Paragraph "The following section details the Role Privileges information for $($HVEnvironment) server." BlankLine $OutObj = @() foreach ($Role in $Roles) { @@ -46,7 +46,7 @@ function Get-AbrHRZRolePrivilege { } $TableParams = @{ - Name = "Role Privileges - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Role Privileges - $($HVEnvironment)" List = $false ColumnWidths = 50, 50 } @@ -56,6 +56,37 @@ function Get-AbrHRZRolePrivilege { } $OutObj | Sort-Object -Property 'Name' | Table @TableParams } + + if ($InfoLevel.Settings.Administrators.RolePrivileges -ge 2) { + section -Style Heading4 "Role Privileges Details" { + + Paragraph "The following section details the Role Privilege details for information for $($HVEnvironment) server." + BlankLine + $OutObj = @() + foreach ($Role in $Roles) { + Write-PscriboMessage "Discovered Role Provilege Detailed Information for $($HVEnvironment) server." + $inObj = [ordered] @{ + 'Name' = $Role.base.Name + 'Description' = [string]::join("`n", $($Role.base.Privileges)) + } + + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + + $TableParams = @{ + Name = "Role Privileges Details - $($Role.base.Name)" + List = $false + ColumnWidths = 50, 50 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Sort-Object -Property 'Name' | Table @TableParams + } + } + + } } } diff --git a/Src/Private/Get-AbrHRZSites.ps1 b/Src/Private/Get-AbrHRZSites.ps1 new file mode 100644 index 0000000..f2287e5 --- /dev/null +++ b/Src/Private/Get-AbrHRZSites.ps1 @@ -0,0 +1,80 @@ +function Get-AbrHRZSites { + <# + .SYNOPSIS + PowerShell script which documents the configuration of VMware Horizon in Word/HTML/XML/Text formats + .DESCRIPTION + Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. + .NOTES + Version: 1.1.0 + Author: Chris Hildebrandt, Karl Newick + Twitter: @childebrandt42, @karlnewick + Editor: Jonathan Colon, @jcolonfzenpr + Twitter: @asbuiltreport + Github: AsBuiltReport + Credits: Iain Brighton (@iainbrighton) - PScribo module + + + .LINK + https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon + #> + + [CmdletBinding()] + param ( + ) + + begin { + Write-PScriboMessage "Site InfoLevel set at $($InfoLevel.Settings.Sites.Sites)." + Write-PscriboMessage "Collecting Cloud Pod Site information." + } + + process { + try { + if ($CloudPodSites) { + if ($InfoLevel.Settings.Sites.Sites -ge 1) { + section -Style Heading2 "Site" { + Paragraph "The following section details on the Cloud Pod Site information for $($HVEnvironment)." + BlankLine + $OutObj = @() + foreach($CloudPodSite in $CloudPodSites) { + + # Find CloudPod Info + foreach($CloudPodList in $CloudPodLists) { + if($CloudPodList.Id.id -eq $CloudPodSite.pods.id){ + $CloudPodDisplayName = $CloudPodList.DisplayName + break + } # if($AccessGroup.Id.id -eq $RDSServers.base.accessgroup.id) + } # Close out foreach($AccessGroup in $AccessGroups) + + + Write-PscriboMessage "Discovered Site Information." + $inObj = [ordered] @{ + 'Cloud Pod Sites Name' = $CloudPodSite.base.DisplayName + 'Cloud Pod Sites Description' = $CloudPodSite.base.Description + 'Cloud Pod Site Pod Name' = $CloudPodDisplayName + } + + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + + $TableParams = @{ + Name = "Site - $($HVEnvironment)" + List = $true + ColumnWidths = 50, 50 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + + + } + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + end {} +} \ No newline at end of file diff --git a/Src/Private/Get-AbrHRZUAG.ps1 b/Src/Private/Get-AbrHRZUAG.ps1 index 1a626a8..a141607 100644 --- a/Src/Private/Get-AbrHRZUAG.ps1 +++ b/Src/Private/Get-AbrHRZUAG.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZUAG { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -24,15 +24,15 @@ function Get-AbrHRZUAG { begin { Write-PScriboMessage "SecurityServers InfoLevel set at $($InfoLevel.Settings.Servers.vCenterServers.ADDomains)." - Write-PscriboMessage "Collecting Security Servers information." + Write-PscriboMessage "Collecting Gateway Servers information." } process { try { if ($GatewayServers) { if ($InfoLevel.Settings.Servers.UAG.UAGServers -ge 1) { - section -Style Heading4 "UAG Servers" { - Paragraph "The following section details the UAG Servers information for $($HVEnvironment.split('.')[0]) server." + section -Style Heading3 "Gateway Servers" { + Paragraph "The following section details the Gateway Servers information for $($HVEnvironment)." BlankLine $OutObj = @() foreach ($GatewayServer in $GatewayServers.GeneralData) { @@ -58,7 +58,7 @@ function Get-AbrHRZUAG { } $TableParams = @{ - Name = "UAG Servers - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Gateway Servers - $($HVEnvironment)" List = $false ColumnWidths = 35, 20, 15, 15, 15 } diff --git a/Src/Private/Get-AbrHRZVcenter.ps1 b/Src/Private/Get-AbrHRZVcenter.ps1 index c31c302..4ade067 100644 --- a/Src/Private/Get-AbrHRZVcenter.ps1 +++ b/Src/Private/Get-AbrHRZVcenter.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZVcenter { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -31,8 +31,8 @@ function Get-AbrHRZVcenter { try { if ($vCenterServers) { if ($InfoLevel.Settings.Servers.vCenterServers.vCenter -ge 1) { - section -Style Heading4 "vCenter Servers" { - Paragraph "The following section details the vCenter Servers configuration for $($HVEnvironment.split('.')[0]) server." + section -Style Heading3 "vCenter Servers" { + Paragraph "The following section details the vCenter Servers configuration for $($HVEnvironment) server." BlankLine $vCenterHealthData = $vCenterHealth.data $OutObj = @() @@ -68,7 +68,7 @@ function Get-AbrHRZVcenter { if ($InfoLevel.Settings.Servers.vCenterServers.vCenter -ge 2) { foreach ($vCenterServer in $vCenterServers) { try { - section -Style Heading5 "$($vCenterServer.serverspec.ServerName)" { + section -Style Heading4 "$($vCenterServer.serverspec.ServerName)" { $OutObj = @() Write-PscriboMessage "Discovered Virtual Centers Information $($vCenterServer.serverspec.ServerName)." $inObj = [ordered] @{ diff --git a/Src/Public/Invoke-ASBuiltReport.VMware.Horizon.ps1 b/Src/Public/Invoke-ASBuiltReport.VMware.Horizon.ps1 index 25ba6b8..56c6310 100644 --- a/Src/Public/Invoke-ASBuiltReport.VMware.Horizon.ps1 +++ b/Src/Public/Invoke-ASBuiltReport.VMware.Horizon.ps1 @@ -76,6 +76,9 @@ # Connection Server Info $connectionservers = try {$hzServices.ConnectionServer.ConnectionServer_List()} catch {Write-PscriboMessage -IsWarning $_.Exception.Message} + # Connection Server Health + $ConnectionServersHealth = try {$hzServices.ConnectionServerHealth.ConnectionServerHealth_List()} catch {Write-PscriboMessage -IsWarning $_.Exception.Message} + # GateWay Server Info $GatewayServers = try {$hzServices.Gateway.Gateway_List()} catch {Write-PscriboMessage -IsWarning $_.Exception.Message} @@ -85,7 +88,6 @@ # AD Domains $ADDomains = try {$hzServices.ADDomain.ADDomain_List()} catch {Write-PscriboMessage -IsWarning $_.Exception.Message} - # Product Licensing Info $ProductLicenseingInfo = try {$hzServices.License.License_Get()} catch {Write-PscriboMessage -IsWarning $_.Exception.Message} @@ -114,6 +116,18 @@ # Virtual Centers $vCenterServers = try {$hzServices.VirtualCenter.VirtualCenter_List()} catch {Write-PscriboMessage -IsWarning $_.Exception.Message} + # Global Policies + try { + $GlobalPoliciesService = New-Object VMware.Hv.PoliciesService + $GlobalPolicies = $GlobalPoliciesService.Policies_Get($hvServer.ExtensionData,$null,$null) + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + # Unauthenticated Access + $unauthenticatedAccessList = try {$hzServices.UnauthenticatedAccessUser.UnauthenticatedAccessUser_List()} catch {Write-PscriboMessage -IsWarning $_.Exception.Message} + try { $EntitledUserOrGroupLocalMachineQueryDefn = New-Object VMware.Hv.QueryDefinition $EntitledUserOrGroupLocalMachineQueryDefn.queryentitytype='EntitledUserOrGroupLocalSummaryView' @@ -139,14 +153,6 @@ Write-PscriboMessage -IsWarning $_.Exception.Message } - try { - # Unauthenticated Access - $unauthenticatedAccessList = $hzServices.UnauthenticatedAccessUser.UnauthenticatedAccessUser_List() - } - catch { - Write-PscriboMessage -IsWarning $_.Exception.Message - } - try { # Pool Info $PoolQueryDefn = New-Object VMware.Hv.QueryDefinition @@ -161,6 +167,18 @@ Write-PscriboMessage -IsWarning $_.Exception.Message } + try { + # Desktop Assignment Info + $DesktopAssignmentViewQueryDefn = New-Object VMware.Hv.QueryDefinition + $DesktopAssignmentViewQueryDefn.queryentitytype='DesktopAssignmentView' + $DesktopAssignmentViewResults = $Queryservice.QueryService_Create($hzServices, $DesktopAssignmentViewQueryDefn) + $DesktopAssignmentViewResultsData = $DesktopAssignmentViewResults.results + $queryservice.QueryService_DeleteAll($hzServices) + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + try { # Application Pools $AppQueryDefn = New-Object VMware.Hv.QueryDefinition @@ -217,6 +235,21 @@ Write-PscriboMessage -IsWarning $_.Exception.Message } + # Entitled Global Users and Groups + try { + # EntitledUserOrGroupGlobal Info + $EntitledUserOrGroupGlobalQueryDefn = New-Object VMware.Hv.QueryDefinition + $EntitledUserOrGroupGlobalQueryDefn.queryentitytype='EntitledUserOrGroupGlobalSummaryView' + $EntitledUserOrGroupGlobalqueryResults = $Queryservice.QueryService_Create($hzServices, $EntitledUserOrGroupGlobalQueryDefn) + $EntitledUserOrGroupGlobals = foreach ($EntitledUserOrGroupGlobalresult in $EntitledUserOrGroupGlobalqueryResults.results) { + $hzServices.EntitledUserOrGroup.EntitledUserOrGroup_GetGlobalSummaryView($EntitledUserOrGroupGlobalresult.id) + } + $queryservice.QueryService_DeleteAll($hzServices) + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + # Permissions $Permissions = try {$hzServices.Permission.Permission_List()} catch {Write-PscriboMessage -IsWarning $_.Exception.Message} @@ -286,6 +319,18 @@ Write-PscriboMessage -IsWarning $_.Exception.Message } + # Registerd Physical Machines + Try{ + $RegisteredPhysicalMachineInfoQueryDefn = New-Object VMware.Hv.QueryDefinition + $RegisteredPhysicalMachineInfoQueryDefn.queryentitytype='RegisteredPhysicalMachineInfo' + $RegisteredPhysicalMachineResults = $Queryservice.QueryService_Create($hzServices, $RegisteredPhysicalMachineInfoQueryDefn) + $RegisteredPhysicalMachines = foreach ($RegisteredPhysicalMachineresult in $RegisteredPhysicalMachineResults.results) {$hzServices.RegisteredPhysicalMachine.RegisteredPhysicalMachine_Get($RegisteredPhysicalMachineResult.id)} + $queryservice.QueryService_DeleteAll($hzServices) + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + try { # Template Images $TemplateVMList = $vCenterServers | ForEach-Object {$hzServices.VmTemplate.VmTemplate_List($_.id)} @@ -297,59 +342,100 @@ Write-PscriboMessage -IsWarning $_.Exception.Message } - section -Style Heading1 "$($HVEnvironment.split(".").toUpper()[0])" { + try { + # CEIP Info + $CEIP = $hzServices.CEIP.CEIP_Get() + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + try { + # Certificate Management + $CertificateManagement = $hzServices.GlobalSettings.GlobalSettings_ListGatewayCertificates() + + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + try { + # Global Access Group Info + $GlobalAccessGroups = $hzServices.GlobalAccessGroup.GlobalAccessGroup_List() + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + try { + # Gateway Certificates + $GatewayCerts = $hzServices.GlobalSettings.GlobalSettings_ListGatewayCertificates() + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + section -Style Heading1 "$($HVEnvironment)" { Get-AbrHRZInfrastructure - if ($InfoLevel.UsersAndGroups.PSObject.Properties.Value -ne 0) { - Section -Style Heading2 'Users and Groups' { - Paragraph 'The following section provides information about the permissions that control which remote desktops and applications your users can access.' - Get-AbrHRZLocalEntitlement - Get-AbrHRZHomeSite - Get-AbrHRZUnauthenticatedACL - } + } + + if ($InfoLevel.UsersAndGroups.PSObject.Properties.Value -ne 0) { + Section -Style Heading1 'Users and Groups' { + Paragraph 'The following section provides information about the permissions that control which remote desktops and applications your users can access.' + Get-AbrHRZLocalEntitlement + Get-AbrHRZHomeSite + Get-AbrHRZUnauthenticatedACL } + } - if ($InfoLevel.Inventory.PSObject.Properties.Value -ne 0) { - section -Style Heading2 'Inventory' { - Paragraph 'The following section provides detailed information about desktop, application, farm pools and global entitlement permissions that control which remote desktops and applications your users can access.' - Get-AbrHRZDesktopPool - Get-AbrHRZApplicationPool - Get-AbrHRZFarm - Get-AbrHRZGlobalEntitlement - } + if ($InfoLevel.Inventory.PSObject.Properties.Value -ne 0) { + section -Style Heading1 'Inventory' { + Paragraph 'The following section provides detailed information about desktop, application, farm pools and global entitlement permissions that control which remote desktops and applications your users can access.' + Get-AbrHRZDesktopPool + Get-AbrHRZApplicationPool + Get-AbrHRZFarm + Get-AbrHRZMachines + Get-AbrHRZGlobalEntitlement } + } - section -Style Heading2 'Settings' { - Paragraph 'The following section provides detailed information about the configuration of the components that comprise the Horizon Server infrastructure.' - if ($InfoLevel.Settings.Servers.PSObject.Properties.Value -ne 0) { - section -Style Heading3 'Servers' { - Get-AbrHRZVcenter - Get-AbrHRZESXi - Get-AbrHRZDatastore - Get-AbrHRZADDomain - Get-AbrHRZUAG - Get-AbrHRZConnectionServer - - } + section -Style Heading1 'Settings' { + Paragraph 'The following section provides detailed information about the configuration of the components that comprise the Horizon Server infrastructure.' + if ($InfoLevel.Settings.Servers.PSObject.Properties.Value -ne 0) { + section -Style Heading2 'Servers' { + Get-AbrHRZVcenter + Get-AbrHRZDatastore + Get-AbrHRZESXi + Get-AbrHRZUAG + Get-AbrHRZConnectionServer + Get-AbrHRZGatewayCert } + } - Get-AbrHRZInstantClone - Get-AbrHRZLicense - Get-AbrHRZGlobalSetting - Get-AbrHRZRegisteredMachine - - if ($InfoLevel.Settings.Administrators.PSObject.Properties.Value -ne 0) { - section -Style Heading3 'Administrators' { - Get-AbrHRZAdminGroup - Get-AbrHRZRolePrivilege - Get-AbrHRZRolePermission - Get-AbrHRZAccessGroup - - } + #Get-AbrHRZADDomain + Get-AbrHRZDomains + Get-AbrHRZCertMgmt + Get-AbrHRZLicense + Get-AbrHRZGlobalSetting + Get-AbrHRZRegisteredMachine + + if ($InfoLevel.Settings.Administrators.PSObject.Properties.Value -ne 0) { + section -Style Heading2 'Administrators' { + Get-AbrHRZAdminGroup + Get-AbrHRZRolePrivilege + Get-AbrHRZRolePermission + Get-AbrHRZAccessGroup + Get-AbrHRZFederationAccessGroups + } - - Get-AbrHRZEventConf } + + Get-AbrHRZCloudPod + Get-AbrHRZSites + Get-AbrHRZEventConf + Get-AbrHRZGlobalPolicies } + } } } \ No newline at end of file From 4207e98d5170466ca867f406f9a59eab999327c8 Mon Sep 17 00:00:00 2001 From: Chris Hildebrandt Date: Sat, 16 Dec 2023 11:16:17 -0600 Subject: [PATCH 08/18] Cleaned Up Code and Fixed a few minor issues. --- AsBuiltReport.VMware.Horizon.json | 5 +- AsBuiltReport.VMware.Horizon.psd1 | Bin 9854 -> 9854 bytes README.md | 6 +- ...Sample VMware Horizon As Built Report.html | 4 +- Src/Private/Get-AbrHRZAccessGroup.ps1 | 4 +- Src/Private/Get-AbrHRZAdminGroup.ps1 | 4 +- Src/Private/Get-AbrHRZApplicationPool.ps1 | 4 +- Src/Private/Get-AbrHRZCertMgmt.ps1 | 9 +- Src/Private/Get-AbrHRZCloudPod.ps1 | 6 +- Src/Private/Get-AbrHRZConnectionServer.ps1 | 4 +- Src/Private/Get-AbrHRZDatastore.ps1 | 2 +- Src/Private/Get-AbrHRZDesktopPool.ps1 | 40 +++---- Src/Private/Get-AbrHRZDomains.ps1 | 8 +- Src/Private/Get-AbrHRZESXi.ps1 | 2 +- Src/Private/Get-AbrHRZEventConf.ps1 | 2 +- Src/Private/Get-AbrHRZFarm.ps1 | 3 - .../Get-AbrHRZFederationAccessGroups.ps1 | 107 +++++++++--------- Src/Private/Get-AbrHRZGatewayCert.ps1 | 11 +- Src/Private/Get-AbrHRZGlobalEntitlement.ps1 | 105 +++++++---------- Src/Private/Get-AbrHRZGlobalPolicies.ps1 | 6 +- Src/Private/Get-AbrHRZGlobalSetting.ps1 | 12 +- Src/Private/Get-AbrHRZHomeSite.ps1 | 2 +- Src/Private/Get-AbrHRZInfrastructure.ps1 | 4 +- Src/Private/Get-AbrHRZLicense.ps1 | 11 +- Src/Private/Get-AbrHRZLocalEntitlement.ps1 | 4 +- Src/Private/Get-AbrHRZMachines.ps1 | 13 +-- Src/Private/Get-AbrHRZRegisteredMachine.ps1 | 10 +- Src/Private/Get-AbrHRZRolePermission.ps1 | 4 +- Src/Private/Get-AbrHRZRolePrivilege.ps1 | 8 +- Src/Private/Get-AbrHRZSites.ps1 | 4 +- Src/Private/Get-AbrHRZUAG.ps1 | 4 +- Src/Private/Get-AbrHRZUnauthenticatedACL.ps1 | 2 +- Src/Private/Get-AbrHRZVcenter.ps1 | 2 +- .../Invoke-ASBuiltReport.VMware.Horizon.ps1 | 2 +- 34 files changed, 181 insertions(+), 233 deletions(-) diff --git a/AsBuiltReport.VMware.Horizon.json b/AsBuiltReport.VMware.Horizon.json index e3f9857..cb6a182 100644 --- a/AsBuiltReport.VMware.Horizon.json +++ b/AsBuiltReport.VMware.Horizon.json @@ -1,7 +1,7 @@ { "Report": { "Name": "VMware Horizon As Built Report", - "Version": "1.0", + "Version": "1.1", "Status": "Released", "ShowCoverPageImage": true, "ShowTableOfContents": true, @@ -22,8 +22,6 @@ "Applications": 1, "Farms": 1, "Machines": 1, - "PersistentDisks": 1, - "ThinApps": 1, "GlobalEntitlements": 1 }, "Settings": { @@ -32,7 +30,6 @@ "vCenter": 1, "ESXiHosts": 1, "DataStores": 1, - "Composers": 1, "ADDomains": 1 }, "UAG":{ diff --git a/AsBuiltReport.VMware.Horizon.psd1 b/AsBuiltReport.VMware.Horizon.psd1 index 3b9c921d553f0c494fb7f68cdedb8381d847b5c7..cbbc644100a486422f147b472e8c49fe8337e0bb 100644 GIT binary patch delta 18 Zcmez8^Ur5P1rw_wgC2w7=2|936#zwa1*-r6 delta 18 Zcmez8^Ur5P1rw_QgC2v?=2|936#zwW1*-r6 diff --git a/README.md b/README.md index 7713607..cb59d1d 100644 --- a/README.md +++ b/README.md @@ -130,7 +130,7 @@ The **Report** schema provides configuration of the VMware Horizon report inform | Sub-Schema | Setting | Default | Description | |---------------------|--------------|--------------------------------|--------------------------------------------------------------| | Name | User defined | VMware Horizon As Built Report | The name of the As Built Report | -| Version | User defined | 1.0 | The report version | +| Version | User defined | 1.1 | The report version | | Status | User defined | Released | The report release status | | ShowCoverPageImage | true / false | true | Toggle to enable/disable the display of the cover page image | | ShowTableOfContents | true / false | true | Toggle to enable/disable table of contents | @@ -166,7 +166,7 @@ The table below outlines the default and maximum InfoLevel settings for each Inv | Sub-Schema | Default Setting | Maximum Setting | |--------------|:---------------:|:---------------:| -| Desktop | 1 | 2 | +| Desktop | 1 | 3 | | Applications | 1 | 2 | | Farms | 1 | 2 | | Machines | 1 | 1 | @@ -190,6 +190,8 @@ The table below outlines the default and maximum InfoLevel settings for each Set | RolePrivileges | 1 | 1 | | RolePermissions | 1 | 1 | | AccessGroup | 1 | 2 | +| Cloud Pod | 1 | 2 | +| Sites | 1 | 2 | | EventDatabase | 1 | 1 | | Syslog | 1 | 1 | | EventstoFileSystem | 1 | 1 | diff --git a/Samples/Sample VMware Horizon As Built Report.html b/Samples/Sample VMware Horizon As Built Report.html index 0556b81..91f8d24 100644 --- a/Samples/Sample VMware Horizon As Built Report.html +++ b/Samples/Sample VMware Horizon As Built Report.html @@ -55,7 +55,7 @@

-
VMware Horizon As Built Report - v1.0

1 HORIZON-CS-01V

1.1 Users and Groups

The following section provides information about the permissions that control which remote desktops and applications your users can access.

1.1.1 Local Entitlements

The following section provide a summary of local user & groups entitlements.

+
VMware Horizon As Built Report - v1.1

1 HORIZON-CS-01V

1.1 Users and Groups

The following section provides information about the permissions that control which remote desktops and applications your users can access.

1.1.1 Local Entitlements

The following section provide a summary of local user & groups entitlements.

diff --git a/Src/Private/Get-AbrHRZAccessGroup.ps1 b/Src/Private/Get-AbrHRZAccessGroup.ps1 index 44f3013..8d8a3d7 100644 --- a/Src/Private/Get-AbrHRZAccessGroup.ps1 +++ b/Src/Private/Get-AbrHRZAccessGroup.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZAccessGroup { if ($AccessGroups) { if ($InfoLevel.Settings.Administrators.AccessGroup -ge 1) { section -Style Heading3 "Access Groups" { - Paragraph "The following section summarizes the configuration of Access Groups for $($HVEnvironment) server." + Paragraph "The following section summarizes the configuration of Access Groups for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() $AccessGroupJoined = @() @@ -49,7 +49,7 @@ function Get-AbrHRZAccessGroup { } $TableParams = @{ - Name = "Access Groups - $($HVEnvironment)" + Name = "Access Groups - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 35, 65 } diff --git a/Src/Private/Get-AbrHRZAdminGroup.ps1 b/Src/Private/Get-AbrHRZAdminGroup.ps1 index ce64502..664d025 100644 --- a/Src/Private/Get-AbrHRZAdminGroup.ps1 +++ b/Src/Private/Get-AbrHRZAdminGroup.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZAdminGroup { if ($Administrators) { if ($InfoLevel.Settings.Administrators.AdministratorsandGroups -ge 1) { section -Style Heading3 "Administrators and Groups" { - Paragraph "The following section details the configuration of Administrators and Groups for $($HVEnvironment) server." + Paragraph "The following section details the configuration of Administrators and Groups for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() foreach ($Administrator in $Administrators) { @@ -71,7 +71,7 @@ function Get-AbrHRZAdminGroup { } $TableParams = @{ - Name = "Administrators and Groups - $($HVEnvironment)" + Name = "Administrators and Groups - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 42, 15, 43 } diff --git a/Src/Private/Get-AbrHRZApplicationPool.ps1 b/Src/Private/Get-AbrHRZApplicationPool.ps1 index 1e3a69e..f4b77fd 100644 --- a/Src/Private/Get-AbrHRZApplicationPool.ps1 +++ b/Src/Private/Get-AbrHRZApplicationPool.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZApplicationPool { if ($Apps) { if ($InfoLevel.Inventory.Applications -ge 1) { section -Style Heading3 "Application Pool" { - Paragraph "The following section details the configuration of Application Pool for $($HVEnvironment) server." + Paragraph "The following section details the configuration of Application Pool for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() foreach ($App in $Apps) { @@ -47,7 +47,7 @@ function Get-AbrHRZApplicationPool { } $TableParams = @{ - Name = "Applications - $($HVEnvironment)" + Name = "Applications - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 34, 33, 33 } diff --git a/Src/Private/Get-AbrHRZCertMgmt.ps1 b/Src/Private/Get-AbrHRZCertMgmt.ps1 index 9285f85..36edc33 100644 --- a/Src/Private/Get-AbrHRZCertMgmt.ps1 +++ b/Src/Private/Get-AbrHRZCertMgmt.ps1 @@ -36,7 +36,7 @@ function Get-AbrHRZCertMgmt { $ConnectionServerHealthData = $ConnectionServersHealth | Select-Object -First 1 section -Style Heading2 "Certificate Management" { - Paragraph "The following section details on the certificate management information for $($HVEnvironment)." + Paragraph "The following section details on the certificate management information for $($HVEnvironment.toUpper())." BlankLine $OutObj = @() @@ -60,18 +60,15 @@ function Get-AbrHRZCertMgmt { $OutObj | Where-Object { $_.'Enabled' -eq 'No' } | Set-Style -Style Warning -Property 'Enabled' } $TableParams = @{ - Name = "Certificate Management - $($HVEnvironment)" + Name = "Certificate Management - $($HVEnvironment.toUpper())" List = $true ColumnWidths = 30, 70 } if ($Report.ShowTableCaptions) { $TableParams['Caption'] = "- $($TableParams.Name)" } - $OutObj | Table @TableParams - + $OutObj | Table @TableParams } - - } } } diff --git a/Src/Private/Get-AbrHRZCloudPod.ps1 b/Src/Private/Get-AbrHRZCloudPod.ps1 index 74b6fcb..d041e84 100644 --- a/Src/Private/Get-AbrHRZCloudPod.ps1 +++ b/Src/Private/Get-AbrHRZCloudPod.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZCloudPod { if ($CloudPodFederation) { if ($InfoLevel.Settings.CloudPodArch.CloudPodArch -ge 1) { section -Style Heading2 "Cloud Pod Architecture" { - Paragraph "The following section details on the cloud pod architecture information for $($HVEnvironment)." + Paragraph "The following section details on the cloud pod architecture information for $($HVEnvironment.toUpper())." BlankLine $OutObj = @() foreach ($CloudPodList in $CloudPodLists) { @@ -81,7 +81,7 @@ function Get-AbrHRZCloudPod { } $TableParams = @{ - Name = "Cloud Pod Architecture - $($HVEnvironment)" + Name = "Cloud Pod Architecture - $($HVEnvironment.toUpper())" List = $true ColumnWidths = 50, 50 } @@ -91,8 +91,6 @@ function Get-AbrHRZCloudPod { } $OutObj | Table @TableParams } - - } } } diff --git a/Src/Private/Get-AbrHRZConnectionServer.ps1 b/Src/Private/Get-AbrHRZConnectionServer.ps1 index 6cbfca3..9bcb996 100644 --- a/Src/Private/Get-AbrHRZConnectionServer.ps1 +++ b/Src/Private/Get-AbrHRZConnectionServer.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZConnectionServer { if ($ConnectionServers) { if ($InfoLevel.Settings.Servers.ConnectionServers.ConnectionServers -ge 1) { section -Style Heading3 "Connection Servers" { - Paragraph "The following section details the configuration of Connection Servers for $($HVEnvironment) server." + Paragraph "The following section details the configuration of Connection Servers for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() foreach ($ConnectionServer in $ConnectionServers) { @@ -60,7 +60,7 @@ function Get-AbrHRZConnectionServer { } $TableParams = @{ - Name = "Connection Servers - $($HVEnvironment)" + Name = "Connection Servers - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 42, 43, 15 } diff --git a/Src/Private/Get-AbrHRZDatastore.ps1 b/Src/Private/Get-AbrHRZDatastore.ps1 index aa23343..1ffd248 100644 --- a/Src/Private/Get-AbrHRZDatastore.ps1 +++ b/Src/Private/Get-AbrHRZDatastore.ps1 @@ -56,7 +56,7 @@ function Get-AbrHRZDatastore { } $TableParams = @{ - Name = "Datastores - $($HVEnvironment)" + Name = "Datastores - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 50, 50 } diff --git a/Src/Private/Get-AbrHRZDesktopPool.ps1 b/Src/Private/Get-AbrHRZDesktopPool.ps1 index 729bb5a..ed24431 100644 --- a/Src/Private/Get-AbrHRZDesktopPool.ps1 +++ b/Src/Private/Get-AbrHRZDesktopPool.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZDesktopPool { if ($Pools) { if ($InfoLevel.Inventory.Desktop -ge 1) { section -Style Heading3 "Desktop Pools" { - Paragraph "The following section details the Desktop Pools configuration for $($HVEnvironment) server." + Paragraph "The following section details the Desktop Pools configuration for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() foreach ($Pool in $Pools) { @@ -58,7 +58,7 @@ function Get-AbrHRZDesktopPool { } $TableParams = @{ - Name = "Desktop Pools - $($HVEnvironment.toUpper()[0])" + Name = "Desktop Pools - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 25, 25, 25, 25 } @@ -71,23 +71,16 @@ function Get-AbrHRZDesktopPool { if ($InfoLevel.Inventory.Desktop -ge 2) { section -Style Heading4 "Desktop Pools Details" { foreach ($Pool in $Pools) { - # Find out Access Group for Desktop Pool - $AccessgroupMatch = $false - $Accessgroups = $hzServices.AccessGroup.AccessGroup_List() - $AccessgroupsJoined = @() - $AccessgroupsJoined += $Accessgroups - $AccessgroupsJoined += $Accessgroups.Children - $AccessGroupName = '' - foreach ($Accessgroup in $AccessgroupsJoined) { - if ($Accessgroup.Id.id -eq $Pool.base.accessgroup.id) { - $AccessGroupName = $Accessgroup.base.name - $AccessgroupMatch = $true - } - if ($AccessgroupMatch) { - break - } + # Find Access Group for Desktop Pool + $AccessgroupsJoined = $hzServices.AccessGroup.AccessGroup_List() + $hzServices.AccessGroup.AccessGroup_List().Children + $AccessGroupMatch = $AccessgroupsJoined | Where-Object { $_.Id.id -eq $Pool.base.accessgroup.id } + + if ($AccessGroupMatch) { + $AccessGroupName = $AccessGroupMatch.base.name + } else { + $AccessGroupName = '' # Set to a default value if no match is found } - + <# # Find out Global Entitlement Group for Applications $InstantCloneDomainAdminGroupMatch = $false foreach ($InstantCloneDomainAdminGroup in $InstantCloneDomainAdminGroups) { @@ -122,7 +115,7 @@ function Get-AbrHRZDesktopPool { break } } - + #> # Desktop OS Data $DesktopAssignmentViewResultsDataMatch = $false foreach ($DesktopAssignmentViewResult in $DesktopAssignmentViewResultsData.DesktopAssignmentData) { @@ -231,11 +224,13 @@ function Get-AbrHRZDesktopPool { $VMResourcePool = $VMResourcePoolPath -replace '^(.*[\\\/])' } + <# # VM Persistent Disk DataStores if ($Pool.automateddesktopdata.VirtualCenterNamesData.PersistentDiskDatastorePaths){ $VMPersistentDiskDatastorePath = $Pool.automateddesktopdata.VirtualCenterNamesData.PersistentDiskDatastorePaths $VMPersistentDiskDatastore = $VMPersistentDiskDatastorePath -replace '^(.*[\\\/])' } + #> # VM Network Card if ($Pool.automateddesktopdata.VirtualCenterProvisioningSettings.VirtualCenterNetworkingSettings.nics.nic.id) { @@ -308,7 +303,7 @@ function Get-AbrHRZDesktopPool { $Datastorename = $Datastore -replace '^(.*[\\\/])' $DatastoreFinal += $DatastoreName -join "`r`n" | Out-String } - $DatastorePathsresult = $DatastorePaths -join ', ' + #$DatastorePathsresult = $DatastorePaths -join ', ' try { section -ExcludeFromTOC -Style NOTOCHeading5 "General Summary - $($Pool.Base.name)" { $OutObj = @() @@ -673,12 +668,7 @@ function Get-AbrHRZDesktopPool { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - - - } - - } } } diff --git a/Src/Private/Get-AbrHRZDomains.ps1 b/Src/Private/Get-AbrHRZDomains.ps1 index 7c86cb4..53dfe8c 100644 --- a/Src/Private/Get-AbrHRZDomains.ps1 +++ b/Src/Private/Get-AbrHRZDomains.ps1 @@ -33,7 +33,7 @@ function Get-AbrHRZDomains { if ($InstantCloneDomainAdmins) { if ($InfoLevel.Settings.InstantClone.InstantCloneDomainAccounts -ge 1) { section -Style Heading3 "Domain Accounts" { - Paragraph "The following section details the Domain Accounts configuration for $($HVEnvironment) server." + Paragraph "The following section details the Domain Accounts configuration for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() foreach ($InstantCloneDomainAdmin in $InstantCloneDomainAdmins) { @@ -52,7 +52,7 @@ function Get-AbrHRZDomains { } $TableParams = @{ - Name = "Domain Accounts - $($HVEnvironment)" + Name = "Domain Accounts - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 50, 50 } @@ -67,7 +67,7 @@ function Get-AbrHRZDomains { if ($Domains) { if ($InfoLevel.Settings.Servers.vCenterServers.ADDomains -ge 1) { section -Style Heading3 "Connection Server" { - Paragraph "The following section shows connection servers domains for $($HVEnvironment) envirnoment." + Paragraph "The following section shows connection servers domains for $($HVEnvironment.toUpper()) environment." BlankLine $OutObj = @() foreach ($Domain in $Domains) { @@ -93,7 +93,7 @@ function Get-AbrHRZDomains { } $TableParams = @{ - Name = "Connection Server- $($HVEnvironment)" + Name = "Connection Server- $($HVEnvironment.toUpper())" List = $false ColumnWidths = 25, 25, 25, 25 } diff --git a/Src/Private/Get-AbrHRZESXi.ps1 b/Src/Private/Get-AbrHRZESXi.ps1 index 5aef413..9d688ee 100644 --- a/Src/Private/Get-AbrHRZESXi.ps1 +++ b/Src/Private/Get-AbrHRZESXi.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZESXi { if ($vCenterHealth) { if ($InfoLevel.Settings.Servers.vCenterServers.ESXiHosts -ge 1) { section -Style Heading5 "ESXi Hosts" { - Paragraph "The following section details the hardware information of ESXi Hosts for $($HVEnvironment) server." + Paragraph "The following section details the hardware information of ESXi Hosts for $($HVEnvironment.toUpper()) server." BlankLine $ESXHosts = $vCenterHealth.hostdata foreach ($ESXCLUSTER in ($ESXHosts.ClusterName | Select-Object -Unique)) { diff --git a/Src/Private/Get-AbrHRZEventConf.ps1 b/Src/Private/Get-AbrHRZEventConf.ps1 index bcef66b..e5c3a28 100644 --- a/Src/Private/Get-AbrHRZEventConf.ps1 +++ b/Src/Private/Get-AbrHRZEventConf.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZEventConf { if ($EventDataBases -or $Syslog) { if ($InfoLevel.Settings.EventConfiguration.PSObject.Properties.Value -ne 0) { section -Style Heading2 "Event Configuration" { - Paragraph "The following section details on the events configuration information for $($HVEnvironment)." + Paragraph "The following section details on the events configuration information for $($HVEnvironment.toUpper())." BlankLine if ($InfoLevel.Settings.EventConfiguration.EventDatabase -ge 1) { try { diff --git a/Src/Private/Get-AbrHRZFarm.ps1 b/Src/Private/Get-AbrHRZFarm.ps1 index 7c5cc7c..2b45b80 100644 --- a/Src/Private/Get-AbrHRZFarm.ps1 +++ b/Src/Private/Get-AbrHRZFarm.ps1 @@ -238,9 +238,6 @@ function Get-AbrHRZFarm { $null {'Golden Image network selected'} default {$Farm.AutomatedFarmData.VirtualCenterNamesData.NetworkLabelNames} } - #'Guest Customization' = $Farm.AutomatedFarmData.CustomizationSettings.CustomizationType - #'Guest Customization Domain and Account' = ($InstantCloneDomainAdmins | Where-Object {$_.Id.id -eq $Farm.AutomatedFarmData.CustomizationSettings.InstantCloneEngineDomainAdministrator.id}).Base.UserName - #'Allow Reuse of Existing Computer Accounts' = $Farm.AutomatedFarmData.CustomizationSettings.ReusePreExistingAccounts } $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) diff --git a/Src/Private/Get-AbrHRZFederationAccessGroups.ps1 b/Src/Private/Get-AbrHRZFederationAccessGroups.ps1 index 1647915..e3d706f 100644 --- a/Src/Private/Get-AbrHRZFederationAccessGroups.ps1 +++ b/Src/Private/Get-AbrHRZFederationAccessGroups.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZFederationAccessGroups { if ($Permissions) { if ($InfoLevel.Settings.Administrators.FederationAccessGroup -ge 1) { section -Style Heading3 "Federation Access Groups" { - Paragraph "The following section details the Federation Access Group information for $($HVEnvironment) server." + Paragraph "The following section details the Federation Access Group information for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() @@ -40,69 +40,64 @@ function Get-AbrHRZFederationAccessGroups { $FilteredPermissions = $Permissions | Where-Object{$null -ne $_.base.GlobalAccessGroup} foreach ($Permission in $FilteredPermissions) { - #If(![string]::IsNullOrEmpty($($Permission.base.GlobalAccessGroup))){ - - $AdministratorIDNameResults = '' - # Find Administrator ID Name - $AdministratorIDName = '' - $PermissionGroups = $Permission.base.UserOrGroup.id - foreach ($PermissionGroup in $PermissionGroups) { - foreach ($Administrator in $Administrators) { - if ($Administrator.Id.id -eq $PermissionGroup) { - $AdministratorIDName = $Administrator.base.name - break - } - } - if ($PermissionGroups.count -gt 1){ - $AdministratorIDNameResults += "$AdministratorIDName, " - $AdministratorIDName = $AdministratorIDNameResults.TrimEnd(', ') - } - } - Switch ($AdministratorIDName) - { - '' {$AdministratorIDName = 'N/A'} - ' ' {$AdministratorIDName = 'N/A'} - } - - # Mach Permission Role ID with Role ID - # Find Role ID Name - $RoleIDName = '' - $PermissionGroups = $Permission.base.Role.id - foreach ($PermissionGroup in $PermissionGroups) { - foreach ($Role in $Roles) { - if ($Role.Id.id -eq $PermissionGroup) { - $RoleIDName = $Role.base.name - break - } - - } - if ($PermissionGroups.count -gt 1) { - $RoleIDNameResults += "$RoleIDName, " - $RoleIDName = $RoleIDNameResults.TrimEnd(', ') - $RoleIDName = [string](($RoleIDName.split(', ') | Select-Object -Unique) -join ', ') + $AdministratorIDNameResults = '' + # Find Administrator ID Name + $AdministratorIDName = '' + $PermissionGroups = $Permission.base.UserOrGroup.id + foreach ($PermissionGroup in $PermissionGroups) { + foreach ($Administrator in $Administrators) { + if ($Administrator.Id.id -eq $PermissionGroup) { + $AdministratorIDName = $Administrator.base.name + break } } + if ($PermissionGroups.count -gt 1){ + $AdministratorIDNameResults += "$AdministratorIDName, " + $AdministratorIDName = $AdministratorIDNameResults.TrimEnd(', ') + } + } + Switch ($AdministratorIDName) + { + '' {$AdministratorIDName = 'N/A'} + ' ' {$AdministratorIDName = 'N/A'} + } - # Find AccessGroup ID Name - $GlobalAccessGroupIDName = '' - $PermissionGroups = $Permission.base.GlobalAccessGroup.id - foreach ($PermissionGroup in $PermissionGroups) { - foreach ($GlobalAccessGroup in $GlobalAccessGroups) { - if ($GlobalAccessGroup.Id.id -eq $PermissionGroup) { - $GlobalAccessGroupIDName = "/$($GlobalAccessGroup.base.name)" - } - elseif ($GlobalAccessGroup.Children.id.id -eq $PermissionGroup) { - $GlobalAccessGroupIDName = "/Root/$(($AccessGroup.Children | Where-Object {$_.id.id -eq $PermissionGroup}).Base.Name)" - } - $GlobalAccessGroupIDName = $GlobalAccessGroupIDName.TrimStart('/') + # Mach Permission Role ID with Role ID + # Find Role ID Name + $RoleIDName = '' + $PermissionGroups = $Permission.base.Role.id + foreach ($PermissionGroup in $PermissionGroups) { + foreach ($Role in $Roles) { + if ($Role.Id.id -eq $PermissionGroup) { + $RoleIDName = $Role.base.name + break } - } + } + if ($PermissionGroups.count -gt 1) { + $RoleIDNameResults += "$RoleIDName, " + $RoleIDName = $RoleIDNameResults.TrimEnd(', ') + $RoleIDName = [string](($RoleIDName.split(', ') | Select-Object -Unique) -join ', ') + } + } + # Find AccessGroup ID Name + $GlobalAccessGroupIDName = '' + $PermissionGroups = $Permission.base.GlobalAccessGroup.id + foreach ($PermissionGroup in $PermissionGroups) { + foreach ($GlobalAccessGroup in $GlobalAccessGroups) { + if ($GlobalAccessGroup.Id.id -eq $PermissionGroup) { + $GlobalAccessGroupIDName = "/$($GlobalAccessGroup.base.name)" + } + elseif ($GlobalAccessGroup.Children.id.id -eq $PermissionGroup) { + $GlobalAccessGroupIDName = "/Root/$(($AccessGroup.Children | Where-Object {$_.id.id -eq $PermissionGroup}).Base.Name)" + } + $GlobalAccessGroupIDName = $GlobalAccessGroupIDName.TrimStart('/') - #} + } + } $inObj = [ordered] @{ 'User or Group Name' = $AdministratorIDName 'Role' = $RoleIDName @@ -114,7 +109,7 @@ function Get-AbrHRZFederationAccessGroups { $TableParams = @{ - Name = "Role Permissions - $($HVEnvironment)" + Name = "Role Permissions - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 33, 33, 34 } diff --git a/Src/Private/Get-AbrHRZGatewayCert.ps1 b/Src/Private/Get-AbrHRZGatewayCert.ps1 index 77216b6..1786577 100644 --- a/Src/Private/Get-AbrHRZGatewayCert.ps1 +++ b/Src/Private/Get-AbrHRZGatewayCert.ps1 @@ -33,10 +33,10 @@ function Get-AbrHRZGatewayCert { if ($InfoLevel.Settings.CloudPodArch.CloudPodArch -ge 1) { section -Style Heading3 "Gateway Certificate" { - Paragraph "The following section details on the gateway certificate information for $($HVEnvironment)." + Paragraph "The following section details on the gateway certificate information for $($HVEnvironment.toUpper())." BlankLine - Write-PscriboMessage "Working on Gateway Certificate Information for $($HVEnvironment)." + Write-PscriboMessage "Working on Gateway Certificate Information for $($HVEnvironment.toUpper())." $OutObj = @() foreach ($GatewayCert in $GatewayCerts){ @@ -50,18 +50,15 @@ function Get-AbrHRZGatewayCert { $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) } $TableParams = @{ - Name = "Gateway Certificate - $($HVEnvironment)" + Name = "Gateway Certificate - $($HVEnvironment.toUpper())" List = $true ColumnWidths = 30, 70 } if ($Report.ShowTableCaptions) { $TableParams['Caption'] = "- $($TableParams.Name)" } - $OutObj | Table @TableParams - + $OutObj | Table @TableParams } - - } } } diff --git a/Src/Private/Get-AbrHRZGlobalEntitlement.ps1 b/Src/Private/Get-AbrHRZGlobalEntitlement.ps1 index ae72d5b..ea3af3f 100644 --- a/Src/Private/Get-AbrHRZGlobalEntitlement.ps1 +++ b/Src/Private/Get-AbrHRZGlobalEntitlement.ps1 @@ -33,9 +33,9 @@ function Get-AbrHRZGlobalEntitlement { if ($InfoLevel.Inventory.GlobalEntitlements -ge 1) { section -Style Heading3 "Global Entitlements" { - Paragraph "The following section details the Global Entitlements configuration for $($HVEnvironment) server." + Paragraph "The following section details the Global Entitlements configuration for $($HVEnvironment.toUpper()) server." BlankLine - + $GlobalEntitlements | ForEach-Object{ $_ | Add-Member -MemberType NoteProperty -Name "GE_Type" -Value "Desktop"} $GlobalApplicationEntitlementGroups | ForEach-Object{ $_ | Add-Member -MemberType NoteProperty -Name "GE_Type" -Value "Application"} $GlobalEntitlementJoined = @() @@ -62,7 +62,7 @@ function Get-AbrHRZGlobalEntitlement { } $TableParams = @{ - Name = "Global Entitlements - $($HVEnvironment)" + Name = "Global Entitlements - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 34, 33, 33 } @@ -75,12 +75,12 @@ function Get-AbrHRZGlobalEntitlement { section -Style Heading4 "Global Entitlement Summary Details" { foreach ($GlobalEntitlement in $GlobalEntitlementJoined) { - + Write-PscriboMessage "Discovered Global Entitlements Detailed Information for $($GlobalEntitlement.base.DisplayName)." try { if ($InfoLevel.Inventory.GlobalEntitlements -ge 2) { section -Style Heading5 "Summary - $($GlobalEntitlement.base.DisplayName)" { - + $SupportedDisplayProtocolsresult = '' $SupportedDisplayProtocols = $GlobalEntitlement.base | ForEach-Object { $_.SupportedDisplayProtocols} $SupportedDisplayProtocolsresult = $SupportedDisplayProtocols -join ', ' @@ -94,7 +94,6 @@ function Get-AbrHRZGlobalEntitlement { $GlobalAccessGroupID = $($hzServices.GlobalAccessGroup.GlobalAccessGroup_Get($GlobalEntitlement.base.GlobalAccessGroupId).base.Name) - $OutObj = @() Write-PscriboMessage "Discovered Global Entitlement Data for $HVEnvironment" $inObj = [ordered] @{ @@ -122,18 +121,18 @@ function Get-AbrHRZGlobalEntitlement { 'Multisession Mode' = $GlobalEntitlement.base.MultiSessionMode 'Backup GAE' = $GlobalEntitlement.base.BackupGAE 'Display Assigned Machine Name' = $GlobalEntitlement.base.DisplayAssignedMachineName - 'Display Machine Alias' = $GlobalEntitlement.base.DisplayMachineAlias + 'Display Machine Alias' = $GlobalEntitlement.base.DisplayMachineAlias 'Global Access Group ID' = $GlobalAccessGroupID } - + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) if ($Type -eq 'Desktop') { $inObj.Remove('Enable Pre-Launch') $inObj.Remove('Multi Session Mode') } - - + + if ($Type -eq 'Application') { $inObj.Remove('Allow User to Reset Machines') $inObj.Remove('Allow Multiple Sessions Per User') @@ -141,46 +140,42 @@ function Get-AbrHRZGlobalEntitlement { $inObj.Remove('Display Assigned Machine Name') $inObj.Remove('Display Machine Alias') } - + $TableParams = @{ Name = "Detailed Information - $($GlobalEntitlement.base.DisplayName)" List = $true ColumnWidths = 50, 50 } - + if ($Report.ShowTableCaptions) { $TableParams['Caption'] = "- $($TableParams.Name)" } $OutObj | Table @TableParams - } try { $OutObj = @() section -Style Heading6 "Local Pools - $($GlobalEntitlement.base.DisplayName)" { try { - Write-PscriboMessage "Discovered Local Pools Information for $($HVEnvironment)." - + Write-PscriboMessage "Discovered Local Pools Information for $($HVEnvironment.toUpper())." + $GEPodMembers = $GlobalEntitlement.data.MemberPods.id $PodSiteID = ('') - Foreach($GEPodMember in $GEPodMembers){ Foreach($CPSite in $CloudPodLists){ If($CPSite.id.id -eq $GEPodMember){ - Write-Host "They Match" -ForegroundColor Green $PodSiteID += $CPSite.DisplayName } } } - + $PodMembers = '' $PodMembers = ForEach-Object {$PodSiteID} $PodMemberList = $PodMembers -join ', ' - - $inObj = [ordered] @{ + $inObj = [ordered] @{ 'Local Desktop Count' = $GlobalEntitlement.data.LocalDesktopCount 'Local Application Count' = $GlobalEntitlement.data.LocalApplicationCount 'Remote Desktop Count' = $GlobalEntitlement.data.RemoteDesktopCount @@ -188,9 +183,9 @@ function Get-AbrHRZGlobalEntitlement { 'User Count' = $GlobalEntitlement.data.UserCount 'User or Group Count' = $GlobalEntitlement.data.UserGroupCount 'User or Group Site Override Count' = $GlobalEntitlement.data.UserGroupSiteOverrideCount - 'Member Pods' = $PodMemberList #$GlobalEntitlement.data.MemberPods - } - $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + 'Member Pods' = $PodMemberList + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) if ($Type -eq 'Application'){ $inObj.Remove('Local Desktop Count') @@ -202,14 +197,14 @@ function Get-AbrHRZGlobalEntitlement { $inObj.Remove('Remote Application Count') } - $TableParams = @{ - Name = "Local Pools - $($HVEnvironment)" - List = $true - ColumnWidths = 30, 70 - } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" - } + $TableParams = @{ + Name = "Local Pools - $($HVEnvironment.toUpper())" + List = $true + ColumnWidths = 30, 70 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } $OutObj | Table @TableParams } catch { @@ -223,20 +218,20 @@ function Get-AbrHRZGlobalEntitlement { # Users and Groups try { - + section -Style Heading6 "Users and Groups - $($GlobalEntitlement.base.DisplayName)" { $OutObj = @() try { Write-PscriboMessage "Discovered Users and Groups - $($GlobalEntitlement.base.DisplayName)." - + foreach ($EntitledUserOrGroupGlobal in $EntitledUserOrGroupGlobals) { Switch ($EntitledUserOrGroupGlobal.base.Group) { 'True' { $GlobalEntitledGroup = 'Group' } 'False' { $GlobalEntitledGroup = 'User' } } $EntitledDefined = @() - - + + foreach ($GE in $($EntitledUserOrGroupGlobal.GlobalData.GlobalEntitlements.id -split [Environment]::NewLine)) { if ($GlobalEntitlement.Id.id -eq $GE) { $EntitledDefined += $EntitledUserOrGroupGlobal @@ -247,57 +242,45 @@ function Get-AbrHRZGlobalEntitlement { $EntitledDefined += $EntitledUserOrGroupGlobal } } - + foreach ($ED in $EntitledDefined){ - $inObj = [ordered] @{ + $inObj = [ordered] @{ 'Name' = $ED.Base.Name 'User or Group' = $GlobalEntitledGroup 'Domain' = $ED.Base.Domain - } - $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + } + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) } - - } # End If Group or User - - + } # End If Group or User } catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - $TableParams = @{ - Name = "Users and Groups - $($GlobalEntitlement.base.DisplayName)" - List = $false - ColumnWidths = 40, 30, 30 - } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" - } + $TableParams = @{ + Name = "Users and Groups - $($GlobalEntitlement.base.DisplayName)" + List = $false + ColumnWidths = 40, 30, 30 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } $OutObj | Table @TableParams } - - } catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - - - - } } catch { Write-PscriboMessage -IsWarning $_.Exception.Message - } - + } } } } - } - } } catch { diff --git a/Src/Private/Get-AbrHRZGlobalPolicies.ps1 b/Src/Private/Get-AbrHRZGlobalPolicies.ps1 index e0359c0..8a0ad6e 100644 --- a/Src/Private/Get-AbrHRZGlobalPolicies.ps1 +++ b/Src/Private/Get-AbrHRZGlobalPolicies.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZGlobalPolicies { if ($GlobalPolicies) { if ($InfoLevel.Settings.GlobalPolicies.GlobalPolicies -ge 1) { section -Style Heading2 "Global Policies" { - Paragraph "The following section details on the Global Policies information for $($HVEnvironment)." + Paragraph "The following section details on the Global Policies information for $($HVEnvironment.toUpper())." BlankLine $OutObj = @() @@ -49,7 +49,7 @@ function Get-AbrHRZGlobalPolicies { $TableParams = @{ - Name = "Global Policies - $($HVEnvironment)" + Name = "Global Policies - $($HVEnvironment.toUpper())" List = $true ColumnWidths = 50, 50 } @@ -59,8 +59,6 @@ function Get-AbrHRZGlobalPolicies { } $OutObj | Table @TableParams } - - } } } diff --git a/Src/Private/Get-AbrHRZGlobalSetting.ps1 b/Src/Private/Get-AbrHRZGlobalSetting.ps1 index 1d833c0..13ccf63 100644 --- a/Src/Private/Get-AbrHRZGlobalSetting.ps1 +++ b/Src/Private/Get-AbrHRZGlobalSetting.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZGlobalSetting { if ($GlobalSettings) { if ($InfoLevel.Settings.GlobalSettings.GlobalSettings -ge 1) { section -Style Heading2 "Global Settings" { - Paragraph "The following section details the Global Settings configuration for $($HVEnvironment) server." + Paragraph "The following section details the Global Settings configuration for $($HVEnvironment.toUpper()) server." BlankLine section -Style Heading3 "General Settings" { $OutObj = @() @@ -78,7 +78,7 @@ function Get-AbrHRZGlobalSetting { $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) $TableParams = @{ - Name = "Global Settings - $($HVEnvironment)" + Name = "Global Settings - $($HVEnvironment.toUpper())" List = $true ColumnWidths = 50, 50 } @@ -94,7 +94,6 @@ function Get-AbrHRZGlobalSetting { section -Style Heading3 "Security Settings" { $OutObj = @() Write-PscriboMessage "Discovered Security Settings Information." - foreach ($CLientData in $GlobalSettings.ClientRestrictionConfiguration.ClientData) { $inObj = [ordered] @{ 'Reauthenticate Secure Tunnel After Interruption' = $GlobalSettings.SecurityData.ReauthSecureTunnelAfterInterruption 'Disallow Enhanced Security Mode' = $GlobalSettings.SecurityData.DisallowEnhancedSecurityMode @@ -103,11 +102,10 @@ function Get-AbrHRZGlobalSetting { 'Message Security Status' = $GlobalSettings.SecurityData.MessageSecurityStatus 'Enable IP Sec for Security Server Pairing' = $GlobalSettings.SecurityData.EnableIPSecForSecurityServerPairing } - $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) - } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) $TableParams = @{ - Name = "Security Settings - $($HVEnvironment)" + Name = "Security Settings - $($HVEnvironment.toUpper())" List = $true ColumnWidths = 50, 50 } @@ -140,7 +138,7 @@ function Get-AbrHRZGlobalSetting { } $TableParams = @{ - Name = "Client Restriction Settings - $($HVEnvironment)" + Name = "Client Restriction Settings - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 25, 25, 25, 25 } diff --git a/Src/Private/Get-AbrHRZHomeSite.ps1 b/Src/Private/Get-AbrHRZHomeSite.ps1 index 189a97c..5885352 100644 --- a/Src/Private/Get-AbrHRZHomeSite.ps1 +++ b/Src/Private/Get-AbrHRZHomeSite.ps1 @@ -90,7 +90,7 @@ function Get-AbrHRZHomeSite { } $TableParams = @{ - Name = "Home Site General - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Home Site General - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 17, 10, 10, 18, 15, 15, 15 } diff --git a/Src/Private/Get-AbrHRZInfrastructure.ps1 b/Src/Private/Get-AbrHRZInfrastructure.ps1 index 2654228..7af6427 100644 --- a/Src/Private/Get-AbrHRZInfrastructure.ps1 +++ b/Src/Private/Get-AbrHRZInfrastructure.ps1 @@ -28,7 +28,7 @@ function Get-AbrHRZInfrastructure { process { try { - section -Style NOTOCHeading2 "Executive Summary for $($HVEnvironment.split(".").toUpper()[0])" { + section -Style NOTOCHeading2 "Executive Summary for $($HVEnvironment.toUpper())" { $OutObj = @() Write-PscriboMessage "Discovered Infrastructure Summary Information." $inObj = [ordered] @{ @@ -51,7 +51,7 @@ function Get-AbrHRZInfrastructure { $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) $TableParams = @{ - Name = "Executive Summary - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Executive Summary - $($HVEnvironment.toUpper())" List = $true ColumnWidths = 50, 50 } diff --git a/Src/Private/Get-AbrHRZLicense.ps1 b/Src/Private/Get-AbrHRZLicense.ps1 index c5494a4..dcb34aa 100644 --- a/Src/Private/Get-AbrHRZLicense.ps1 +++ b/Src/Private/Get-AbrHRZLicense.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZLicense { if ($ProductLicenseingInfo) { if ($InfoLevel.Settings.ProductLicensing.ProductLicensingandUsage -ge 1) { section -Style Heading2 "Product Licensing and Usage" { - Paragraph "The following section details the product license and usage information for $($HVEnvironment) server." + Paragraph "The following section details the product license and usage information for $($HVEnvironment.toUpper()) server." BlankLine section -Style Heading3 "Licensing" { @@ -74,9 +74,8 @@ function Get-AbrHRZLicense { } } - $TableParams = @{ - Name = "Licensing - $($HVEnvironment)" + Name = "Licensing - $($HVEnvironment.toUpper())" List = $true ColumnWidths = 50, 50 } @@ -110,7 +109,7 @@ function Get-AbrHRZLicense { } $TableParams = @{ - Name = "Usage - $($HVEnvironment)" + Name = "Usage - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 60, 20, 20 } @@ -148,7 +147,7 @@ function Get-AbrHRZLicense { } $TableParams = @{ - Name = "Customer Experience Program - $($HVEnvironment)" + Name = "Customer Experience Program - $($HVEnvironment.toUpper())" List = $true ColumnWidths = 40, 60 } @@ -164,8 +163,6 @@ function Get-AbrHRZLicense { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - - } } } diff --git a/Src/Private/Get-AbrHRZLocalEntitlement.ps1 b/Src/Private/Get-AbrHRZLocalEntitlement.ps1 index 5df02ee..5dec1aa 100644 --- a/Src/Private/Get-AbrHRZLocalEntitlement.ps1 +++ b/Src/Private/Get-AbrHRZLocalEntitlement.ps1 @@ -61,7 +61,7 @@ function Get-AbrHRZLocalEntitlement { } $TableParams = @{ - Name = "Local Entitlements - $($HVEnvironment)" + Name = "Local Entitlements - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 55, 15, 15, 15 } @@ -141,7 +141,7 @@ function Get-AbrHRZLocalEntitlement { 'True' {$EntitledUserOrGroupLocalMachinegroup = 'Group' } 'False' {$EntitledUserOrGroupLocalMachinegroup = 'User' } } - Section -ExcludeFromTOC -Style NOTOCHeading5 "$($EntitledUserOrGroupLocalMachine.base.Name)" { + Section -ExcludeFromTOC -Style NOTOCHeading5 "Local Entitlement Details - $($EntitledUserOrGroupLocalMachine.base.Name)" { $OutObj = @() try { Write-PscriboMessage "Local Entitlements Details for $($EntitledUserOrGroupLocalMachine.base.Name)." diff --git a/Src/Private/Get-AbrHRZMachines.ps1 b/Src/Private/Get-AbrHRZMachines.ps1 index d5f568f..3c87929 100644 --- a/Src/Private/Get-AbrHRZMachines.ps1 +++ b/Src/Private/Get-AbrHRZMachines.ps1 @@ -32,10 +32,10 @@ function Get-AbrHRZMachines { if ($Machines) { if ($InfoLevel.Inventory.Machines -ge 1) { section -Style Heading3 "Machines" { - Paragraph "The following section details on all of the machine information for $($HVEnvironment)." + Paragraph "The following section details on all of the machine information for $($HVEnvironment.toUpper())." BlankLine - Write-PscriboMessage "Working on Machines Information for $($HVEnvironment)." + Write-PscriboMessage "Working on Machines Information for $($HVEnvironment.toUpper())." section -Style Heading4 "vCenter Machine Summary" { $OutObj = @() @@ -53,7 +53,7 @@ function Get-AbrHRZMachines { } $TableParams = @{ - Name = "vCenter Machine Summary - $($HVEnvironment)" + Name = "vCenter Machine Summary - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 15, 10, 20, 25, 15, 15 } @@ -66,7 +66,7 @@ function Get-AbrHRZMachines { if ($InfoLevel.Inventory.Machines -ge 1) { $OutObj = @() - #section -Style Heading4 "vCenter Machine Details" { + section -Style Heading4 "vCenter Machine Details" { foreach ($Machine in $Machines) { $inObj = [ordered] @{ 'Machine Name' = $machine.base.Name @@ -92,7 +92,7 @@ function Get-AbrHRZMachines { } $TableParams = @{ - Name = "vCenter Machine Details - $($HVEnvironment)" + Name = "vCenter Machine Details - $($HVEnvironment.toUpper())" List = $true ColumnWidths = 60, 40 } @@ -100,8 +100,7 @@ function Get-AbrHRZMachines { $TableParams['Caption'] = "- $($TableParams.Name)" } $OutObj | Table @TableParams - #} - + } } #> diff --git a/Src/Private/Get-AbrHRZRegisteredMachine.ps1 b/Src/Private/Get-AbrHRZRegisteredMachine.ps1 index 0fa3cca..eafa8e9 100644 --- a/Src/Private/Get-AbrHRZRegisteredMachine.ps1 +++ b/Src/Private/Get-AbrHRZRegisteredMachine.ps1 @@ -32,10 +32,10 @@ function Get-AbrHRZRegisteredMachine { if ($RDSServers) { if ($InfoLevel.Settings.RegisteredMachines.RDSHosts -ge 1) { section -Style Heading2 "Registered Machines" { - Paragraph "The following section provides information of Registered Machines for $($HVEnvironment) server." + Paragraph "The following section provides information of Registered Machines for $($HVEnvironment.toUpper()) server." BlankLine section -Style Heading3 'RDS Hosts' { - Paragraph "The following section details the RDS Hosts configuration for $($HVEnvironment) server." + Paragraph "The following section details the RDS Hosts configuration for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() foreach ($RDSServer in $RDSServers) { @@ -54,7 +54,7 @@ function Get-AbrHRZRegisteredMachine { } $TableParams = @{ - Name = "RDS Hosts - $($HVEnvironment)" + Name = "RDS Hosts - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 34, 33, 33 } @@ -113,7 +113,7 @@ function Get-AbrHRZRegisteredMachine { } section -Style Heading3 'Others' { - Paragraph "The following section details the RDS Hosts configuration for $($HVEnvironment) server." + Paragraph "The following section details the RDS Hosts configuration for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() foreach ($RegisteredPhysicalMachine in $RegisteredPhysicalMachines) { @@ -133,7 +133,7 @@ function Get-AbrHRZRegisteredMachine { } $TableParams = @{ - Name = "Other Registered Machines - $($HVEnvironment)" + Name = "Other Registered Machines - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 20, 20, 30, 30 } diff --git a/Src/Private/Get-AbrHRZRolePermission.ps1 b/Src/Private/Get-AbrHRZRolePermission.ps1 index 30bc5a4..fc0328c 100644 --- a/Src/Private/Get-AbrHRZRolePermission.ps1 +++ b/Src/Private/Get-AbrHRZRolePermission.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZRolePermission { if ($Permissions) { if ($InfoLevel.Settings.Administrators.RolePermissions -ge 1) { section -Style Heading3 "Role Permissions" { - Paragraph "The following section details the Role Permissions information for $($HVEnvironment) server." + Paragraph "The following section details the Role Permissions information for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() @@ -114,7 +114,7 @@ function Get-AbrHRZRolePermission { } $TableParams = @{ - Name = "Role Permissions - $($HVEnvironment)" + Name = "Role Permissions - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 33, 33, 34 } diff --git a/Src/Private/Get-AbrHRZRolePrivilege.ps1 b/Src/Private/Get-AbrHRZRolePrivilege.ps1 index 4daa0ba..e9c1cba 100644 --- a/Src/Private/Get-AbrHRZRolePrivilege.ps1 +++ b/Src/Private/Get-AbrHRZRolePrivilege.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZRolePrivilege { if ($Roles) { if ($InfoLevel.Settings.Administrators.RolePrivileges -ge 1) { section -Style Heading3 "Role Privileges" { - Paragraph "The following section details the Role Privileges information for $($HVEnvironment) server." + Paragraph "The following section details the Role Privileges information for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() foreach ($Role in $Roles) { @@ -46,7 +46,7 @@ function Get-AbrHRZRolePrivilege { } $TableParams = @{ - Name = "Role Privileges - $($HVEnvironment)" + Name = "Role Privileges - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 50, 50 } @@ -60,11 +60,11 @@ function Get-AbrHRZRolePrivilege { if ($InfoLevel.Settings.Administrators.RolePrivileges -ge 2) { section -Style Heading4 "Role Privileges Details" { - Paragraph "The following section details the Role Privilege details for information for $($HVEnvironment) server." + Paragraph "The following section details the Role Privilege details for information for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() foreach ($Role in $Roles) { - Write-PscriboMessage "Discovered Role Provilege Detailed Information for $($HVEnvironment) server." + Write-PscriboMessage "Discovered Role Provilege Detailed Information for $($HVEnvironment.toUpper()) server." $inObj = [ordered] @{ 'Name' = $Role.base.Name 'Description' = [string]::join("`n", $($Role.base.Privileges)) diff --git a/Src/Private/Get-AbrHRZSites.ps1 b/Src/Private/Get-AbrHRZSites.ps1 index f2287e5..657f66e 100644 --- a/Src/Private/Get-AbrHRZSites.ps1 +++ b/Src/Private/Get-AbrHRZSites.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZSites { if ($CloudPodSites) { if ($InfoLevel.Settings.Sites.Sites -ge 1) { section -Style Heading2 "Site" { - Paragraph "The following section details on the Cloud Pod Site information for $($HVEnvironment)." + Paragraph "The following section details on the Cloud Pod Site information for $($HVEnvironment.toUpper())." BlankLine $OutObj = @() foreach($CloudPodSite in $CloudPodSites) { @@ -57,7 +57,7 @@ function Get-AbrHRZSites { } $TableParams = @{ - Name = "Site - $($HVEnvironment)" + Name = "Site - $($HVEnvironment.toUpper())" List = $true ColumnWidths = 50, 50 } diff --git a/Src/Private/Get-AbrHRZUAG.ps1 b/Src/Private/Get-AbrHRZUAG.ps1 index a141607..4015aad 100644 --- a/Src/Private/Get-AbrHRZUAG.ps1 +++ b/Src/Private/Get-AbrHRZUAG.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZUAG { if ($GatewayServers) { if ($InfoLevel.Settings.Servers.UAG.UAGServers -ge 1) { section -Style Heading3 "Gateway Servers" { - Paragraph "The following section details the Gateway Servers information for $($HVEnvironment)." + Paragraph "The following section details the Gateway Servers information for $($HVEnvironment.toUpper())." BlankLine $OutObj = @() foreach ($GatewayServer in $GatewayServers.GeneralData) { @@ -58,7 +58,7 @@ function Get-AbrHRZUAG { } $TableParams = @{ - Name = "Gateway Servers - $($HVEnvironment)" + Name = "Gateway Servers - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 35, 20, 15, 15, 15 } diff --git a/Src/Private/Get-AbrHRZUnauthenticatedACL.ps1 b/Src/Private/Get-AbrHRZUnauthenticatedACL.ps1 index ebe1967..c6a9bd1 100644 --- a/Src/Private/Get-AbrHRZUnauthenticatedACL.ps1 +++ b/Src/Private/Get-AbrHRZUnauthenticatedACL.ps1 @@ -75,7 +75,7 @@ function Get-AbrHRZUnauthenticatedACL { } $TableParams = @{ - Name = "Unauthenticated Access - $($HVEnvironment.split(".").toUpper()[0])" + Name = "Unauthenticated Access - $($HVEnvironment.toUpper())" List = $false ColumnWidths = 20, 20, 20, 20, 20 } diff --git a/Src/Private/Get-AbrHRZVcenter.ps1 b/Src/Private/Get-AbrHRZVcenter.ps1 index 4ade067..9884591 100644 --- a/Src/Private/Get-AbrHRZVcenter.ps1 +++ b/Src/Private/Get-AbrHRZVcenter.ps1 @@ -32,7 +32,7 @@ function Get-AbrHRZVcenter { if ($vCenterServers) { if ($InfoLevel.Settings.Servers.vCenterServers.vCenter -ge 1) { section -Style Heading3 "vCenter Servers" { - Paragraph "The following section details the vCenter Servers configuration for $($HVEnvironment) server." + Paragraph "The following section details the vCenter Servers configuration for $($HVEnvironment.toUpper()) server." BlankLine $vCenterHealthData = $vCenterHealth.data $OutObj = @() diff --git a/Src/Public/Invoke-ASBuiltReport.VMware.Horizon.ps1 b/Src/Public/Invoke-ASBuiltReport.VMware.Horizon.ps1 index 56c6310..2fb4c8f 100644 --- a/Src/Public/Invoke-ASBuiltReport.VMware.Horizon.ps1 +++ b/Src/Public/Invoke-ASBuiltReport.VMware.Horizon.ps1 @@ -375,7 +375,7 @@ Write-PscriboMessage -IsWarning $_.Exception.Message } - section -Style Heading1 "$($HVEnvironment)" { + section -Style Heading1 "$($HVEnvironment.toUpper())" { Get-AbrHRZInfrastructure } From 8a11712e084eba8da2e87b7ebc1e10e255592bad Mon Sep 17 00:00:00 2001 From: Chris Hildebrandt Date: Mon, 18 Dec 2023 20:29:05 -0600 Subject: [PATCH 09/18] Complted Updates With and Bug Fix's --- Src/Private/Get-AbrHRZConnectionServer.ps1 | 83 +++++++++++++--------- Src/Private/Get-AbrHRZDesktopPool.ps1 | 83 ++++++++++++++++++---- Src/Private/Get-AbrHRZSites.ps1 | 2 +- 3 files changed, 118 insertions(+), 50 deletions(-) diff --git a/Src/Private/Get-AbrHRZConnectionServer.ps1 b/Src/Private/Get-AbrHRZConnectionServer.ps1 index 9bcb996..9252002 100644 --- a/Src/Private/Get-AbrHRZConnectionServer.ps1 +++ b/Src/Private/Get-AbrHRZConnectionServer.ps1 @@ -245,44 +245,59 @@ function Get-AbrHRZConnectionServer { } try { - $OutObj = @() - section -Style Heading5 "Certificate Details for $($ConnectionServer.General.Name) Details" { - try { - Write-PscriboMessage "Working on Certificate Information for $($ConnectionServerHealthData.Name)." - - $Cert = $ConnectionServerHealthData.CertificateHealth.ConnectionServerCertificate - $Bytes = [System.Text.Encoding]::UTF8.GetBytes($Cert) - $PodCert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($Bytes) - - $inObj = [ordered] @{ - 'Connection Server' = $ConnectionServerHealthData.Name - 'Self-Signed Certificate' = $ConnectionServerHealthData.DefaultCertificate - 'Certificate Subject' = $PodCert.Subject - 'Certificate Issuer' = $PodCert.Issuer - 'Certificate Not Before' = $PodCert.NotBefore - 'Certificate Not After' = $PodCert.NotAfter - 'Certificate SANs' = $PodCert.DnsNameList - 'Certificate Thumbprint' = $PodCert.Thumbprint - } - $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) - if ($HealthCheck.ConnectionServers.Status) { - $OutObj | Where-Object { $_.'Enabled' -eq 'No' } | Set-Style -Style Warning -Property 'Enabled' - } - $TableParams = @{ - Name = "Connection Servers - $($ConnectionServerHealthData.Name)" - List = $true - ColumnWidths = 30, 70 - } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" - } - $OutObj | Table @TableParams + $OutObj = @() + section -Style Heading5 "Certificate Details for $($ConnectionServer.General.Name) Details" { + try { + + # Connection Server Health Data + $ConnectionServerHealthMatch = $false + foreach ($ConnectionServerHealth in $ConnectionServersHealth) { + if ($ConnectionServerHealth.id.id -eq $ConnectionServer.id.id) { + $ConnectionServerHealthData = $ConnectionServerHealth + $ConnectionServerHealthMatch = $true } - catch { - Write-PscriboMessage -IsWarning $_.Exception.Message + if ($ConnectionServerHealthMatch) { + break } } + + Write-PscriboMessage "Working on Certificate Information for $($ConnectionServerHealthData.Name)." + + if(![string]::IsNullOrEmpty($ConnectionServerHealthData.CertificateHealth.ConnectionServerCertificate)){ + $Cert = $ConnectionServerHealthData.CertificateHealth.ConnectionServerCertificate + $Bytes = [System.Text.Encoding]::UTF8.GetBytes($Cert) + $PodCert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($Bytes) + } + + $inObj = [ordered] @{ + 'Connection Server' = $ConnectionServerHealthData.Name + 'Self-Signed Certificate' = $ConnectionServerHealthData.DefaultCertificate + 'Certificate Subject' = $PodCert.Subject + 'Certificate Issuer' = $PodCert.Issuer + 'Certificate Not Before' = $PodCert.NotBefore + 'Certificate Not After' = $PodCert.NotAfter + 'Certificate SANs' = $(($PodCert.DnsNameList | ForEach-Object { $_.Punycode }) -join ', ') + 'Certificate Thumbprint' = $PodCert.Thumbprint + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + if ($HealthCheck.ConnectionServers.Status) { + $OutObj | Where-Object { $_.'Enabled' -eq 'No' } | Set-Style -Style Warning -Property 'Enabled' + } + $TableParams = @{ + Name = "Certificate Details for - $($ConnectionServerHealthData.Name)" + List = $true + ColumnWidths = 30, 70 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message } + } + } catch { Write-PscriboMessage -IsWarning $_.Exception.Message } diff --git a/Src/Private/Get-AbrHRZDesktopPool.ps1 b/Src/Private/Get-AbrHRZDesktopPool.ps1 index ed24431..c98b262 100644 --- a/Src/Private/Get-AbrHRZDesktopPool.ps1 +++ b/Src/Private/Get-AbrHRZDesktopPool.ps1 @@ -420,8 +420,8 @@ function Get-AbrHRZDesktopPool { 'vRam Size MB' = $Pool.DesktopSettings.DisplayProtocolSettings.PcoipDisplaySettings.VRamSizeMB 'Max Number of Monitors' = $Pool.DesktopSettings.DisplayProtocolSettings.PcoipDisplaySettings.MaxNumberOfMonitors 'Max Resolution of Any One Monitor' = $Pool.DesktopSettings.DisplayProtocolSettings.PcoipDisplaySettings.MaxResolutionOfAnyOneMonitor - 'Use View Storage Accelerator' = $pools.ManualDesktopData.ViewStorageAcceleratorSettings.UseViewStorageAccelerator - 'Regenerate View Storage Accelerator Days' = $pools.ManualDesktopData.ViewStorageAcceleratorSettings.RegenerateViewStorageAcceleratorDays + 'Use View Storage Accelerator' = $pool.ManualDesktopData.ViewStorageAcceleratorSettings.UseViewStorageAccelerator + 'Regenerate View Storage Accelerator Days' = $pool.ManualDesktopData.ViewStorageAcceleratorSettings.RegenerateViewStorageAcceleratorDays 'Black Out Times' = $BlackOutDateString 'Transparent Page Sharing Scope' = $Pool.ManualDesktopData.VirtualCenterManagedCommonSettings.TransparentPageSharingScope } @@ -510,8 +510,8 @@ function Get-AbrHRZDesktopPool { } 'Datastores' = $DatastoreFinal 'Datastores Storage Over-Commit' = $StorageOvercommitsresult - 'Use VSan' = $pools.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterStorageSettings.usevsan - 'Storage Cluster Path' = $pools.AutomatedDesktopData.VirtualCenterNamesData.SdrsClusterPath + 'Use VSAN' = $pool.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterStorageSettings.usevsan + 'Storage Cluster Path' = $pool.AutomatedDesktopData.VirtualCenterNamesData.SdrsClusterPath 'View Storage Accelerator' = Switch ($Pool.Type) { 'MANUAL' {$Pool.ManualDesktopData.ViewStorageAcceleratorSettings.UseViewStorageAccelerator} 'AUTOMATED' {$Pool.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterStorageSettings.ViewStorageAcceleratorSettings.UseViewStorageAccelerator} @@ -535,13 +535,13 @@ function Get-AbrHRZDesktopPool { 'Network Max Label' = $pool.AutomatedDesktopData.VirtualCenterProvisioningSettings.VirtualCenterNetworkingSettings.nics.NetworkLabelAssignmentSpecs.MaxLabel 'Customization Type' = $Pool.automateddesktopdata.CustomizationSettings.CustomizationType 'Customization Spec Name' = $Pool.automateddesktopdata.CustomizationSettings.CustomizationSpecName - 'Power off Script Name' = $pools.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PowerOffScriptName - 'Power off Script Parameters' = $pools.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PowerOffScriptParameters - 'Post Synchronization Script Name' = $pools.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PostSynchronizationScriptName - 'Post Synchronization Script Parameters' = $pools.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PostSynchronizationScriptParameters - 'Priming Computer Account' = $pools.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PrimingComputerAccount + 'Power off Script Name' = $pool.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PowerOffScriptName + 'Power off Script Parameters' = $pool.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PowerOffScriptParameters + 'Post Synchronization Script Name' = $pool.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PostSynchronizationScriptName + 'Post Synchronization Script Parameters' = $pool.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PostSynchronizationScriptParameters + 'Priming Computer Account' = $pool.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings.PrimingComputerAccount 'Guest Customization Account' = ($InstantCloneDomainAdmins | Where-Object {$_.id.id -eq $Pool.automateddesktopdata.CustomizationSettings.InstantCloneEngineDomainAdministrator.id}).Base.Username - 'No Customization Settings' = $pools.AutomatedDesktopData.CustomizationSettings.NoCustomizationSettings + 'No Customization Settings' = $pool.AutomatedDesktopData.CustomizationSettings.NoCustomizationSettings 'Sysprep Customization Settings' = $PoolCustomization 'Quick Prep Customization Settings' = $pool.AutomatedDesktopData.CustomizationSettings.QuickprepCustomizationSettings 'Ad Container' = $PoolContainerName @@ -601,7 +601,7 @@ function Get-AbrHRZDesktopPool { } - if ([string]::IsNullOrEmpty($pools.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings)) { + if ([string]::IsNullOrEmpty($pool.AutomatedDesktopData.CustomizationSettings.CloneprepCustomizationSettings)) { $inObj.Remove('Power off Script Name') $inObj.Remove('Power Off Script Parameters') $inObj.Remove('Post Synchronization Script Name') @@ -667,7 +667,56 @@ function Get-AbrHRZDesktopPool { } catch { Write-PscriboMessage -IsWarning $_.Exception.Message - } + } + + + try { + $OutObj = @() + section -ExcludeFromToC -Style NOTOCHeading4 "Desktop Pools Entitlements - $($Pool.Base.Name)" { + try { + Write-PscriboMessage "Discovered Desktop Pool Entitlements Information for - $($Pool.Base.Name)." + + foreach ($Principal in ($EntitledUserOrGrouplocalMachines | Where-Object {$_.localData.Desktops.id -eq $Pool.Id.id})) { + Write-PscriboMessage "Discovered Desktop Pool Entitlements Name for - $($Principal.Base.LoginName)." + $inObj = [ordered] @{ + 'Name' = $Principal.Base.LoginName + 'Domain' = $Principal.Base.Domain + 'Is Group?' = $Principal.Base.Group + } + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + + $TableParams += @{ + Name = "Desktop Pools Entitlements - $($Pool.Base.Name)" + List = $false + ColumnWidths = 34, 33, 33 + } + + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Sort-Object -Property 'Name' | Table @TableParams + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + + + + + + + + + + + } } } @@ -675,13 +724,16 @@ function Get-AbrHRZDesktopPool { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } + + <# try { section -Style Heading3 "Desktop Pool Entitlements" { foreach ($Pool in $Pools) { - section -ExcludeFromToC -Style NOTOCHeading5 $Pool.Base.Name { - $OutObj = @() - Write-PscriboMessage "Discovered Desktop Pool Entitlements Information." + section -ExcludeFromToC -Style NOTOCHeading4 "Desktop Pools Entitlements - $($Pool.Base.Name)" { + #$OutObj = @() + Write-PscriboMessage "Discovered Desktop Pool Entitlements Information for - $($Pool.Base.Name)." foreach ($Principal in ($EntitledUserOrGrouplocalMachines | Where-Object {$_.localData.Desktops.id -eq $Pool.Id.id})) { + Write-PscriboMessage "Discovered Desktop Pool Entitlements Name for - $($Principal.Base.LoginName)." $inObj = [ordered] @{ 'Name' = $Principal.Base.LoginName 'Domain' = $Principal.Base.Domain @@ -707,6 +759,7 @@ function Get-AbrHRZDesktopPool { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } + #> } } } diff --git a/Src/Private/Get-AbrHRZSites.ps1 b/Src/Private/Get-AbrHRZSites.ps1 index 657f66e..1338549 100644 --- a/Src/Private/Get-AbrHRZSites.ps1 +++ b/Src/Private/Get-AbrHRZSites.ps1 @@ -63,7 +63,7 @@ function Get-AbrHRZSites { } if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" + #$TableParams['Caption'] = "- $($TableParams.Name)" } $OutObj | Table @TableParams } From 8fc980efaa4e6b2c3fc051b76cce50e10c1f309d Mon Sep 17 00:00:00 2001 From: Chris Hildebrandt Date: Tue, 19 Dec 2023 14:13:22 -0600 Subject: [PATCH 10/18] Fixed Replication --- .github/ISSUE_TEMPLATE/bug_report.md | 35 ------ .github/ISSUE_TEMPLATE/bug_report.yml | 98 --------------- AsBuiltReport.VMware.Horizon.json | 2 +- Src/Private/Get-AbrHRZConnectionServer.ps1 | 140 ++++++++++++++------- 4 files changed, 93 insertions(+), 182 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index b735373..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -name: Bug report -about: Create a report to help us improve - ---- - -**Describe the bug** -A clear and concise description of what the bug is. - -**To Reproduce** -Steps to reproduce the behavior: -1. Go to '...' -2. Click on '....' -3. Scroll down to '....' -4. See error - -**Expected behavior** -A clear and concise description of what you expected to happen. - -**Screenshots** -If applicable, add screenshots to help explain your problem. - -**Desktop (please complete the following information):** - - OS: [e.g. iOS] - - Browser [e.g. chrome, safari] - - Version [e.g. 22] - -**Smartphone (please complete the following information):** - - Device: [e.g. iPhone6] - - OS: [e.g. iOS8.1] - - Browser [e.g. stock browser, safari] - - Version [e.g. 22] - -**Additional context** -Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index 969e74b..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,98 +0,0 @@ -name: Bug Report -description: File a bug report -labels: ["bug"] -assignees: - - rebelinux -body: - - type: textarea - id: bug-description - attributes: - label: Bug description - description: >- - Please provide a clear and concise description of the bug. - validations: - required: true - - type: input - id: command-line-input - attributes: - label: Command-line input - description: >- - Please provide the command line input you are using to run AsBuiltReport. Please ensure that you obscure any sensitive information. - placeholder: New-AsBuiltReport -Report VMware.Horizon -Target xxxxxxx -Format Word,HTML -OutputFolderPath .\Documents\ -AsBuiltConfigFilePath .\AsBuiltReport\AsBuiltReport.json -ReportConfigFilePath .\AsBuiltReport\AsBuiltReport.VMware.Horizon.json -EnableHealthCheck -Verbose - validations: - required: true - - type: textarea - id: steps-to-reproduce - attributes: - label: Steps to reproduce - description: >- - Please provide a detailed list of steps to reproduce the bug. - placeholder: |- - 1. .... - 2. .... - 3. .... - validations: - required: true - - type: textarea - id: expected-behaviour - attributes: - label: Expected behaviour - description: >- - Please provide a clear and concise description of what you expected to happen. - validations: - required: true - - type: textarea - id: screenshots - attributes: - label: Screenshots - description: >- - Please attach any screenshots to help explain the problem. Please ensure that you obscure any sensitive information. - placeholder: |- - Drag and drop screenshots here. - - type: textarea - id: operating-system - attributes: - label: Operating System - description: Please provide information about the operating system are you using. - placeholder: macOS Big Sur, Windows 10, Ubuntu 20.04 LTS - validations: - required: true - - type: textarea - id: powershell-version - attributes: - label: PowerShell Version - description: Please provide information about the PowerShell version you are using. Please provide the output from the following PowerShell command `$PSVersionTable`. - placeholder: $PSVersionTable - validations: - required: true - - type: textarea - 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.VMware.Horizon";"PScribo") | Select Name, Version` - placeholder: Get-Module -ListAvailable @("AsBuiltReport.Core";"AsBuiltReport.VMware.Horizon";"PScribo") | Select Name, Version - validations: - required: true - - type: textarea - id: additional-context - attributes: - label: Additional Context - description: This field is optional. You may provide additional context for the bug you wish to report. You may wish to include links to any related [issues](https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon/issues) or other relevant information. - - type: checkboxes - id: checklist - attributes: - label: Before submitting - description: >- - Please ensure your bug report fulfills all of the following requirements. - If you are unsure of what a specific requirement means, please follow the links to learn about it and understand why it is necessary before submitting. - options: - - label: >- - I have read and followed the [bug reporting guidelines](https://www.asbuiltreport.com/about/contributing/#reporting-issues-and-bugs). - required: true - - label: >- - I have read [the documentation](https://www.asbuiltreport.com/user-guide/new-asbuiltconfig), - and referred to the [known issues](https://www.asbuiltreport.com/user-guide/known-issues/) before submitting this bug report. - required: true - - label: >- - I have checked for previously opened & closed [issues](https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon/issues) before submitting this bug report. - required: true diff --git a/AsBuiltReport.VMware.Horizon.json b/AsBuiltReport.VMware.Horizon.json index cb6a182..0c47e4b 100644 --- a/AsBuiltReport.VMware.Horizon.json +++ b/AsBuiltReport.VMware.Horizon.json @@ -1,7 +1,7 @@ { "Report": { "Name": "VMware Horizon As Built Report", - "Version": "1.1", + "Version": "1.0", "Status": "Released", "ShowCoverPageImage": true, "ShowTableOfContents": true, diff --git a/Src/Private/Get-AbrHRZConnectionServer.ps1 b/Src/Private/Get-AbrHRZConnectionServer.ps1 index 9252002..3fcb4ed 100644 --- a/Src/Private/Get-AbrHRZConnectionServer.ps1 +++ b/Src/Private/Get-AbrHRZConnectionServer.ps1 @@ -82,7 +82,7 @@ function Get-AbrHRZConnectionServer { $ConnectionServerHealthMatch = $false foreach ($ConnectionServerHealth in $ConnectionServersHealth) { if ($ConnectionServerHealth.id.id -eq $ConnectionServer.id.id) { - $ConnectionServerHealthData = $ConnectionServerHealth + $ConnectionServerHealthData = $ConnectionServerHealth $ConnectionServerHealthMatch = $true } if ($ConnectionServerHealthMatch) { @@ -142,13 +142,13 @@ function Get-AbrHRZConnectionServer { section -Style Heading5 "Authentication $($ConnectionServer.General.Name) Details" { try { Write-PscriboMessage "Discovered Connection Servers Authentication Information $($ConnectionServer.General.Name)." - + if($connectionserver.authentication.samlconfig.SamlAuthenticators) { $SAMLAuth = $hzServices.SAMLAuthenticator.SAMLAuthenticator_Get($connectionserver.authentication.samlconfig.SamlAuthenticator) #$SAMLAuthList = $hzServices.SAMLAuthenticator.SAMLAuthenticator_list() } - - $inObj = [ordered] @{ + + $inObj = [ordered] @{ 'Smart Card Support' = $ConnectionServer.Authentication.SmartCardSupport 'Log off When Smart Card Removed' = $ConnectionServer.Authentication.LogoffWhenRemoveSmartCard 'RSA Secure ID Enabled' = $ConnectionServer.Authentication.RsaSecureIdConfig.SecureIdEnabled @@ -173,16 +173,16 @@ function Get-AbrHRZConnectionServer { 'Unauthenticated Access Default User' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.DefaultUser 'Unauthenticated Access User Idle Timeout' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.UserIdleTimeout 'Unauthenticated Access Client Puzzle Difficulty' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.ClientPuzzleDifficulty - 'Block Unsupported Clients' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.BlockUnsupportedClients } - $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) - $TableParams = @{ - Name = "Authentication - $($ConnectionServer.General.Name)" - List = $true - ColumnWidths = 40, 60 - } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" - } + 'Block Unsupported Clients' = $ConnectionServer.Authentication.UnauthenticatedAccessConfig.BlockUnsupportedClients } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + $TableParams = @{ + Name = "Authentication - $($ConnectionServer.General.Name)" + List = $true + ColumnWidths = 40, 60 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } $OutObj | Table @TableParams } catch { @@ -193,8 +193,6 @@ function Get-AbrHRZConnectionServer { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - - try { $OutObj = @() section -Style Heading5 "Backup $($ConnectionServer.General.Name) Details" { @@ -243,7 +241,6 @@ function Get-AbrHRZConnectionServer { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - try { $OutObj = @() section -Style Heading5 "Certificate Details for $($ConnectionServer.General.Name) Details" { @@ -253,7 +250,7 @@ function Get-AbrHRZConnectionServer { $ConnectionServerHealthMatch = $false foreach ($ConnectionServerHealth in $ConnectionServersHealth) { if ($ConnectionServerHealth.id.id -eq $ConnectionServer.id.id) { - $ConnectionServerHealthData = $ConnectionServerHealth + $ConnectionServerHealthData = $ConnectionServerHealth $ConnectionServerHealthMatch = $true } if ($ConnectionServerHealthMatch) { @@ -263,34 +260,34 @@ function Get-AbrHRZConnectionServer { Write-PscriboMessage "Working on Certificate Information for $($ConnectionServerHealthData.Name)." - if(![string]::IsNullOrEmpty($ConnectionServerHealthData.CertificateHealth.ConnectionServerCertificate)){ - $Cert = $ConnectionServerHealthData.CertificateHealth.ConnectionServerCertificate - $Bytes = [System.Text.Encoding]::UTF8.GetBytes($Cert) + if(![string]::IsNullOrEmpty($ConnectionServerHealthData.CertificateHealth.ConnectionServerCertificate)){ + $Cert = $ConnectionServerHealthData.CertificateHealth.ConnectionServerCertificate + $Bytes = [System.Text.Encoding]::UTF8.GetBytes($Cert) $PodCert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($Bytes) } - - $inObj = [ordered] @{ - 'Connection Server' = $ConnectionServerHealthData.Name - 'Self-Signed Certificate' = $ConnectionServerHealthData.DefaultCertificate - 'Certificate Subject' = $PodCert.Subject - 'Certificate Issuer' = $PodCert.Issuer - 'Certificate Not Before' = $PodCert.NotBefore - 'Certificate Not After' = $PodCert.NotAfter + + $inObj = [ordered] @{ + 'Connection Server' = $ConnectionServerHealthData.Name + 'Self-Signed Certificate' = $ConnectionServerHealthData.DefaultCertificate + 'Certificate Subject' = $PodCert.Subject + 'Certificate Issuer' = $PodCert.Issuer + 'Certificate Not Before' = $PodCert.NotBefore + 'Certificate Not After' = $PodCert.NotAfter 'Certificate SANs' = $(($PodCert.DnsNameList | ForEach-Object { $_.Punycode }) -join ', ') - 'Certificate Thumbprint' = $PodCert.Thumbprint - } - $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) - if ($HealthCheck.ConnectionServers.Status) { - $OutObj | Where-Object { $_.'Enabled' -eq 'No' } | Set-Style -Style Warning -Property 'Enabled' - } - $TableParams = @{ - Name = "Certificate Details for - $($ConnectionServerHealthData.Name)" - List = $true - ColumnWidths = 30, 70 - } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" - } + 'Certificate Thumbprint' = $PodCert.Thumbprint + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + if ($HealthCheck.ConnectionServers.Status) { + $OutObj | Where-Object { $_.'Enabled' -eq 'No' } | Set-Style -Style Warning -Property 'Enabled' + } + $TableParams = @{ + Name = "Certificate Details for - $($ConnectionServerHealthData.Name)" + List = $true + ColumnWidths = 30, 70 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } $OutObj | Table @TableParams } catch { @@ -301,7 +298,48 @@ function Get-AbrHRZConnectionServer { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - + + + if ($InfoLevel.settings.servers.ConnectionServers.ConnectionServers -ge 2) { + try { + $OutObj = @() + section -Style Heading5 "Replication Status for Connection Server $($connectionserver.General.Name)" { + try { + Write-PscriboMessage "Working on Replication Information for $($connectionserver.General.Name)." + + foreach($CSHealth in ($ConnectionServersHealth | Where-Object {$_.Name -EQ $connectionserver.General.Name})){ + $inObj = [ordered] @{ + 'Connection Server' = $CSHealth.Name + 'Replication Partner' = $CSHealth.ReplicationStatus.Servername + 'Status' = $CSHealth.ReplicationStatus.Status + 'Message' = $CSHealth.ReplicationStatus.Message + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + } + + $TableParams = @{ + Name = "Connection Servers Replication- $($connectionserver.General.Name)" + List = $true + ColumnWidths = 30, 70 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } + } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + + } + + + } } catch { @@ -312,6 +350,7 @@ function Get-AbrHRZConnectionServer { } } + <# if ($InfoLevel.settings.servers.ConnectionServers.ConnectionServers -ge 1) { try { $OutObj = @() @@ -319,13 +358,13 @@ function Get-AbrHRZConnectionServer { try { Write-PscriboMessage "Working on Replication Information for $($ConnectionServersHealth.Namee)." - $ConnectionServersHealth.ReplicationStatus | Where-Object { $_.ServerName -and $_.Status -and $_.Message} - $ConnectionServersHealth.ReplicationStatus | Table -Columns ServerName,Status,Message -Headers 'Replication Partner','Status','Message' + #$ConnectionServersHealth.ReplicationStatus | Where-Object { $_.ServerName -and $_.Status -and $_.Message} + $ConnectionServersHealth.ReplicationStatus | Table -Columns ServerName,Status,Message -Headers 'Connection Server','Replication Partner','Status','Message' $TableParams = @{ Name = "Connection Servers Replication- $($ConnectionServerHealthData.Name)" List = $true - ColumnWidths = 33, 33, 34 + ColumnWidths = 25, 25, 25, 25 } if ($Report.ShowTableCaptions) { $TableParams['Caption'] = "- $($TableParams.Name)" @@ -340,8 +379,13 @@ function Get-AbrHRZConnectionServer { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - } + #> + + + + + } } catch { From 74fdce8b7ba55e14cbe2cac61b73f02587448517 Mon Sep 17 00:00:00 2001 From: Chris Hildebrandt Date: Tue, 19 Dec 2023 17:27:35 -0600 Subject: [PATCH 11/18] Fix Blank lines, And Various code updates --- README.md | 1 - Src/Private/Get-AbrHRZADDomain.ps1 | 9 +- Src/Private/Get-AbrHRZApplicationPool.ps1 | 5 - Src/Private/Get-AbrHRZCertMgmt.ps1 | 52 +++++---- Src/Private/Get-AbrHRZConnectionServer.ps1 | 102 ++++++------------ Src/Private/Get-AbrHRZDesktopPool.ps1 | 66 +----------- Src/Private/Get-AbrHRZFarm.ps1 | 2 - .../Get-AbrHRZFederationAccessGroups.ps1 | 4 +- Src/Private/Get-AbrHRZGatewayCert.ps1 | 27 +++-- Src/Private/Get-AbrHRZGlobalEntitlement.ps1 | 2 +- Src/Private/Get-AbrHRZGlobalPolicies.ps1 | 1 - Src/Private/Get-AbrHRZGlobalSetting.ps1 | 1 - Src/Private/Get-AbrHRZHomeSite.ps1 | 1 - Src/Private/Get-AbrHRZLicense.ps1 | 2 - Src/Private/Get-AbrHRZMachines.ps1 | 63 ++--------- Src/Private/Get-AbrHRZRegisteredMachine.ps1 | 53 +++++---- Src/Private/Get-AbrHRZRolePrivilege.ps1 | 4 +- Src/Private/Get-AbrHRZSites.ps1 | 4 +- .../Invoke-ASBuiltReport.VMware.Horizon.ps1 | 6 +- 19 files changed, 112 insertions(+), 293 deletions(-) diff --git a/README.md b/README.md index cb59d1d..a904147 100644 --- a/README.md +++ b/README.md @@ -68,7 +68,6 @@ PowerShell 5.1 or PowerShell 7, and the following PowerShell modules are require - [VMware PowerCLI Module](https://www.powershellgallery.com/packages/VMware.PowerCLI/) - [AsBuiltReport.VMware.Horizon Module](https://www.powershellgallery.com/packages/AsBuiltReport.VMware.Horizon/) -### Linux & macOS * .NET Core is required for cover page image support on Linux and macOS operating systems. * [Installing .NET Core for macOS](https://docs.microsoft.com/en-us/dotnet/core/install/macos) diff --git a/Src/Private/Get-AbrHRZADDomain.ps1 b/Src/Private/Get-AbrHRZADDomain.ps1 index 4b46e2d..a7cf192 100644 --- a/Src/Private/Get-AbrHRZADDomain.ps1 +++ b/Src/Private/Get-AbrHRZADDomain.ps1 @@ -5,7 +5,7 @@ function Get-AbrHRZADDomain { .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -21,12 +21,10 @@ function Get-AbrHRZADDomain { [CmdletBinding()] param ( ) - begin { Write-PScriboMessage "ADDomains InfoLevel set at $($InfoLevel.Settings.Servers.vCenterServers.ADDomains)." Write-PscriboMessage "Collecting Active Directory Domain information." } - process { try { if ($Domains) { @@ -43,26 +41,21 @@ function Get-AbrHRZADDomain { 'Status' = $Domain.ConnectionServerState[0].Status 'Trust Relationship' = $Domain.ConnectionServerState[0].TrustRelationship 'Connection Status' = $Domain.ConnectionServerState[0].Contactable - } - $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) } catch { Write-PscriboMessage -IsWarning $_.Exception.Message } } - if ($HealthCheck.DataStores.Status) { $OutObj | Where-Object { $_.'Status' -eq 'ERROR'} | Set-Style -Style Warning } - $TableParams = @{ Name = "Active Directory Domains - $($HVEnvironment.split(".").toUpper()[0])" List = $false ColumnWidths = 25, 25, 25, 25 } - if ($Report.ShowTableCaptions) { $TableParams['Caption'] = "- $($TableParams.Name)" } diff --git a/Src/Private/Get-AbrHRZApplicationPool.ps1 b/Src/Private/Get-AbrHRZApplicationPool.ps1 index f4b77fd..3217197 100644 --- a/Src/Private/Get-AbrHRZApplicationPool.ps1 +++ b/Src/Private/Get-AbrHRZApplicationPool.ps1 @@ -71,7 +71,6 @@ function Get-AbrHRZApplicationPool { break } } - # Find out Access Group for Applications $AccessgroupMatch = $false foreach ($Accessgroup in $Accessgroups) { @@ -83,7 +82,6 @@ function Get-AbrHRZApplicationPool { break } } - # Find out Global Application Entitlement Group for Applications $GlobalApplicationEntitlementGroupDisplayName = ('') $GlobalApplicationEntitlementGroupMatch = $false @@ -98,7 +96,6 @@ function Get-AbrHRZApplicationPool { break } } - If([string]::IsNullOrEmpty($App.Data.AvApplicationPackageGuid)){ $AppVolumesApp = "False" @@ -106,10 +103,8 @@ function Get-AbrHRZApplicationPool { else { $AppVolumesApp = "True" } - $ApplicationFileTypes = $App.ExecutionData.FileTypes | ForEach-Object { $_.FileType} $ApplicationFileTypesresult = $ApplicationFileTypes -join ', ' - $OtherApplicationFileTypes = $App.ExecutionData.OtherFileTypes | ForEach-Object { $_.FileType} $OtherApplicationFileTypesresult = $OtherApplicationFileTypes -join ', ' diff --git a/Src/Private/Get-AbrHRZCertMgmt.ps1 b/Src/Private/Get-AbrHRZCertMgmt.ps1 index 36edc33..0d6baef 100644 --- a/Src/Private/Get-AbrHRZCertMgmt.ps1 +++ b/Src/Private/Get-AbrHRZCertMgmt.ps1 @@ -31,43 +31,41 @@ function Get-AbrHRZCertMgmt { try { if ($ConnectionServersHealth) { if ($InfoLevel.Settings.CloudPodArch.CloudPodArch -ge 1) { - # Connection Server Health Data $ConnectionServerHealthData = $ConnectionServersHealth | Select-Object -First 1 section -Style Heading2 "Certificate Management" { Paragraph "The following section details on the certificate management information for $($HVEnvironment.toUpper())." BlankLine - $OutObj = @() - + $OutObj = @() Write-PscriboMessage "Working on Certificate Information for $($ConnectionServerHealthData.Name)." - $Cert = $ConnectionServerHealthData.CertificateHealth.ConnectionServerCertificate - $Bytes = [System.Text.Encoding]::UTF8.GetBytes($Cert) + $Cert = $ConnectionServerHealthData.CertificateHealth.ConnectionServerCertificate + $Bytes = [System.Text.Encoding]::UTF8.GetBytes($Cert) $PodCert = [System.Security.Cryptography.X509Certificates.X509Certificate2]::new($Bytes) - $inObj = [ordered] @{ - 'Self-Signed Certificate' = $ConnectionServerHealthData.DefaultCertificate - 'Certificate Subject' = $PodCert.Subject - 'Certificate Issuer' = $PodCert.Issuer - 'Certificate Not Before' = $PodCert.NotBefore - 'Certificate Not After' = $PodCert.NotAfter - 'Certificate SANs' = $PodCert.DnsNameList - 'Certificate Thumbprint' = $PodCert.Thumbprint - } - $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) - if ($HealthCheck.ConnectionServers.Status) { - $OutObj | Where-Object { $_.'Enabled' -eq 'No' } | Set-Style -Style Warning -Property 'Enabled' - } - $TableParams = @{ - Name = "Certificate Management - $($HVEnvironment.toUpper())" - List = $true - ColumnWidths = 30, 70 - } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" - } - $OutObj | Table @TableParams + $inObj = [ordered] @{ + 'Self-Signed Certificate' = $ConnectionServerHealthData.DefaultCertificate + 'Certificate Subject' = $PodCert.Subject + 'Certificate Issuer' = $PodCert.Issuer + 'Certificate Not Before' = $PodCert.NotBefore + 'Certificate Not After' = $PodCert.NotAfter + 'Certificate SANs' = $PodCert.DnsNameList + 'Certificate Thumbprint' = $PodCert.Thumbprint + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + if ($HealthCheck.ConnectionServers.Status) { + $OutObj | Where-Object { $_.'Enabled' -eq 'No' } | Set-Style -Style Warning -Property 'Enabled' + } + $TableParams = @{ + Name = "Certificate Management - $($HVEnvironment.toUpper())" + List = $true + ColumnWidths = 30, 70 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams } } } diff --git a/Src/Private/Get-AbrHRZConnectionServer.ps1 b/Src/Private/Get-AbrHRZConnectionServer.ps1 index 3fcb4ed..88783be 100644 --- a/Src/Private/Get-AbrHRZConnectionServer.ps1 +++ b/Src/Private/Get-AbrHRZConnectionServer.ps1 @@ -298,48 +298,45 @@ function Get-AbrHRZConnectionServer { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - - - if ($InfoLevel.settings.servers.ConnectionServers.ConnectionServers -ge 2) { - try { - $OutObj = @() - section -Style Heading5 "Replication Status for Connection Server $($connectionserver.General.Name)" { - try { - Write-PscriboMessage "Working on Replication Information for $($connectionserver.General.Name)." - - foreach($CSHealth in ($ConnectionServersHealth | Where-Object {$_.Name -EQ $connectionserver.General.Name})){ - $inObj = [ordered] @{ - 'Connection Server' = $CSHealth.Name - 'Replication Partner' = $CSHealth.ReplicationStatus.Servername - 'Status' = $CSHealth.ReplicationStatus.Status - 'Message' = $CSHealth.ReplicationStatus.Message + if ($ConnectionServersHealth.replicationstatus){ + if ($InfoLevel.settings.servers.ConnectionServers.ConnectionServers -ge 2) { + try { + $OutObj = @() + section -Style Heading5 "Replication Status for Connection Server $($connectionserver.General.Name)" { + try { + Write-PscriboMessage "Working on Replication Information for $($connectionserver.General.Name)." + + foreach($CSHealth in ($ConnectionServersHealth | Where-Object {$_.Name -EQ $connectionserver.General.Name})){ + $inObj = [ordered] @{ + 'Connection Server' = $CSHealth.Name + 'Replication Partner' = $CSHealth.ReplicationStatus.Servername + 'Status' = $CSHealth.ReplicationStatus.Status + 'Message' = $CSHealth.ReplicationStatus.Message + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) } - $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) - } - $TableParams = @{ - Name = "Connection Servers Replication- $($connectionserver.General.Name)" - List = $true - ColumnWidths = 30, 70 + $TableParams = @{ + Name = "Connection Servers Replication- $($connectionserver.General.Name)" + List = $true + ColumnWidths = 30, 70 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message } - $OutObj | Table @TableParams - } - catch { - Write-PscriboMessage -IsWarning $_.Exception.Message } } - } - catch { - Write-PscriboMessage -IsWarning $_.Exception.Message - } + catch { + Write-PscriboMessage -IsWarning $_.Exception.Message + } + } } - - - } } catch { @@ -349,43 +346,6 @@ function Get-AbrHRZConnectionServer { } } - - <# - if ($InfoLevel.settings.servers.ConnectionServers.ConnectionServers -ge 1) { - try { - $OutObj = @() - section -Style Heading4 "Replication Status for Connection Servers" { - try { - Write-PscriboMessage "Working on Replication Information for $($ConnectionServersHealth.Namee)." - - #$ConnectionServersHealth.ReplicationStatus | Where-Object { $_.ServerName -and $_.Status -and $_.Message} - $ConnectionServersHealth.ReplicationStatus | Table -Columns ServerName,Status,Message -Headers 'Connection Server','Replication Partner','Status','Message' - - $TableParams = @{ - Name = "Connection Servers Replication- $($ConnectionServerHealthData.Name)" - List = $true - ColumnWidths = 25, 25, 25, 25 - } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" - } - $OutObj | Table @TableParams - } - catch { - Write-PscriboMessage -IsWarning $_.Exception.Message - } - } - } - catch { - Write-PscriboMessage -IsWarning $_.Exception.Message - } - } - #> - - - - - } } catch { diff --git a/Src/Private/Get-AbrHRZDesktopPool.ps1 b/Src/Private/Get-AbrHRZDesktopPool.ps1 index c98b262..871324b 100644 --- a/Src/Private/Get-AbrHRZDesktopPool.ps1 +++ b/Src/Private/Get-AbrHRZDesktopPool.ps1 @@ -258,7 +258,6 @@ function Get-AbrHRZDesktopPool { $BlackOutDates = $pool.ManualDesktopData.ViewStorageAcceleratorSettings.BlackoutTimes $BlackOutDateString = $BlackOutDates | Format-Table | Out-String - # Pool Customization Type $Customizations = ('') If($pool.AutomatedDesktopData.CustomizationSettings.CustomizationType -eq "SYS_PREP"){ @@ -269,10 +268,8 @@ function Get-AbrHRZDesktopPool { $PoolCustomization = $($Customization.CustomizationSpecData.Name) } } - } } - # VM Template $PoolTemplateName = '' if ($Pool.automateddesktopdata.VirtualCenterProvisioningSettings.VirtualCenterProvisioningData.Template.id){ @@ -645,13 +642,11 @@ function Get-AbrHRZDesktopPool { $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) } } - $TableParams = @{ - Name = "Pool Machine Summary - $($Pool.Base.Name)" - List = $false + Name = "Pool Machine Summary - $($Pool.Base.Name)" + List = $false ColumnWidths = 15, 10, 20, 25, 15, 15 } - if ($Report.ShowTableCaptions) { $TableParams['Caption'] = "- $($TableParams.Name)" } @@ -668,16 +663,13 @@ function Get-AbrHRZDesktopPool { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - - try { $OutObj = @() - section -ExcludeFromToC -Style NOTOCHeading4 "Desktop Pools Entitlements - $($Pool.Base.Name)" { + section -ExcludeFromToC -Style NOTOCHeading6 "Desktop Pools Entitlements - $($Pool.Base.Name)" { try { Write-PscriboMessage "Discovered Desktop Pool Entitlements Information for - $($Pool.Base.Name)." - foreach ($Principal in ($EntitledUserOrGrouplocalMachines | Where-Object {$_.localData.Desktops.id -eq $Pool.Id.id})) { - Write-PscriboMessage "Discovered Desktop Pool Entitlements Name for - $($Principal.Base.LoginName)." + Write-PscriboMessage "Discovered Desktop Pool Entitlements Name for - $($Principal.Base.LoginName)." $inObj = [ordered] @{ 'Name' = $Principal.Base.LoginName 'Domain' = $Principal.Base.Domain @@ -685,13 +677,11 @@ function Get-AbrHRZDesktopPool { } $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) } - $TableParams += @{ Name = "Desktop Pools Entitlements - $($Pool.Base.Name)" List = $false ColumnWidths = 34, 33, 33 } - if ($Report.ShowTableCaptions) { $TableParams['Caption'] = "- $($TableParams.Name)" } @@ -705,53 +695,6 @@ function Get-AbrHRZDesktopPool { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - - - - - - - - - - - - - } - } - } - } - catch { - Write-PscriboMessage -IsWarning $_.Exception.Message - } - - <# - try { - section -Style Heading3 "Desktop Pool Entitlements" { - foreach ($Pool in $Pools) { - section -ExcludeFromToC -Style NOTOCHeading4 "Desktop Pools Entitlements - $($Pool.Base.Name)" { - #$OutObj = @() - Write-PscriboMessage "Discovered Desktop Pool Entitlements Information for - $($Pool.Base.Name)." - foreach ($Principal in ($EntitledUserOrGrouplocalMachines | Where-Object {$_.localData.Desktops.id -eq $Pool.Id.id})) { - Write-PscriboMessage "Discovered Desktop Pool Entitlements Name for - $($Principal.Base.LoginName)." - $inObj = [ordered] @{ - 'Name' = $Principal.Base.LoginName - 'Domain' = $Principal.Base.Domain - 'Is Group?' = $Principal.Base.Group - } - $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) - } - - $TableParams = @{ - Name = "Desktop Pools Entitlements - $($Pool.Base.Name)" - List = $false - ColumnWidths = 34, 33, 33 - } - - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" - } - $OutObj | Sort-Object -Property 'Name' | Table @TableParams } } } @@ -759,7 +702,6 @@ function Get-AbrHRZDesktopPool { catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - #> } } } diff --git a/Src/Private/Get-AbrHRZFarm.ps1 b/Src/Private/Get-AbrHRZFarm.ps1 index 2b45b80..f9d948e 100644 --- a/Src/Private/Get-AbrHRZFarm.ps1 +++ b/Src/Private/Get-AbrHRZFarm.ps1 @@ -107,7 +107,6 @@ function Get-AbrHRZFarm { $FarmCustomization = $($Customization.CustomizationSpecData.Name) } } - } } @@ -127,7 +126,6 @@ function Get-AbrHRZFarm { 'Deleting' = $Farm.Data.Deleting 'Desktop' = $Farm.Data.Desktop 'App Volumes Server' = $Farm.Data.AppVolumesManagerGuid - 'Default Display Protocol' = $Farm.Data.DisplayProtocolSettings.DefaultDisplayProtocol 'Allow Users to Choose Protocol' = $Farm.Data.DisplayProtocolSettings.AllowDisplayProtocolOverride 'HTML Access' = $Farm.Data.DisplayProtocolSettings.EnableHTMLAccess diff --git a/Src/Private/Get-AbrHRZFederationAccessGroups.ps1 b/Src/Private/Get-AbrHRZFederationAccessGroups.ps1 index e3d706f..0482cda 100644 --- a/Src/Private/Get-AbrHRZFederationAccessGroups.ps1 +++ b/Src/Private/Get-AbrHRZFederationAccessGroups.ps1 @@ -97,7 +97,7 @@ function Get-AbrHRZFederationAccessGroups { $GlobalAccessGroupIDName = $GlobalAccessGroupIDName.TrimStart('/') } - } + } $inObj = [ordered] @{ 'User or Group Name' = $AdministratorIDName 'Role' = $RoleIDName @@ -106,8 +106,6 @@ function Get-AbrHRZFederationAccessGroups { $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) } - - $TableParams = @{ Name = "Role Permissions - $($HVEnvironment.toUpper())" List = $false diff --git a/Src/Private/Get-AbrHRZGatewayCert.ps1 b/Src/Private/Get-AbrHRZGatewayCert.ps1 index 1786577..32db8c1 100644 --- a/Src/Private/Get-AbrHRZGatewayCert.ps1 +++ b/Src/Private/Get-AbrHRZGatewayCert.ps1 @@ -31,33 +31,30 @@ function Get-AbrHRZGatewayCert { try { if ($GatewayCerts) { if ($InfoLevel.Settings.CloudPodArch.CloudPodArch -ge 1) { - section -Style Heading3 "Gateway Certificate" { Paragraph "The following section details on the gateway certificate information for $($HVEnvironment.toUpper())." BlankLine - Write-PscriboMessage "Working on Gateway Certificate Information for $($HVEnvironment.toUpper())." - $OutObj = @() foreach ($GatewayCert in $GatewayCerts){ - $inObj = [ordered] @{ + $inObj = [ordered] @{ 'Certificate Name' = $GatewayCert.CertificateName 'Common Name' = $GatewayCert.CommonName 'Issuer' = $GatewayCert.Issuer 'Expiry Date' = $GatewayCert.ExpiryDate 'Serial Number' = $GatewayCert.SerialNum - } - $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) + } + $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) } - $TableParams = @{ - Name = "Gateway Certificate - $($HVEnvironment.toUpper())" - List = $true - ColumnWidths = 30, 70 - } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" - } - $OutObj | Table @TableParams + $TableParams = @{ + Name = "Gateway Certificate - $($HVEnvironment.toUpper())" + List = $true + ColumnWidths = 30, 70 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" + } + $OutObj | Table @TableParams } } } diff --git a/Src/Private/Get-AbrHRZGlobalEntitlement.ps1 b/Src/Private/Get-AbrHRZGlobalEntitlement.ps1 index ea3af3f..9d71996 100644 --- a/Src/Private/Get-AbrHRZGlobalEntitlement.ps1 +++ b/Src/Private/Get-AbrHRZGlobalEntitlement.ps1 @@ -183,7 +183,7 @@ function Get-AbrHRZGlobalEntitlement { 'User Count' = $GlobalEntitlement.data.UserCount 'User or Group Count' = $GlobalEntitlement.data.UserGroupCount 'User or Group Site Override Count' = $GlobalEntitlement.data.UserGroupSiteOverrideCount - 'Member Pods' = $PodMemberList + 'Member Pods' = $PodMemberList } $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj) diff --git a/Src/Private/Get-AbrHRZGlobalPolicies.ps1 b/Src/Private/Get-AbrHRZGlobalPolicies.ps1 index 8a0ad6e..2087643 100644 --- a/Src/Private/Get-AbrHRZGlobalPolicies.ps1 +++ b/Src/Private/Get-AbrHRZGlobalPolicies.ps1 @@ -46,7 +46,6 @@ function Get-AbrHRZGlobalPolicies { } $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) - $TableParams = @{ Name = "Global Policies - $($HVEnvironment.toUpper())" diff --git a/Src/Private/Get-AbrHRZGlobalSetting.ps1 b/Src/Private/Get-AbrHRZGlobalSetting.ps1 index 13ccf63..4c3da26 100644 --- a/Src/Private/Get-AbrHRZGlobalSetting.ps1 +++ b/Src/Private/Get-AbrHRZGlobalSetting.ps1 @@ -121,7 +121,6 @@ function Get-AbrHRZGlobalSetting { Write-PscriboMessage -IsWarning $_.Exception.Message } - try { if ($InfoLevel.Settings.GlobalSettings.GlobalSettings -ge 2) { section -Style Heading3 "Client Restriction Settings" { diff --git a/Src/Private/Get-AbrHRZHomeSite.ps1 b/Src/Private/Get-AbrHRZHomeSite.ps1 index 5885352..2fd8efe 100644 --- a/Src/Private/Get-AbrHRZHomeSite.ps1 +++ b/Src/Private/Get-AbrHRZHomeSite.ps1 @@ -72,7 +72,6 @@ function Get-AbrHRZHomeSite { $HomeSiteGlobalApplicationEntitlementID = $hzServices.GlobalApplicationEntitlement.GlobalApplicationEntitlement_Get($homesite.Base.GlobalApplicationEntitlement) $HomeSiteGlobalApplicationEntitlementIDName = $HomeSiteGlobalApplicationEntitlementID.base.DisplayName } - $inObj = [ordered] @{ 'User or Group Name' = $HomeSiteUserIDName 'Domain' = $HomeSiteUserIDDomain diff --git a/Src/Private/Get-AbrHRZLicense.ps1 b/Src/Private/Get-AbrHRZLicense.ps1 index dcb34aa..06fb8b1 100644 --- a/Src/Private/Get-AbrHRZLicense.ps1 +++ b/Src/Private/Get-AbrHRZLicense.ps1 @@ -73,7 +73,6 @@ function Get-AbrHRZLicense { Write-PscriboMessage -IsWarning $_.Exception.Message } } - $TableParams = @{ Name = "Licensing - $($HVEnvironment.toUpper())" List = $true @@ -85,7 +84,6 @@ function Get-AbrHRZLicense { } $OutObj | Table @TableParams } - try { $UsageStatisticsInfo = try {$hzServices.UsageStatistics.UsageStatistics_GetLicensingCounters()} catch {Write-PscriboMessage -IsWarning $_.Exception.Message} if ($UsageStatisticsInfo) { diff --git a/Src/Private/Get-AbrHRZMachines.ps1 b/Src/Private/Get-AbrHRZMachines.ps1 index 3c87929..69ce10d 100644 --- a/Src/Private/Get-AbrHRZMachines.ps1 +++ b/Src/Private/Get-AbrHRZMachines.ps1 @@ -34,12 +34,9 @@ function Get-AbrHRZMachines { section -Style Heading3 "Machines" { Paragraph "The following section details on all of the machine information for $($HVEnvironment.toUpper())." BlankLine - Write-PscriboMessage "Working on Machines Information for $($HVEnvironment.toUpper())." - section -Style Heading4 "vCenter Machine Summary" { $OutObj = @() - foreach ($Machine in $Machines) { $inObj = [ordered] @{ 'Machine Name' = $Machine.Base.Name @@ -51,61 +48,17 @@ function Get-AbrHRZMachines { } $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) } - - $TableParams = @{ - Name = "vCenter Machine Summary - $($HVEnvironment.toUpper())" - List = $false - ColumnWidths = 15, 10, 20, 25, 15, 15 - } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" - } - $OutObj | Table @TableParams - } - <# - if ($InfoLevel.Inventory.Machines -ge 1) { - - $OutObj = @() - section -Style Heading4 "vCenter Machine Details" { - foreach ($Machine in $Machines) { - $inObj = [ordered] @{ - 'Machine Name' = $machine.base.Name - 'DNS Name' = $machine.base.DnsName - 'User' = $machine.base.User - 'Users' = $machine.base.Users - 'Aliases' = $machine.base.Aliases - 'Access Group' = $machine.base.AccessGroup - 'Desktop' = $machine.base.Desktop - 'Desktop Name' = $machine.base.DesktopName - 'Session' = $machine.base.Session - 'State' = $machine.base.BasicState - 'Type' = $machine.base.Type - 'Operating System' = $machine.base.OperatingSystem - 'System Architecture' = $machine.base.OperatingSystemArchitecture - 'Agent Build Version' = $machine.base.AgentVersion - 'Agent Build Number' = $machine.base.AgentBuildNumber - 'Remote Experence Agent Version' = $machine.base.RemoteExperienceAgentVersion - 'Remote Experence Agent Build' = $machine.base.RemoteExperienceAgentBuildNumber - 'Agent Upgrade' = $machine.base.AgentUpgradeInfo - } - $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) - } - - $TableParams = @{ - Name = "vCenter Machine Details - $($HVEnvironment.toUpper())" - List = $true - ColumnWidths = 60, 40 - } - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" - } - $OutObj | Table @TableParams + $TableParams = @{ + Name = "vCenter Machine Summary - $($HVEnvironment.toUpper())" + List = $false + ColumnWidths = 15, 10, 20, 25, 15, 15 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" } + $OutObj | Table @TableParams } - #> - } - } } } diff --git a/Src/Private/Get-AbrHRZRegisteredMachine.ps1 b/Src/Private/Get-AbrHRZRegisteredMachine.ps1 index eafa8e9..9422932 100644 --- a/Src/Private/Get-AbrHRZRegisteredMachine.ps1 +++ b/Src/Private/Get-AbrHRZRegisteredMachine.ps1 @@ -112,37 +112,34 @@ function Get-AbrHRZRegisteredMachine { Write-PscriboMessage -IsWarning $_.Exception.Message } - section -Style Heading3 'Others' { - Paragraph "The following section details the RDS Hosts configuration for $($HVEnvironment.toUpper()) server." - BlankLine - $OutObj = @() - foreach ($RegisteredPhysicalMachine in $RegisteredPhysicalMachines) { - Write-PscriboMessage "Other Registerd Machines" - $inObj = [ordered] @{ - 'Name' = $RegisteredPhysicalMachines.MachineBase.name - 'DNS Name' = $RegisteredPhysicalMachines.MachineBase.DnsName - 'Description' = $RegisteredPhysicalMachines.MachineBase.Description - 'OperatingSystem' = $RegisteredPhysicalMachines.MachineBase.Description + if($RegisteredPhysicalMachines){ + section -Style Heading3 'Others' { + Paragraph "The following section details the RDS Hosts configuration for $($HVEnvironment.toUpper()) server." + BlankLine + $OutObj = @() + foreach ($RegisteredPhysicalMachine in $RegisteredPhysicalMachines) { + Write-PscriboMessage "Other Registerd Machines" + $inObj = [ordered] @{ + 'Name' = $RegisteredPhysicalMachines.MachineBase.name + 'DNS Name' = $RegisteredPhysicalMachines.MachineBase.DnsName + 'Description' = $RegisteredPhysicalMachines.MachineBase.Description + 'OperatingSystem' = $RegisteredPhysicalMachines.MachineBase.Description + } + $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) + } + if ($HealthCheck.RegisteredMachines.Status) { + $OutObj | Where-Object { $_.'Status' -ne 'AVAILABLE'} | Set-Style -Style Warning + } + $TableParams = @{ + Name = "Other Registered Machines - $($HVEnvironment.toUpper())" + List = $false + ColumnWidths = 20, 20, 30, 30 + } + if ($Report.ShowTableCaptions) { + $TableParams['Caption'] = "- $($TableParams.Name)" } - - $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj) - } - - if ($HealthCheck.RegisteredMachines.Status) { - $OutObj | Where-Object { $_.'Status' -ne 'AVAILABLE'} | Set-Style -Style Warning - } - - $TableParams = @{ - Name = "Other Registered Machines - $($HVEnvironment.toUpper())" - List = $false - ColumnWidths = 20, 20, 30, 30 - } - - if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" } } - } } } diff --git a/Src/Private/Get-AbrHRZRolePrivilege.ps1 b/Src/Private/Get-AbrHRZRolePrivilege.ps1 index e9c1cba..ffeb4b3 100644 --- a/Src/Private/Get-AbrHRZRolePrivilege.ps1 +++ b/Src/Private/Get-AbrHRZRolePrivilege.ps1 @@ -56,10 +56,8 @@ function Get-AbrHRZRolePrivilege { } $OutObj | Sort-Object -Property 'Name' | Table @TableParams } - - if ($InfoLevel.Settings.Administrators.RolePrivileges -ge 2) { + if ($InfoLevel.Settings.Administrators.RolePrivileges -ge 2) { section -Style Heading4 "Role Privileges Details" { - Paragraph "The following section details the Role Privilege details for information for $($HVEnvironment.toUpper()) server." BlankLine $OutObj = @() diff --git a/Src/Private/Get-AbrHRZSites.ps1 b/Src/Private/Get-AbrHRZSites.ps1 index 1338549..40f7f06 100644 --- a/Src/Private/Get-AbrHRZSites.ps1 +++ b/Src/Private/Get-AbrHRZSites.ps1 @@ -63,11 +63,11 @@ function Get-AbrHRZSites { } if ($Report.ShowTableCaptions) { - #$TableParams['Caption'] = "- $($TableParams.Name)" + $TableParams['Caption'] = "- $($TableParams.Name)" } $OutObj | Table @TableParams } - + } } diff --git a/Src/Public/Invoke-ASBuiltReport.VMware.Horizon.ps1 b/Src/Public/Invoke-ASBuiltReport.VMware.Horizon.ps1 index 2fb4c8f..837660b 100644 --- a/Src/Public/Invoke-ASBuiltReport.VMware.Horizon.ps1 +++ b/Src/Public/Invoke-ASBuiltReport.VMware.Horizon.ps1 @@ -5,7 +5,7 @@ .DESCRIPTION Documents the configuration of VMware Horizon in Word/HTML/XML/Text formats using PScribo. .NOTES - Version: 0.2.0 + Version: 1.1.0 Author: Chris Hildebrandt, Karl Newick Twitter: @childebrandt42, @karlnewick Editor: Jonathan Colon, @jcolonfzenpr @@ -349,7 +349,6 @@ catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - try { # Certificate Management $CertificateManagement = $hzServices.GlobalSettings.GlobalSettings_ListGatewayCertificates() @@ -374,7 +373,6 @@ catch { Write-PscriboMessage -IsWarning $_.Exception.Message } - section -Style Heading1 "$($HVEnvironment.toUpper())" { Get-AbrHRZInfrastructure } @@ -426,7 +424,6 @@ Get-AbrHRZRolePermission Get-AbrHRZAccessGroup Get-AbrHRZFederationAccessGroups - } } @@ -435,7 +432,6 @@ Get-AbrHRZEventConf Get-AbrHRZGlobalPolicies } - } } } \ No newline at end of file From 99a0c79a080900ae80bb1b5c835715981f662f7e Mon Sep 17 00:00:00 2001 From: Chris Hildebrandt Date: Tue, 19 Dec 2023 18:31:34 -0600 Subject: [PATCH 12/18] Updated CHange log --- CHANGELOG.md | 9 +++++++++ Src/Private/Get-AbrHRZSites.ps1 | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8715d8b..258e12c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # :arrows_clockwise: VMware Horizon As Built Report Changelog +## [0.2.0] - 2023-12-19 + +### Added + +- Updated Report to work with Horizon 2309 +- Added Features for Certificates and Replication status +- Improved functionaliy and layout. + + ## [0.2.0] - 2022-08-17 ### Added diff --git a/Src/Private/Get-AbrHRZSites.ps1 b/Src/Private/Get-AbrHRZSites.ps1 index 40f7f06..fc980f8 100644 --- a/Src/Private/Get-AbrHRZSites.ps1 +++ b/Src/Private/Get-AbrHRZSites.ps1 @@ -63,7 +63,7 @@ function Get-AbrHRZSites { } if ($Report.ShowTableCaptions) { - $TableParams['Caption'] = "- $($TableParams.Name)" + #$TableParams['Caption'] = "- $($TableParams.Name)" } $OutObj | Table @TableParams } From 697d2142f12b47690a53019c46c2f14c13e95e16 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Tue, 19 Dec 2023 21:27:39 -0400 Subject: [PATCH 13/18] Updated CHANGELOG version number --- CHANGELOG.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 258e12c..9945180 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # :arrows_clockwise: VMware Horizon As Built Report Changelog -## [0.2.0] - 2023-12-19 +## [1.1.0] - 2023-12-19 ### Added @@ -8,7 +8,6 @@ - Added Features for Certificates and Replication status - Improved functionaliy and layout. - ## [0.2.0] - 2022-08-17 ### Added From 5682801aa8f59752ba43cce95f329863cfb7a3d1 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Tue, 19 Dec 2023 21:28:12 -0400 Subject: [PATCH 14/18] Fix for ASbuiltReport Logo --- README.md | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/README.md b/README.md index a904147..03da592 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@

- +

@@ -68,13 +68,6 @@ PowerShell 5.1 or PowerShell 7, and the following PowerShell modules are require - [VMware PowerCLI Module](https://www.powershellgallery.com/packages/VMware.PowerCLI/) - [AsBuiltReport.VMware.Horizon Module](https://www.powershellgallery.com/packages/AsBuiltReport.VMware.Horizon/) - -* .NET Core is required for cover page image support on Linux and macOS operating systems. - * [Installing .NET Core for macOS](https://docs.microsoft.com/en-us/dotnet/core/install/macos) - * [Installing .NET Core for Linux](https://docs.microsoft.com/en-us/dotnet/core/install/linux) - -❗ If you are unable to install .NET Core, you must set `ShowCoverPageImage` to `False` in the report JSON configuration file. - ### :closed_lock_with_key: Required Privileges - A VMware Horizon As Built Report can be generated with Administrators(Read only) privileges. From b51e22e7069537430060375ab8a33c7b68f3f922 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Tue, 19 Dec 2023 21:28:29 -0400 Subject: [PATCH 15/18] Added back bug_report_yml --- .github/ISSUE_TEMPLATE/bug_report.yml | 98 +++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..534449b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,98 @@ +name: Bug Report +description: File a bug report +labels: ["bug"] +assignees: + - rebelinux +body: + - type: textarea + id: bug-description + attributes: + label: Bug description + description: >- + Please provide a clear and concise description of the bug. + validations: + required: true + - type: input + id: command-line-input + attributes: + label: Command-line input + description: >- + Please provide the command line input you are using to run AsBuiltReport. Please ensure that you obscure any sensitive information. + placeholder: New-AsBuiltReport -Report VMware.Horizon -Target xxxxxxx -Format Word,HTML -OutputFolderPath .\Documents\ -AsBuiltConfigFilePath .\AsBuiltReport\AsBuiltReport.json -ReportConfigFilePath .\AsBuiltReport\AsBuiltReport.VMware.Horizon.json -EnableHealthCheck -Verbose + validations: + required: true + - type: textarea + id: steps-to-reproduce + attributes: + label: Steps to reproduce + description: >- + Please provide a detailed list of steps to reproduce the bug. + placeholder: |- + 1. .... + 2. .... + 3. .... + validations: + required: true + - type: textarea + id: expected-behaviour + attributes: + label: Expected behaviour + description: >- + Please provide a clear and concise description of what you expected to happen. + validations: + required: true + - type: textarea + id: screenshots + attributes: + label: Screenshots + description: >- + Please attach any screenshots to help explain the problem. Please ensure that you obscure any sensitive information. + placeholder: |- + Drag and drop screenshots here. + - type: textarea + id: operating-system + attributes: + label: Operating System + description: Please provide information about the operating system are you using. + placeholder: macOS Big Sur, Windows 10, Ubuntu 20.04 LTS + validations: + required: true + - type: textarea + id: powershell-version + attributes: + label: PowerShell Version + description: Please provide information about the PowerShell version you are using. Please provide the output from the following PowerShell command `$PSVersionTable`. + placeholder: $PSVersionTable + validations: + required: true + - type: textarea + 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.VMware.Horizon";"PScribo") | Select Name, Version` + placeholder: Get-Module -ListAvailable @("AsBuiltReport.Core";"AsBuiltReport.VMware.Horizon";"PScribo") | Select Name, Version + validations: + required: true + - type: textarea + id: additional-context + attributes: + label: Additional Context + description: This field is optional. You may provide additional context for the bug you wish to report. You may wish to include links to any related [issues](https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon/issues) or other relevant information. + - type: checkboxes + id: checklist + attributes: + label: Before submitting + description: >- + Please ensure your bug report fulfills all of the following requirements. + If you are unsure of what a specific requirement means, please follow the links to learn about it and understand why it is necessary before submitting. + options: + - label: >- + I have read and followed the [bug reporting guidelines](https://www.asbuiltreport.com/about/contributing/#reporting-issues-and-bugs). + required: true + - label: >- + I have read [the documentation](https://www.asbuiltreport.com/user-guide/new-asbuiltconfig), + and referred to the [known issues](https://www.asbuiltreport.com/user-guide/known-issues/) before submitting this bug report. + required: true + - label: >- + I have checked for previously opened & closed [issues](https://github.com/AsBuiltReport/AsBuiltReport.VMware.Horizon/issues) before submitting this bug report. + required: true \ No newline at end of file From 7a237cd35c59cd70ee4689caee5933ce8289a45f Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Tue, 19 Dec 2023 21:28:47 -0400 Subject: [PATCH 16/18] Removed unused file --- .github/ISSUE_TEMPLATE/feature_request.md | 17 ----------------- 1 file changed, 17 deletions(-) delete mode 100644 .github/ISSUE_TEMPLATE/feature_request.md diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md deleted file mode 100644 index 066b2d9..0000000 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -name: Feature request -about: Suggest an idea for this project - ---- - -**Is your feature request related to a problem? Please describe.** -A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] - -**Describe the solution you'd like** -A clear and concise description of what you want to happen. - -**Describe alternatives you've considered** -A clear and concise description of any alternative solutions or features you've considered. - -**Additional context** -Add any other context or screenshots about the feature request here. From fab4a37ef7b1654687cf32915ec4310f5259b1d7 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Tue, 19 Dec 2023 21:29:09 -0400 Subject: [PATCH 17/18] Update HTML Sample Report --- ...Sample VMware Horizon As Built Report.html | 1797 ++++++++++------- 1 file changed, 1047 insertions(+), 750 deletions(-) diff --git a/Samples/Sample VMware Horizon As Built Report.html b/Samples/Sample VMware Horizon As Built Report.html index 91f8d24..a6965da 100644 --- a/Samples/Sample VMware Horizon As Built Report.html +++ b/Samples/Sample VMware Horizon As Built Report.html @@ -8,125 +8,171 @@ 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; } - .NOTOCHeading5 { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #0072a3; } - .Caption { font-family: 'Arial'; font-size: 0.83rem; text-align: center; font-weight: normal; font-style: italic; color: #565656; } + .Title2 { font-family: 'Arial'; font-size: 1.50rem; text-align: center; font-weight: normal; color: #a1a0a4; } + .Heading5 { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #0072a3; } + .Info { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #e3f5fc; } + .Heading6 { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #0072a3; } .TOC { font-family: 'Arial'; font-size: 1.33rem; text-align: left; font-weight: normal; color: #00364d; } + .Heading1 { font-family: 'Arial'; font-size: 1.33rem; text-align: left; font-weight: normal; color: #00364d; } + .Warning { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #fff4c7; } + .Heading7 { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #0072a3; } .Heading4 { font-family: 'Arial'; font-size: 0.92rem; text-align: left; font-weight: normal; color: #00648f; } - .Heading2 { font-family: 'Arial'; font-size: 1.17rem; text-align: left; font-weight: normal; color: #004b6b; } - .Header { font-family: 'Arial'; font-size: 0.83rem; text-align: center; font-weight: normal; color: #565656; } - .Normal { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; } + .Title { font-family: 'Arial'; font-size: 2.00rem; text-align: center; font-weight: normal; color: #717074; } .Title3 { font-family: 'Arial'; font-size: 1.00rem; text-align: center; font-weight: normal; color: #006a91; } - .Info { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #e3f5fc; } + .Normal { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; } + .Header { font-family: 'Arial'; font-size: 0.83rem; text-align: center; font-weight: normal; color: #565656; } .TableDefaultHeading { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #fafafa; background-color: #00364d; } - .Heading1 { font-family: 'Arial'; font-size: 1.33rem; text-align: left; font-weight: normal; color: #00364d; } - .Title { font-family: 'Arial'; font-size: 2.00rem; text-align: center; font-weight: normal; color: #717074; } - .TableDefaultRow { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; } - .Title2 { font-family: 'Arial'; font-size: 1.50rem; text-align: center; font-weight: normal; color: #a1a0a4; } .Footer { font-family: 'Arial'; font-size: 0.83rem; text-align: center; font-weight: normal; color: #565656; } - .Warning { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #fff4c7; } - .Critical { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #feddd7; } - .Heading6 { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #0072a3; } + .NOTOCHeading5 { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #0072a3; } .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; } - .NOTOCHeading6 { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #0072a3; } + .Critical { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #feddd7; } .OK { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; background-color: #dff0d0; } - .Heading7 { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #0072a3; } - .Heading5 { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #0072a3; } .Heading3 { font-family: 'Arial'; font-size: 1.00rem; text-align: left; font-weight: normal; color: #00567a; } - table.tabledefault { padding: 0.08rem 0.17rem 0.13rem 0.17rem; border-style: solid; border-width: 0.02rem; border-color: #00364d; border-collapse: collapse; } - table.tabledefault th { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #fafafa; background-color: #00364d; padding: 0.08rem 0.17rem 0.13rem 0.17rem; border-style: solid; border-width: 0.02rem; border-color: #00364d; border-collapse: collapse; } - table.tabledefault td { padding: 0.08rem 0.17rem 0.13rem 0.17rem; border-style: solid; border-width: 0.02rem; border-color: #00364d; border-collapse: collapse; } - table.tabledefault tr:nth-child(odd) { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; padding: 0.08rem 0.17rem 0.13rem 0.17rem; border-style: solid; border-width: 0.02rem; border-color: #00364d; border-collapse: collapse; } - table.tabledefault tr:nth-child(even) { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; padding: 0.08rem 0.17rem 0.13rem 0.17rem; border-style: solid; border-width: 0.02rem; border-color: #00364d; border-collapse: collapse; } + .Caption { font-family: 'Arial'; font-size: 0.83rem; text-align: center; font-weight: normal; font-style: italic; color: #565656; } + .NOTOCHeading6 { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #0072a3; } + .TableDefaultRow { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; } + .Heading2 { font-family: 'Arial'; font-size: 1.17rem; text-align: left; font-weight: normal; color: #004b6b; } + .NOTOCHeading2 { font-family: 'Arial'; font-size: 1.17rem; text-align: left; font-weight: normal; color: #004b6b; } table.borderless { padding: 0.08rem 0.33rem 0rem 0.33rem; border-style: none; border-collapse: collapse; } table.borderless th { font-family: 'Arial'; 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; } table.borderless tr:nth-child(odd) { font-family: 'Arial'; 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 tr:nth-child(even) { font-family: 'Arial'; 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.tabledefault { padding: 0.08rem 0.17rem 0.13rem 0.17rem; border-style: solid; border-width: 0.02rem; border-color: #00364d; border-collapse: collapse; } + table.tabledefault th { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #fafafa; background-color: #00364d; padding: 0.08rem 0.17rem 0.13rem 0.17rem; border-style: solid; border-width: 0.02rem; border-color: #00364d; border-collapse: collapse; } + table.tabledefault td { padding: 0.08rem 0.17rem 0.13rem 0.17rem; border-style: solid; border-width: 0.02rem; border-color: #00364d; border-collapse: collapse; } + table.tabledefault tr:nth-child(odd) { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; padding: 0.08rem 0.17rem 0.13rem 0.17rem; border-style: solid; border-width: 0.02rem; border-color: #00364d; border-collapse: collapse; } + table.tabledefault tr:nth-child(even) { font-family: 'Arial'; font-size: 0.83rem; text-align: left; font-weight: normal; color: #565656; padding: 0.08rem 0.17rem 0.13rem 0.17rem; border-style: solid; border-width: 0.02rem; border-color: #00364d; border-collapse: collapse; }

User Principal NameGroup or UserDesktop EntitlementsApplication Entitlements
1255252586SA@pharmax.localUser10
30-mayra1410-distlist1Group03
+











VMware Horizon As Built Report


Zen Pr Solutions
































- - + +
Author:Jonathan Colon
Date:Saturday, August 20, 2022
Version:1.0
Date:Tuesday, December 19, 2023
Version:1.1

-
VMware Horizon As Built Report - v1.1

Table of Contents

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
VMware Horizon As Built Report - v1.1

Table of Contents

1HORIZON-CS-01V
1.1   Users and Groups
1.1.1      Local Entitlements
1.1.1.1         Local Entitlements Details
1.1.2      Home Site
1.1.3      Unauthenticated Access
1.2   Inventory
1.2.1      Desktop Pools
1.2.1.1         Desktop Pools Details
1.2.1.1.1            FullVirtualMachinesPool
1.2.1.1.2            ManualPool
1.2.1.1.3            Prueba
1.2.1.1.4            RDSPool
1.2.1.2         Desktop Pool Entitlements
1.2.2      Application Pool
1.2.2.1         Application Pool Details
1.2.3      Farms
1.2.3.1         Farms Details
1.2.3.1.1            FARM-Desktop
1.2.3.1.2            FARM-Test
1.2.4      Global Entitlements
1.3   Settings
1.3.1      Servers
1.3.1.1         vCenter Servers
1.3.1.1.1            vcenter-01v.pharmax.local
1.3.1.1.2            vcenter-02v.pharmax.local
1.3.1.2         ESXi Hosts
1.3.1.2.1            RegionA01-DR Cluster
1.3.1.2.2            RegionHQ-MGMT Cluster
1.3.1.2.3            RegionA01-COMP Cluster
1.3.1.3         Datastores
1.3.1.3.1            Datastores Detailed
1.3.1.4         Active Directory Domains
1.3.1.5         UAG Servers
1.3.1.6         Connection Servers
1.3.1.6.1            HORIZON-CS-01V Details
1.3.1.6.2            HORIZON-CS-02V Details
1.3.2      Instant Clone Accounts
1.3.3      Product Licenses
1.3.3.1         Product License Usage
1.3.4      Global Settings
1.3.4.1         Client Restriction Settings
1.3.5      Registered Machines
1.3.5.1         RDS Hosts
1.3.5.1.1            RDS Hosts Details
1.3.6      Administrators
1.3.6.1         Administrators and Groups
1.3.6.1.1            Administrators Details
1.3.6.2         Role Privileges
1.3.6.3         Role Permissions
1.3.6.4         Access Groups
1.3.6.4.1            Access Groups Details
1.3.7      Event Configuration
1.3.7.1         Event Database
1.3.7.2         Syslog Configuration
1.3.7.3         Events to File System
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1HORIZON-CS-01V.PHARMAX.LOCAL
1.1   Executive Summary for HORIZON-CS-01V.PHARMAX.LOCAL
2Users and Groups
2.1   Local Entitlements
2.1.1      Local Entitlements Details
2.2   Home Site
2.3   Unauthenticated Access
3Inventory
3.1   Desktop Pools
3.1.1      Desktop Pools Details
3.1.1.1         Pool - Linux-Pharmax
3.2   Application Pool
3.2.1      Application Pool Details
3.2.1.1         Application Summary - 7-Zip File Manager
3.2.1.2         Application Summary - 7-Zip Help
3.2.1.3         Application Summary - Calculator
3.2.1.4         Application Summary - Google Chrome
3.2.1.5         Application Summary - Google Chrome
3.2.1.6         Application Summary - Notepad
3.2.1.7         Application Summary - Paint
3.3   Farm Pools
3.3.1      Farm Pools Details
3.3.1.1         APP-Farm
3.4   Machines
3.4.1      vCenter Machine Summary
3.5   Global Entitlements
3.5.1      Global Entitlement Summary Details
3.5.1.1         Summary - Group-Ent
3.5.1.2         Local Pools - Group-Ent
3.5.1.3         Users and Groups - Group-Ent
3.5.1.4         Summary - GEZ-Linux
3.5.1.5         Local Pools - GEZ-Linux
3.5.1.6         Users and Groups - GEZ-Linux
3.5.1.7         Summary - APPVol-FARM
3.5.1.8         Local Pools - APPVol-FARM
3.5.1.9         Users and Groups - APPVol-FARM
4Settings
4.1   Servers
4.1.1      vCenter Servers
4.1.1.1         vcenter-01v.pharmax.local
4.1.2      Datastores
4.1.2.1         Datastores Detailed
4.1.3      ESXi Hosts
4.1.3.1         RegionA01-COMP Cluster
4.1.3.2         RegionHQ-MGMT Cluster
4.1.4      Gateway Servers
4.1.5      Connection Servers
4.1.5.1         General HORIZON-CS-01V Details
4.1.5.2         Authentication HORIZON-CS-01V Details
4.1.5.3         Backup HORIZON-CS-01V Details
4.1.5.4         Certificate Details for HORIZON-CS-01V Details
4.1.5.5         Replication Status for Connection Server HORIZON-CS-01V
4.1.5.6         General HORIZON-CS-02V Details
4.1.5.7         Authentication HORIZON-CS-02V Details
4.1.5.8         Backup HORIZON-CS-02V Details
4.1.5.9         Certificate Details for HORIZON-CS-02V Details
4.1.5.10         Replication Status for Connection Server HORIZON-CS-02V
4.2   Domains
4.2.1      Domain Accounts
4.2.2      Connection Server
4.3   Certificate Management
4.4   Product Licensing and Usage
4.4.1      Licensing
4.4.2      Usage
4.4.3      Customer Experience Program
4.5   Global Settings
4.5.1      General Settings
4.5.2      Security Settings
4.5.3      Client Restriction Settings
4.6   Registered Machines
4.6.1      RDS Hosts
4.6.1.1         RDS Hosts Details
4.7   Administrators
4.7.1      Administrators and Groups
4.7.1.1         Administrators Users and Groups Details for 4256122656SA
4.7.2      Role Privileges
4.7.3      Role Privileges Details
4.7.4      Role Permissions
4.7.5      Access Groups
4.7.5.1         Access Groups Details
4.7.6      Federation Access Groups
4.8   Cloud Pod Architecture
4.9   Site
4.10   Event Configuration
4.10.1      Event Database
4.10.2      Syslog Configuration
4.10.3      Events to File System
4.11   Global Policies

-
VMware Horizon As Built Report - v1.1

1 HORIZON-CS-01V

1.1 Users and Groups

The following section provides information about the permissions that control which remote desktops and applications your users can access.

1.1.1 Local Entitlements

The following section provide a summary of local user & groups entitlements.

+
+ + + + + + + + + + + + + + + +
Number of Local Entitlements3
Number of Global Entitlements2
Number of Desktop Pools1
Number of Application Pool7
Number of Farms Pools1
Number of vCenter Servers1
Number of ESXi Hosts3
Number of Datastores9
Number of Active Directory Domains4
Number of UAG Servers1
Number of Connection Servers2
Number of Instant Clone Accounts2
Number of RDS Hosts2
Number of Administrators and Groups8
+
Table 1 - Executive Summary - HORIZON-CS-01V.PHARMAX.LOCAL

+

2 Users and Groups

The following section provides information about the permissions that control which remote desktops and applications your users can access.

2.1 Local Entitlements

The following section provide a summary of local user & groups entitlements.

- - - - + + +
User Principal NameGroup or UserDesktop EntitlementsApplication Entitlements
1255252586SA@pharmax.localUser10
30-mayra1410-distlist1Group03
54-mylovebua-distlist1Group10
jocolon@pharmax.localUser33
AD - SRM Admin GroupGroup04
AD - SRM Recovery GroupGroup04
jocolon@pharmax.localUser13
-
Table 1 - Local Entitlements - horizon-cs-01v.pharmax.local

-

1.1.1.1 Local Entitlements Details

The following section detail per user or group local entitlements.

Jonathan A. Colon Feliciano

+
Table 2 - Local Entitlements - HORIZON-CS-01V.PHARMAX.LOCAL

+

2.1.1 Local Entitlements Details

The following section detail per user or group local entitlements.

Local Entitlement Details - Jonathan A. Colon Feliciano

- @@ -134,247 +180,145 @@ - + - + - - - - -
NameJonathan A. Colon Feliciano
Group or UserUser
SIDS-1-5-21-2867495315-1194516362-180967319-1171
Domainpharmax.local
Ad Distinguished NameCN=Jonathan A. Colon Feliciano,CN=Users,DC=pharmax,DC=local
First NameJonathan
Login Namejocolon
Display Namepharmax.local\jocolon
Long Display Namejocolon@pharmax.local (Jonathan A. Colon Feliciano)
Email--
Emailjocolon@pharmax.local
Kiosk UserNo
Phone--
Description--
in Folder--
In Folder--
User Principal Namejocolon@pharmax.local
Local Machinesvm-01
Local User Persistent Disks--
Local DesktopsFullVirtualMachinesPool, Prueba, RDSPool
User ApplicationsCalculator, Paint, WordPad
-
Table 2 - Local Entitlements Details - Jonathan A. Colon Feliciano

-

1255252586SA

- - - - - - - - - - - - - - - - - - - + +
Name1255252586SA
Group or UserUser
SIDS-1-5-21-2867495315-1194516362-180967319-5008
Domainpharmax.local
Ad Distinguished NameCN=1255252586SA,OU=AWS,OU=Stage,DC=pharmax,DC=local
First Name--
Last Name1255252586SA
Login Name1255252586SA
Display Namepharmax.local\1255252586SA
Long Display Name1255252586SA@pharmax.local (1255252586SA)
Email--
Kiosk UserNo
Phone--
Description--
in Folder--
User Principal Name1255252586SA@pharmax.local
Local MachinesN/A
Local User Persistent Disks--
Local DesktopsManualPool
User ApplicationsN/A
Local DesktopsLinux-Pharmax
User ApplicationsCalculator, Notepad, Paint
-
Table 3 - Local Entitlements Details - 1255252586SA

-

54-mylovebua-distlist1

+
Table 3 - Local Entitlements Details - Jonathan A. Colon Feliciano

+

Local Entitlement Details - AD - SRM Admin Group

- + - - + - - - + + + - + - - + +
Name54-mylovebua-distlist1
NameAD - SRM Admin Group
Group or UserGroup
SIDS-1-5-21-2867495315-1194516362-180967319-7359
Domainpharmax.local
Ad Distinguished NameCN=54-mylovebua-distlist1,OU=BDE,OU=Tier 2,DC=pharmax,DC=local
Ad Distinguished NameCN=AD - SRM Admin Group,CN=Users,DC=pharmax,DC=local
First Name--
Last Name--
Login Name54-mylovebua-distlist1
Display Namepharmax.local\54-mylovebua-distlist1
Long Display Name54-mylovebua-distlist1/pharmax.local
Login NameAD - SRM Admin Group
Display Namepharmax.local\AD - SRM Admin Group
Long Display NameAD - SRM Admin Group/pharmax.local
Email--
Kiosk UserNo
Phone--
Description--
in Folder--
In Folder--
User Principal Name--
Local MachinesN/A
Local User Persistent Disks--
Local DesktopsPrueba
User ApplicationsN/A
Local Desktops--
User ApplicationsCalculator, Notepad, Paint, 7-Zip File Manager, 7-Zip Help, Google Chrome, Google Chrome
-
Table 4 - Local Entitlements Details - 54-mylovebua-distlist1

-

30-mayra1410-distlist1

+
Table 4 - Local Entitlements Details - AD - SRM Admin Group

+

Local Entitlement Details - AD - SRM Recovery Group

- + - - + - - - + + + - + - +
Name30-mayra1410-distlist1
NameAD - SRM Recovery Group
Group or UserGroup
SIDS-1-5-21-2867495315-1194516362-180967319-7396
Domainpharmax.local
Ad Distinguished NameCN=30-mayra1410-distlist1,OU=Groups,OU=HRE,OU=Stage,DC=pharmax,DC=local
Ad Distinguished NameCN=AD - SRM Recovery Group,CN=Users,DC=pharmax,DC=local
First Name--
Last Name--
Login Name30-mayra1410-distlist1
Display Namepharmax.local\30-mayra1410-distlist1
Long Display Name30-mayra1410-distlist1/pharmax.local
Login NameAD - SRM Recovery Group
Display Namepharmax.local\AD - SRM Recovery Group
Long Display NameAD - SRM Recovery Group/pharmax.local
Email--
Kiosk UserNo
Phone--
Description--
in Folder--
In Folder--
User Principal Name--
Local MachinesN/A
Local User Persistent Disks--
Local Desktops--
User ApplicationsCalculator, Paint, WordPad, Calculator, Paint, WordPad
User ApplicationsCalculator, Notepad, Paint, 7-Zip File Manager, 7-Zip Help, Google Chrome, Google Chrome, 7-Zip File Manager, 7-Zip Help, Google Chrome, Google Chrome
-
Table 5 - Local Entitlements Details - 30-mayra1410-distlist1

-

1.1.2 Home Site

The following section provide a summary of user and group home site configuration.

+
Table 5 - Local Entitlements Details - AD - SRM Recovery Group

+

2.2 Home Site

The following section provide a summary of user and group home site configuration.

User or Group NameDomainGroupEmailHome SiteGlobal EntitlementGlobal Application Entitlement
dbuserpharmax.localNo--PHARMAX-HQ----
-
Table 6 - Home Site General - HORIZON-CS-01V

-

1.1.3 Unauthenticated Access

The following section provide a summary of user and group unauthenticated access configuration.

+
Table 6 - Home Site General - HORIZON-CS-01V.PHARMAX.LOCAL

+

2.3 Unauthenticated Access

The following section provide a summary of user and group unauthenticated access configuration.

Login NameUser IDDescriptionHybrid LogonPod Name
2254824036SApharmax.local\2254824036SA----Cluster-HORIZON-CS-01V
447284480SApharmax.local\447284480SA----Cluster-HORIZON-CS-01V
-
Table 7 - Unauthenticated Access - HORIZON-CS-01V

-

1.2 Inventory

The following section provides detailed information about desktop, application, farm pools and global entitlement permissions that control which remote desktops and applications your users can access.

1.2.1 Desktop Pools

The following section details the Desktop Pools configuration for horizon-cs-01v server.

+
Table 7 - Unauthenticated Access - HORIZON-CS-01V.PHARMAX.LOCAL

+

3 Inventory

The following section provides detailed information about desktop, application, farm pools and global entitlement permissions that control which remote desktops and applications your users can access.

3.1 Desktop Pools

The following section details the Desktop Pools configuration for HORIZON-CS-01V.PHARMAX.LOCAL server.

- - - - +
NameTypeProvisioning TypeUser Assignment
FullVirtualMachinesPoolAUTOMATEDFull Virtual MachinesDEDICATED
ManualPoolMANUALFull Virtual MachinesFLOATING
PruebaAUTOMATEDInstant CloneDEDICATED
RDSPoolRDSInstant Clone--
Linux-PharmaxAUTOMATEDInstant CloneFLOATING
-
Table 8 - Desktop Pools - HORIZON-CS-01V

-

1.2.1.1 Desktop Pools Details

1.2.1.1.1 FullVirtualMachinesPool

General

+
Table 8 - Desktop Pools - HORIZON-CS-01V.PHARMAX.LOCAL

+

3.1.1 Desktop Pools Details

3.1.1.1 Pool - Linux-Pharmax

General Summary - Linux-Pharmax

- - + + - + - - + + - -
NameFullVirtualMachinesPool
Display NameFull Virtual Machines Pool
NameLinux-Pharmax
Display NameLinux
Description--
Access GroupGurabo-Sites
Access GroupRoot
EnabledYes
TypeAUTOMATED
Machine SourcevCenter
Provisioning TypeFull Virtual Machines
Machine SourcevCenter(Instant Clone)
Provisioning TypeInstant Clone
Enabled for ProvisioningYes
Client Restrictions EnabledYes
-
Table 9 - General - FullVirtualMachinesPool

-

Settings

- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Max Number of Machines1
Min number of Machines--
Number of Spare Machines1
Connection Server Restrictions--
Stop Provisioning on ErrorYes
Naming MethodPATTERN
Naming Patternfullvm-{n:fixed=2}v
Power PolicyPOWER_OFF
Provisioning TimeUP_FRONT
Automatic Logoff PolicyIMMEDIATELY
Automatic Logoff Minutes--
Allow Users to Reset MachinesYes
Allow Multiple Sessions Per UserNo
Delete or Refresh Machine After LogoffNEVER
Refresh OS Disk After LogoffNEVER
Refresh Period Days for Replica OS Disk--
Refresh Threshold Percentage For Replica OS Disk--
Supported Display ProtocolsBLAST, PCOIP, RDP
Default Display ProtocolBLAST
Allow Users to Choose ProtocolYes
Enable HTML AccessYes
Renderer 3DDISABLED
Enable GRID vGPUsNo
vGPU Grid Profile--
vRam Size MB--
Max Number of Monitors1
Max Resolution of Any One MonitorWUXGA
-
Table 10 - Pool Settings - FullVirtualMachinesPool

-

vCenter Server

- - - - - - - - - - - - - +
Virtual Centervcenter-01v.pharmax.local
TemplateWindows10-Template
DatacenterPHARMAX-VSI-DC
Datacenter Path/PHARMAX-VSI-DC
Host or ClusterRegionHQ-MGMT
Host or Cluster Path/PHARMAX-VSI-DC/host/RegionHQ-MGMT
Resource PoolHorizon Lab
Resource Pool Path/PHARMAX-VSI-DC/host/RegionHQ-MGMT/Resources/Horizon Lab
View Storage AcceleratorYes
Transparent Page Sharing ScopeGLOBAL
NetworksGolden Image network selected
Guest Customization Accounthorizon-ic
Client Restrictions EnabledNo
-
Table 11 - vCenter Server - FullVirtualMachinesPool

-
1.2.1.1.2 ManualPool

General

+
Table 9 - General - Linux-Pharmax

+

Detailed Settings - Linux-Pharmax

- - + + - - - - - -
NameManualPool
Display NameManual Pool Example
NameLinux-Pharmax
Display NameLinux
Description--
Access GroupCISA
EnabledYes
TypeMANUAL
Machine SourcevCenter
Client Restrictions EnabledYes
-
Table 12 - General - ManualPool

-

Settings

- - - - - - - - - - - - - - - - - - -
Power PolicyTAKE_NO_POWER_ACTION
Automatic Logoff PolicyNEVER
Automatic Logoff Minutes--
Allow Users to Reset MachinesNo
Allow Multiple Sessions Per UserNo
Delete or Refresh Machine After LogoffNEVER
Refresh OS Disk After LogoffNEVER
Supported Display ProtocolsBLAST, PCOIP, RDP
Default Display ProtocolPCOIP
Allow Users to Choose ProtocolYes
Enable HTML AccessYes
Renderer 3DSOFTWARE
Enable GRID vGPUsNo
vGPU Grid Profile--
vRam Size MB96
Max Number of Monitors2
Max Resolution of Any One MonitorWUXGA
-
Table 13 - Pool Settings - ManualPool

-

vCenter Server

- - - - -
Virtual Centervcenter-01v.pharmax.local
View Storage AcceleratorYes
Transparent Page Sharing ScopeVM
-
Table 14 - vCenter Server - ManualPool

-
1.2.1.1.3 Prueba

General

- - - - - + - -
NamePrueba
Display NamePrueba Puerto Rico
DescriptionPrueba de VDI
Access GroupPrueba
Access GroupRoot
EnabledYes
TypeAUTOMATED
Machine SourcevCenter(Instant Clone)
Provisioning TypeInstant Clone
Enabled for ProvisioningYes
Client Restrictions EnabledYes
-
Table 15 - General - Prueba

-

Settings

- + - + + + - + - - - - - - + + + + + + + + + + + + + + + + + + + + + - + + @@ -382,267 +326,338 @@
Client Restrictions EnabledNo
Max Number of Machines1
Min number of Machines--
Number of Spare Machines1
Connection Server RestrictionsEXTERNAL,DMZ
Connection Server Restrictions--
Stop Provisioning on ErrorYes
Add Virtual TPM--
Minimum Number of Machines Ready--
Naming MethodPATTERN
Naming Patternvm-{n:fixed=2}
Naming Patternhz-vm-{n:fixed=3}v
Power PolicyALWAYS_POWERED_ON
Provisioning TimeUP_FRONT
Automatic Logoff PolicyNEVER
Automatic Logoff Minutes--
Allow Users to Reset MachinesNo
Allow Multiple Sessions Per UserNo
Delete or Refresh Machine After LogoffNEVER
Refresh OS Disk After LogoffALWAYS
Automatic Logoff PolicyAFTER
Automatic Logoff Minutes30
Allow Users to Reset MachinesYes
Allow Multiple Sessions Per UserYes
Delete or Refresh Machine After LogoffDELETE
Refresh OS Disk After LogoffNEVER
Refresh Period Days for Replica OS Disk--
Refresh Threshold Percentage For Replica OS Disk--
Empty Session Timeout Policy--
Empty Session Timeout Minutes--
Log off After Timeout--
Prelaunch Session Timeout Policy--
Prelaunch Session Timeout Minutes--
Session Timeout Policy--
Category Folder Name--
Client RestrictionsNo
Shortcut Locations--
Allow Users to use Multiple Sessions Per UserYes
Supported Session Types--
Cloud ManagedNo
Cloud AssignedNo
Display Assigned Machine NameNo
Display Machine AliasNo
Supported Display ProtocolsBLAST, PCOIP, RDP
Default Display ProtocolBLAST
Allow Users to Choose ProtocolYes
Allow Users to Choose ProtocolNo
Enable HTML AccessYes
Enable CollaborationNo
Renderer 3DMANAGE_BY_VSPHERE_CLIENT
Enable GRID vGPUsNo
vGPU Grid Profile--
Max Number of Monitors--
Max Resolution of Any One Monitor--
-
Table 16 - Pool Settings - Prueba

-

vCenter Server

+
Table 10 - Pool Settings - Linux-Pharmax

+

vCenter Server Settings - Linux-Pharmax

- - - - + + + + + + + - - + + + + - + + + + + + + + + + + + + - + + + + + + + +
Virtual Centervcenter-01v.pharmax.local
Parent VMhorizon-tp-01v
Parent VM Path/PHARMAX-VSI-DC/vm/Horizon Lab/horizon-tp-01v
SnapshotLatest
Snapshot Path/VDI-Test/Latest
Parent VMhz-tpl-ubuntu
Parent VM Path/PHARMAX-VSI-DC/vm/Horizon Lab/hz-tpl-ubuntu
Current Number of MachinesLinux-Pharmax
Parent Operating SystemLinux (Ubuntu)
Parent Operating System Architecture64_bit
SnapshotHorizon IC SnapShot
Snapshot Path/Horizon IC SnapShot
DatacenterPHARMAX-VSI-DC
Datacenter Path/PHARMAX-VSI-DC
VM FolderPrueba
VM Folder Path/PHARMAX-VSI-DC/vm/Horizon Lab/Prueba
VM FolderLinux-Pharmax
VM Folder Path/PHARMAX-VSI-DC/vm/Horizon Lab/Linux-Pharmax
Host or ClusterRegionHQ-MGMT
Host or Cluster Path/PHARMAX-VSI-DC/host/RegionHQ-MGMT
Resource PoolHorizon Lab
Resource Pool Path/PHARMAX-VSI-DC/host/RegionHQ-MGMT/Resources/Horizon Lab
DatastoresSSD-VM-HIGH-CAPACITY-PERF-MK
SSD-VM-HIGH-CAPACITY-PERF-KN
Datastores Storage Over-CommitUNBOUNDED, UNBOUNDED
Use VSANNo
Storage Cluster Path--
View Storage AcceleratorYes
Transparent Page Sharing ScopeVM
Replica Disk Datastore Path--
Replica Disk Datastore Path/PHARMAX-VSI-DC/host/RegionHQ-MGMT/SSD-VM-HIGH-CAPACITY-PERF-MK
NetworksGolden Image network selected
Network Card--
Network Label Enabled--
Network Nic Name--
Network Label Names--
Network Max Label Type--
Network Max Label--
Customization TypeCLONE_PREP
Customization Spec Name--
Power off Script Name--
Power off Script Parameters--
Post Synchronization Script Name--
Post Synchronization Script Parameters--
Priming Computer Account--
Guest Customization Accounthorizon-ic
Ad ContainerOU=Finances,OU=VDI-Computers
No Customization Settings--
Sysprep Customization Settings--
Quick Prep Customization Settings--
Ad ContainerOU=Sales,OU=VDI-Computers
Reuse Pre-Existing AccountsNo
Image Management Stream--
Image Management Tag--
Compute Profile--
+
Table 11 - vCenter Server Settings - Linux-Pharmax

+

Pool Machine Summary - Linux-Pharmax

+ +
Machine NameAgent VersionUserHostData StoreBasic State
hz-vm-001v8.10.0--esxsvr-00f.pharmax.localHDD-VM-MED-PERF-02AVAILABLE
-
Table 17 - vCenter Server - Prueba

-
1.2.1.1.4 RDSPool

General

+
Table 12 - Pool Machine Summary - Linux-Pharmax

+

Desktop Pools Entitlements - Linux-Pharmax

+ + +
NameDomainIs Group?
jocolonpharmax.localNo
+
Table 13 - Desktop Pools Entitlements - Linux-Pharmax

+

3.2 Application Pool

The following section details the configuration of Application Pool for HORIZON-CS-01V.PHARMAX.LOCAL server.

+ + + + + + + + +
NameVersionEnabled
7-Zip File Manager--Yes
7-Zip Help--Yes
Calculator10.0.20348.1Yes
Google Chrome--Yes
Google Chrome--Yes
Notepad10.0.20348.1Yes
Paint10.0.20348.1Yes
+
Table 14 - Applications - HORIZON-CS-01V.PHARMAX.LOCAL

+

3.2.1 Application Pool Details

3.2.1.1 Application Summary - 7-Zip File Manager

- - + - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + +
NameRDSPool
Display NameRDS Pool Test
Display Name7-Zip File Manager
Description--
Access GroupGurabo-Sites
EnabledYes
TypeRDS
Machine SourcevCenter(Instant Clone)
Provisioning Type--
Enabled for Provisioning--
Client Restrictions EnabledNo
Global Application EntitlementNo Global Application Entitlement
Enable Anti Affinity RulesNo
Anti-Affinity Patterns--
Anti-Affinity Count--
Enable Pre-LaunchNo
Connection Server Restrictions--
Category Folder--
Client RestrictionsNo
Shortcut Location--
Multi Session ModeDISABLED
Max Multi Sessions--
Cloud BrokeredNo
App Volumes AppYes
App Volumes Packagedd8ed85f-d5d5-4573-809a-f07d8fefae23
Executable PathC:\ProgramData\Microsoft\Windows\Start Menu\Programs\7-Zip\7-Zip File Manager.lnk
Version--
Publisher--
Start Folder--
Argument--
FarmAPP-Farm
File Types--
Auto Update File TypesYes
Other File Types--
Auto Update Other File TypesYes
Access GroupRoot
-
Table 18 - General - RDSPool

-

Settings

+
Table 15 - Application Summary - 7-Zip File Manager

+

3.2.1.2 Application Summary - 7-Zip Help

+ + + + + + + + - - - - - - - - - - - - - - - - - -
Display Name7-Zip Help
Description--
EnabledYes
Global Application EntitlementNo Global Application Entitlement
Enable Anti Affinity RulesNo
Anti-Affinity Patterns--
Anti-Affinity Count--
Enable Pre-LaunchNo
Connection Server Restrictions--
Power Policy--
Automatic Logoff Policy--
Automatic Logoff Minutes--
Allow Users to Reset Machines--
Allow Multiple Sessions Per User--
Delete or Refresh Machine After Logoff--
Refresh OS Disk After Logoff--
Supported Display Protocols--
Default Display Protocol--
Allow Users to Choose Protocol--
Enable HTML Access--
Renderer 3D--
Enable GRID vGPUs--
vGPU Grid Profile--
vRam Size MB--
Max Number of Monitors--
Max Resolution of Any One Monitor--
-
Table 19 - Pool Settings - RDSPool

-

vCenter Server

- - - - - - - - - - - - - - - - - - - - - - - - - -
Virtual Center--
Template--
Parent VM--
Parent VM Path--
Snapshot--
Snapshot Path--
Datacenter--
Datacenter Path--
VM Folder--
VM Folder Path--
Host or Cluster--
Host or Cluster Path--
Resource Pool--
Resource Pool Path--
Datastores--
Datastores Storage Over-Commit--
View Storage AcceleratorNot Supported
Transparent Page Sharing ScopeNot Supported
Replica Disk Datastore Path--
NetworksGolden Image network selected
Customization Type--
Guest Customization Accounthorizon-ic
Ad Container--
Reuse Pre-Existing Accounts--
-
Table 20 - vCenter Server - RDSPool

-

1.2.1.2 Desktop Pool Entitlements

FullVirtualMachinesPool

- - -
NameDomainIs Group?
jocolonpharmax.localNo
-
Table 21 - Desktop Pools Entitlements - FullVirtualMachinesPool

-

ManualPool

- - -
NameDomainIs Group?
1255252586SApharmax.localNo
-
Table 22 - Desktop Pools Entitlements - ManualPool

-

Prueba

- - - -
NameDomainIs Group?
54-mylovebua-distlist1pharmax.localYes
jocolonpharmax.localNo
-
Table 23 - Desktop Pools Entitlements - Prueba

-

RDSPool

- - -
NameDomainIs Group?
jocolonpharmax.localNo
-
Table 24 - Desktop Pools Entitlements - RDSPool

-

1.2.2 Application Pool

The following section details the configuration of Application Pool for horizon-cs-01v server.

- - - - + + + + + + + + + + + + + + + + + + +
NameVersionEnabled
Calculator10.0.17763.771Yes
Paint10.0.17763.1Yes
WordPad10.0.17763.1Yes
Category Folder--
Client RestrictionsNo
Shortcut Location--
Multi Session ModeDISABLED
Max Multi Sessions--
Cloud BrokeredNo
App Volumes AppYes
App Volumes Packagedd8ed85f-d5d5-4573-809a-f07d8fefae23
Executable PathC:\ProgramData\Microsoft\Windows\Start Menu\Programs\7-Zip\7-Zip Help.lnk
Version--
Publisher--
Start Folder--
Argument--
FarmAPP-Farm
File Types--
Auto Update File TypesYes
Other File Types--
Auto Update Other File TypesYes
Access GroupRoot
-
Table 25 - Applications - HORIZON-CS-01V

-

1.2.2.1 Application Pool Details

Calculator

+
Table 16 - Application Summary - 7-Zip Help

+

3.2.1.3 Application Summary - Calculator

- + - - + + + + + + + + + + + + - + - +
Display NameCalculator
Description--
EnabledYes
Global Application EntitlementPHARMAX-APP-ENT
Global Application EntitlementNo Global Application Entitlement
Enable Anti Affinity RulesNo
Anti Affinity Patterns--
Anti Affinity Count--
Anti-Affinity Patterns--
Anti-Affinity Count--
Enable Pre-LaunchNo
Connection Server Restrictions--
Category Folder--
Client RestrictionsNo
Shortcut Location--
Multi Session ModeDISABLED
Max Multi Sessions--
Cloud BrokeredNo
App Volumes AppNo
App Volumes Package--
Executable PathC:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Calculator.lnk
Version10.0.17763.771
Version10.0.20348.1
PublisherMicrosoft Corporation
Start Folder--
Argument--
FarmFARM-Test
FarmAPP-Farm
File Types--
Auto Update File TypesYes
Other File Types--
Auto Update Other File TypesYes
Access GroupRoot
-
Table 26 - Application - Calculator

-

Paint

+
Table 17 - Application Summary - Calculator

+

3.2.1.4 Application Summary - Google Chrome

- + - + - - - - + + + + + + + + + + + + + + + + + + + + + + + +
Display NamePaint
Display NameGoogle Chrome
Description--
EnabledYes
Global Application EntitlementPHARMAX-APP-ENT
Global Application EntitlementNo Global Application Entitlement
Enable Anti Affinity RulesNo
Anti Affinity Patterns--
Anti Affinity Count--
Executable PathC:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk
Version10.0.17763.1
Anti-Affinity Patterns--
Anti-Affinity Count--
Enable Pre-LaunchNo
Connection Server Restrictions--
Category Folder--
Client RestrictionsNo
Shortcut Location--
Multi Session ModeDISABLED
Max Multi Sessions--
Cloud BrokeredNo
App Volumes AppYes
App Volumes Package9f8657fa-a062-40cb-b60f-4e96443ea6eb
Executable PathC:\ProgramData\Microsoft\Windows\Start Menu\Programs\Google Chrome.lnk
Version--
Publisher--
Start Folder--
Argument--
FarmAPP-Farm
File Types--
Auto Update File TypesYes
Other File Types--
Auto Update Other File TypesYes
Access GroupRoot
+
Table 18 - Application Summary - Google Chrome

+

3.2.1.5 Application Summary - Google Chrome

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Display NameGoogle Chrome
Description--
EnabledYes
Global Application EntitlementNo Global Application Entitlement
Enable Anti Affinity RulesNo
Anti-Affinity Patterns--
Anti-Affinity Count--
Enable Pre-LaunchNo
Connection Server Restrictions--
Category Folder--
Client RestrictionsNo
Shortcut Location--
Multi Session ModeDISABLED
Max Multi Sessions--
Cloud BrokeredNo
App Volumes AppYes
App Volumes Package9f8657fa-a062-40cb-b60f-4e96443ea6eb
Executable PathC:\Users\Public\Desktop\Google Chrome.lnk
Version--
Publisher--
Start Folder--
Argument--
FarmAPP-Farm
File Types--
Auto Update File TypesYes
Other File Types--
Auto Update Other File TypesYes
Access GroupRoot
+
Table 19 - Application Summary - Google Chrome

+

3.2.1.6 Application Summary - Notepad

+ + + + + + + + + + + + + + + + + + + + - - + +
Display NameNotepad
Description--
EnabledYes
Global Application EntitlementNo Global Application Entitlement
Enable Anti Affinity RulesNo
Anti-Affinity Patterns--
Anti-Affinity Count--
Enable Pre-LaunchNo
Connection Server Restrictions--
Category Folder--
Client RestrictionsNo
Shortcut Location--
Multi Session ModeDISABLED
Max Multi Sessions--
Cloud BrokeredNo
App Volumes AppNo
App Volumes Package--
Executable PathC:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Notepad.lnk
Version10.0.20348.1
PublisherMicrosoft Corporation
Start Folder--
Argument--
FarmFARM-Test
File Types.tiff, .webp, .jfif, .dib, .jpeg, .png, .bmp, .heif, .rle, .heic, .avci, .jpe, .tif, .ico, .gif, .emf, .jpg, .wmf
FarmAPP-Farm
File Types.log, .ps1, .psd1, .compositefont, .inf, .psm1, .ini, .txt, .scp, .htm, .sct, .wsc, .wtx
Auto Update File TypesYes
Other File Types--
Auto Update Other File TypesYes
Access GroupRoot
-
Table 27 - Application - Paint

-

WordPad

+
Table 20 - Application Summary - Notepad

+

3.2.1.7 Application Summary - Paint

- + - + - - - - + + + + + + + + + + + + + + - - + +
Display NameWordPad
Display NamePaint
Description--
EnabledYes
Global Application EntitlementPHARMAX-APP-ENT
Global Application EntitlementNo Global Application Entitlement
Enable Anti Affinity RulesNo
Anti Affinity Patterns--
Anti Affinity Count--
Executable PathC:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Wordpad.lnk
Version10.0.17763.1
Anti-Affinity Patterns--
Anti-Affinity Count--
Enable Pre-LaunchNo
Connection Server Restrictions--
Category Folder--
Client RestrictionsNo
Shortcut Location--
Multi Session ModeDISABLED
Max Multi Sessions--
Cloud BrokeredNo
App Volumes AppNo
App Volumes Package--
Executable PathC:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Paint.lnk
Version10.0.20348.1
PublisherMicrosoft Corporation
Start Folder--
Argument--
FarmFARM-Test
File Types.odt, .docx, .rtf, .txt
FarmAPP-Farm
File Types.tiff, .heif, .emf, .jfif, .ico, .wmf, .tif, .rle, .gif, .bmp, .webp, .png, .jpeg, .avci, .hif, .jpg, .avif, .jpe, .heic, .dib
Auto Update File TypesYes
Other File Types--
Auto Update Other File TypesYes
Access GroupRoot
-
Table 28 - Application - WordPad

-

1.2.3 Farms

The following section details the Farms configuration for horizon-cs-01v server.

+
Table 21 - Application Summary - Paint

+

3.3 Farm Pools

The following section details the Farms configuration for H server.

- - +
NameTypeEnabled
FARM-DesktopAUTOMATEDYes
FARM-TestAUTOMATEDYes
APP-FarmAUTOMATEDYes
-
Table 29 - Farms - HORIZON-CS-01V

-

1.2.3.1 Farms Details

1.2.3.1.1 FARM-Desktop

General

+
Table 22 - Farms - H

+

3.3.1 Farm Pools Details

3.3.1.1 APP-Farm

General

- - + + + - - + + + +
Pool NameFARM-Desktop
Display NameFARM-Desktop
Pool NameAPP-Farm
Display NameAPP-Farm
Description--
Access GroupRoot
TypeAUTOMATED
SourceINSTANT_CLONE_ENGINE
EnabledYes
DeletingNo
DesktopVMware.Hv.DesktopId
Access GroupGurabo-Sites
Desktop--
App Volumes Server7e133e0a-b37c-401c-973d-f8919059323b
Default Display ProtocolBLAST
Allow Users to Choose ProtocolYes
HTML AccessYes
Enable Grid GPUs--
vGPU Profile--
-
Table 30 - General Information - FARM-Desktop

-

Settings

- - - - - - - - -
Provisioning EnabledYes
Stop Provisioning on ErrorYes
Disconnected Session Timeout Minutes--
Disconnected Session Timeout PolicyNEVER
Empty Session Timeout Minutes1
Empty Session Timeout PolicyAFTER
Log off After TimeoutNo
-
Table 31 - Settings - FARM-Desktop

-

Load Balancing Settings

+
Table 23 - General Information - APP-Farm

+

Load Balancing Settings

- - + +
Use Custom ScriptNo
Include Session CountYes
Cpu Usage Threshold0
Memory UsageThreshold0
CPU Usage Threshold0
Memory Usage Threshold0
Disk Queue Length Threshold0
Disk Read Latency Threshold0
Disk Write Latency Threshold0
-
Table 32 - Load Balancing Settings - FARM-Desktop

-

vCenter Server Settings

- - - - - - - - - - - -
VM folder/PHARMAX-VSI-DC/vm/Horizon Lab/FARM-Desktop
Host Or Cluster Path/PHARMAX-VSI-DC/host/RegionHQ-MGMT
Resource Pool/PHARMAX-VSI-DC/host/RegionHQ-MGMT/Resources/Horizon Lab
Golden Image/PHARMAX-VSI-DC/vm/Horizon Lab/Horizon-RDS-01T
Snapshot/RDS/RDS Latest
Datastore PathsSSD-VM-HIGH-CAPACITY-PERF-MK, SSD-VM-HIGH-CAPACITY-PERF-KN
NetworksDVS-Esxi-VM-Network-DR
Guest CustomizationCLONE_PREP
Guest Customization Domain and Accounthorizon-ic
Allow Reuse of Existing Computer AccountsNo
-
Table 33 - vCenter Settings - FARM-Desktop

-
1.2.3.1.2 FARM-Test

General

- - - - - - - - - - - - - -
Pool NameFARM-Test
Display NameFARM-Test
Description--
TypeAUTOMATED
SourceINSTANT_CLONE_ENGINE
EnabledYes
DeletingNo
Desktop--
Access GroupRoot
Default Display ProtocolBLAST
Allow Users to Choose ProtocolYes
HTML AccessYes
-
Table 34 - General Information - FARM-Test

-

Settings

+
Table 24 - Load Balancing Settings - APP-Farm

+

Provisioning Settings

@@ -652,45 +667,195 @@
Provisioning EnabledYes
Stop Provisioning on ErrorYes
Empty Session Timeout PolicyAFTER
Log off After TimeoutNo
-
Table 35 - Settings - FARM-Test

-

Load Balancing Settings

- - - - - - - - -
Use Custom ScriptNo
Include Session CountYes
Cpu Usage Threshold0
Memory UsageThreshold0
Disk Queue Length Threshold0
Disk Read Latency Threshold0
Disk Write Latency Threshold0
-
Table 36 - Load Balancing Settings - FARM-Test

-

vCenter Server Settings

+
Table 25 - Provisioning Settings - APP-Farm

+

vCenter Server Settings

- + - - - + + + +
VM folder/PHARMAX-VSI-DC/vm/Horizon Lab/FARM-Test
VM folder/PHARMAX-VSI-DC/vm/Horizon Lab/APP-Farm
Host Or Cluster Path/PHARMAX-VSI-DC/host/RegionHQ-MGMT
Resource Pool/PHARMAX-VSI-DC/host/RegionHQ-MGMT/Resources/Horizon Lab
Golden Image/PHARMAX-VSI-DC/vm/Horizon Lab/Horizon-RDS-01T
Snapshot/RDS/RDS Latest
Datastore PathsSSD-VM-HIGH-CAPACITY-PERF-MK, SSD-VM-HIGH-CAPACITY-PERF-KN
Golden Image/PHARMAX-VSI-DC/vm/Horizon Lab/Horizon-RDS-02T
Snapshot/FARM
Datastore PathsSSD-VM-HIGH-CAPACITY-PERF-KN
NetworksGolden Image network selected
+
Table 26 - vCenter Settings - APP-Farm

+

Guest Customization

+ -
Guest CustomizationCLONE_PREP
Guest Customization Domain and Accounthorizon-ic
Allow Reuse of Existing Computer AccountsNo
-
Table 37 - vCenter Settings - FARM-Test

-

1.2.4 Global Entitlements

The following section details the Global Entitlements configuration for horizon-cs-01v server.

+ + + + + + + +
AD ContainerOU=Finances,OU=VDI-Computers
Farm Customization Specification--
Power Off Script Name--
Power Off Script Parameters--
Post Sync Script Name--
Post Sync Script Parameters--
Priming Computer Account--
+
Table 27 - Guest Customization - APP-Farm

+

3.4 Machines

The following section details on all of the machine information for HORIZON-CS-01V.PHARMAX.LOCAL.

3.4.1 vCenter Machine Summary

+ + +
Machine NameAgent VersionUserHostData StoreBasic State
hz-vm-001v8.10.0--esxsvr-00f.pharmax.localHDD-VM-MED-PERF-02AVAILABLE
+
Table 28 - vCenter Machine Summary - HORIZON-CS-01V.PHARMAX.LOCAL

+

3.5 Global Entitlements

The following section details the Global Entitlements configuration for HORIZON-CS-01V.PHARMAX.LOCAL server.

- - + + +
NameTypeNumber of Pods
PHARMAX-APP-ENTApplication1
PHARMAX-Sales-PolicyDesktop1
APPVol-FARM--0
GEZ-Linux--0
Group-Ent--0
-
Table 38 - Global Entitlements - HORIZON-CS-01V

-

1.3 Settings

The following section provides detailed information about the configuration of the components that comprise the Horizon Server infrastructure.

1.3.1 Servers

1.3.1.1 vCenter Servers

The following section details the vCenter Servers configuration for horizon-cs-01v server.

+
Table 29 - Global Entitlements - HORIZON-CS-01V.PHARMAX.LOCAL

+

3.5.1 Global Entitlement Summary Details

3.5.1.1 Summary - Group-Ent

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Display NameGroup-Ent
Alias NameGroup Entitlement
Description--
ScopeSITE
From Home SiteYes
Require Home SiteYes
Multiple Session Auto CleanNo
EnabledYes
Supported Display ProtocolsPCOIP, BLAST, RDP
Default Display ProtocolBLAST
Allow Users to Choose Display ProtocolYes
Allow User to Reset MachinesYes
Enable HTML AccessYes
Allow Multiple Sessions Per UserNo
Enable Pre-Launch--
Connection Server Restrictions--
Enable Prelaunch--
Category Folder Name--
Client RestrictionsYes
Enable CollaborationYes
Shortcut Locations--
Multisession Mode--
Backup GAE--
Display Assigned Machine NameNo
Display Machine AliasNo
Global Access Group IDRoot
+
Table 30 - Detailed Information - Group-Ent

+

3.5.1.2 Local Pools - Group-Ent

+ + + + + + + + + +
Local Desktop Count0
Local Application Count--
Remote Desktop Count0
Remote Application Count--
User Count0
User or Group Count2
User or Group Site Override Count0
Member Pods--
+
Table 31 - Local Pools - HORIZON-CS-01V.PHARMAX.LOCAL

+

3.5.1.3 Users and Groups - Group-Ent

+ + + +
NameUser or GroupDomain
SCCM_AdminsGrouppharmax.local
AD - SRM Admin GroupGrouppharmax.local
+
Table 32 - Users and Groups - Group-Ent

+

3.5.1.4 Summary - GEZ-Linux

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Display NameGEZ-Linux
Alias NameGEZ Linux
Description--
ScopeANY
From Home SiteNo
Require Home SiteNo
Multiple Session Auto CleanNo
EnabledYes
Supported Display ProtocolsPCOIP, BLAST, RDP
Default Display ProtocolPCOIP
Allow Users to Choose Display ProtocolYes
Allow User to Reset MachinesNo
Enable HTML AccessYes
Allow Multiple Sessions Per UserNo
Enable Pre-Launch--
Connection Server Restrictions--
Enable Prelaunch--
Category Folder Name--
Client RestrictionsNo
Enable CollaborationNo
Shortcut Locations--
Multisession Mode--
Backup GAE--
Display Assigned Machine NameNo
Display Machine AliasNo
Global Access Group IDRoot
+
Table 33 - Detailed Information - GEZ-Linux

+

3.5.1.5 Local Pools - GEZ-Linux

+ + + + + + + + + +
Local Desktop Count0
Local Application Count--
Remote Desktop Count0
Remote Application Count--
User Count1
User or Group Count2
User or Group Site Override Count0
Member Pods--
+
Table 34 - Local Pools - HORIZON-CS-01V.PHARMAX.LOCAL

+

3.5.1.6 Users and Groups - GEZ-Linux

+ + + +
NameUser or GroupDomain
Jonathan A. Colon FelicianoUserpharmax.local
AD - SRM Recovery GroupGrouppharmax.local
+
Table 35 - Users and Groups - GEZ-Linux

+

3.5.1.7 Summary - APPVol-FARM

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Display NameAPPVol-FARM
Alias NameAPPVol-FARM
Description--
ScopeANY
From Home SiteNo
Require Home SiteNo
Multiple Session Auto CleanNo
EnabledYes
Supported Display ProtocolsPCOIP, BLAST
Default Display ProtocolPCOIP
Allow Users to Choose Display ProtocolYes
Allow User to Reset Machines--
Enable HTML AccessYes
Allow Multiple Sessions Per User--
Enable Pre-LaunchNo
Connection Server Restrictions--
Enable PrelaunchNo
Category Folder Name--
Client RestrictionsNo
Enable Collaboration--
Shortcut Locations--
Multisession ModeENABLED_DEFAULT_OFF
Backup GAE--
Display Assigned Machine Name--
Display Machine Alias--
Global Access Group IDRoot
+
Table 36 - Detailed Information - APPVol-FARM

+

3.5.1.8 Local Pools - APPVol-FARM

+ + + + + + + + + +
Local Desktop Count--
Local Application Count0
Remote Desktop Count--
Remote Application Count0
User Count1
User or Group Count3
User or Group Site Override Count0
Member Pods--
+
Table 37 - Local Pools - HORIZON-CS-01V.PHARMAX.LOCAL

+

3.5.1.9 Users and Groups - APPVol-FARM

+ + + + +
NameUser or GroupDomain
Jonathan A. Colon FelicianoUserpharmax.local
AdministratorsGrouppharmax.local
Backup OperatorsGrouppharmax.local
+
Table 38 - Users and Groups - APPVol-FARM

+

4 Settings

The following section provides detailed information about the configuration of the components that comprise the Horizon Server infrastructure.

4.1 Servers

4.1.1 vCenter Servers

The following section details the vCenter Servers configuration for HORIZON-CS-01V.PHARMAX.LOCAL server.

- - +
NameVersionBuild NumberAPI VersionProvisioning Enabled
vcenter-01v.pharmax.local7.0.3201505887.0.3.0Yes
vcenter-02v.pharmax.local7.0.3201505887.0.3.0Yes
vcenter-01v.pharmax.local8.0.2226172218.0.2.0Yes
Table 39 - vCenter - HORIZON-CS-01V

-
1.3.1.1.1 vcenter-01v.pharmax.local
+

4.1.1.1 vcenter-01v.pharmax.local

@@ -711,124 +876,44 @@
Namevcenter-01v.pharmax.local
Description--
Storage Accelerator Default Cache Size1024MB
Table 40 - vCenter Server Details - vcenter-01v.pharmax.local

-

Storage Accelerator Overrides

+

Storage Accelerator Overrides

DatacenterClusterHostCache Size
PHARMAX-VSI-DCRegionB01-vSANvsan-01b.pharmax.local2048MB
PHARMAX-VSI-DCRegionHQ-MGMTesxsvr-00f.pharmax.local4096MB
Table 41 - Storage Accelerator Overrides - vcenter-01v.pharmax.local

-
1.3.1.1.2 vcenter-02v.pharmax.local
- - - - - - - - - - - - - - - - - - -
Namevcenter-02v.pharmax.local
Description--
Certificate Override--
Provisioning EnabledYes
Reclaim Disk SpaceYes
Port443
User SSLYes
User Nameadministrator@vsphere.local
TypeVIRTUAL_CENTER
TCP Port Number443
Max Concurrent Provisioning Operations20
Max Concurrent Power Operations50
Max Concurrent View Composer Maintenance Operations0
Max Concurrent View Composer Provisioning Operations12
Max Concurrent Instant Clone Engine Provisioning Operations20
Storage Acceleration EnabledYes
Storage Accelerator Default Cache Size1024MB
-
Table 42 - vCenter Server Details - vcenter-02v.pharmax.local

-

Storage Accelerator Overrides

- - -
DatacenterClusterHostCache Size
PHARMAX-VSI-DC-DRRegionA01-DRdisaster-01a.pharmax.local100MB
-
Table 43 - Storage Accelerator Overrides - vcenter-02v.pharmax.local

-

1.3.1.2 ESXi Hosts

The following section details the hardware information of ESXi Hosts for horizon-cs-01v server.

1.3.1.2.1 RegionA01-DR Cluster
- - -
NameVersionAPI VersionStatus
disaster-01a.pharmax.local----NOT_RESPONDING
-
Table 44 - ESXI Hosts - RegionA01-DR

-

disaster-01a.pharmax.local Details

- - - - - - -
Cpu Cores2
Cpu in Mhz3408
Memory Size8GB
VGPU Types--
VDI Machines0
-
Table 45 - ESXI Hosts - disaster-01a.pharmax.local

-
1.3.1.2.2 RegionHQ-MGMT Cluster
- - -
NameVersionAPI VersionStatus
esxsvr-00f.pharmax.local7.0.37.0.3.0CONNECTED
-
Table 46 - ESXI Hosts - RegionHQ-MGMT

-

esxsvr-00f.pharmax.local Details

- - - - - - -
Cpu Cores4
Cpu in Mhz3408
Memory Size64GB
VGPU Types--
VDI Machines2
-
Table 47 - ESXI Hosts - esxsvr-00f.pharmax.local

-
1.3.1.2.3 RegionA01-COMP Cluster
- - - -
NameVersionAPI VersionStatus
comp-01a.pharmax.local----NOT_RESPONDING
comp-02a.pharmax.local----NOT_RESPONDING
-
Table 48 - ESXI Hosts - RegionA01-COMP

-

comp-02a.pharmax.local Details

- - - - - - -
Cpu Cores2
Cpu in Mhz3408
Memory Size8GB
VGPU Types--
VDI Machines0
-
Table 49 - ESXI Hosts - comp-02a.pharmax.local

-

comp-01a.pharmax.local Details

- - - - - - -
Cpu Cores2
Cpu in Mhz3408
Memory Size8GB
VGPU Types--
VDI Machines0
-
Table 50 - ESXI Hosts - comp-01a.pharmax.local

-

1.3.1.3 Datastores

+

4.1.2 Datastores

- - - +
NameAccessible
DR_VM_DATASTORENo
esx-00fYes
HDD-VM-ISO-LOW-PERFYes
HDD-VM-MED-PERF-01Yes
HDD-VM-MED-PERF-02Yes
HQ_VM_DATASTORENo
NVME-VFLASH-01Yes
NVME-VM-HIGH-PERF-01Yes
SRM_HQ_REPLICATED_01No
SSD-VM-HIGH-CAPACITY-PERF-KNYes
SSD-VM-HIGH-CAPACITY-PERF-MKYes
TrueNAS_VM_DATA (1)No
-
Table 51 - Datastores - HORIZON-CS-01V

-
1.3.1.3.1 Datastores Detailed

DR_VM_DATASTORE

+
Table 42 - Datastores - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.1.2.1 Datastores Detailed

TrueNAS_VM_DATA (1)

- - - - + + + +
Path/PHARMAX-VSI-DC-DR/DR_VM_DATASTORE
TypeVMFS
Capacity50GB
Free Space48GB
Path/PHARMAX-VSI-DC/TrueNAS_VM_DATA (1)
TypeNFS41
Capacity0GB
Free Space0GB
AccessibleNo
-
Table 52 - Datastores Details - DR_VM_DATASTORE

-

NVME-VM-HIGH-PERF-01

+
Table 43 - Datastores Details - TrueNAS_VM_DATA (1)

+

NVME-VM-HIGH-PERF-01

- +
Path/PHARMAX-VSI-DC/NVME-VM-HIGH-PERF-01
TypeVMFS
Capacity477GB
Free Space170GB
Free Space287GB
AccessibleYes
-
Table 53 - Datastores Details - NVME-VM-HIGH-PERF-01

-

esx-00f

+
Table 44 - Datastores Details - NVME-VM-HIGH-PERF-01

+

esx-00f

@@ -836,108 +921,121 @@
Path/PHARMAX-VSI-DC/esx-00f
TypeVMFS
Free Space111GB
AccessibleYes
-
Table 54 - Datastores Details - esx-00f

-

HDD-VM-ISO-LOW-PERF

+
Table 45 - Datastores Details - esx-00f

+

HDD-VM-ISO-LOW-PERF

- +
Path/PHARMAX-VSI-DC/HDD-VM-ISO-LOW-PERF
TypeVMFS
Capacity931GB
Free Space244GB
Free Space260GB
AccessibleYes
-
Table 55 - Datastores Details - HDD-VM-ISO-LOW-PERF

-

SSD-VM-HIGH-CAPACITY-PERF-MK

+
Table 46 - Datastores Details - HDD-VM-ISO-LOW-PERF

+

SSD-VM-HIGH-CAPACITY-PERF-MK

- +
Path/PHARMAX-VSI-DC/SSD-VM-HIGH-CAPACITY-PERF-MK
TypeVMFS
Capacity931GB
Free Space639GB
Free Space710GB
AccessibleYes
-
Table 56 - Datastores Details - SSD-VM-HIGH-CAPACITY-PERF-MK

-

SSD-VM-HIGH-CAPACITY-PERF-KN

+
Table 47 - Datastores Details - SSD-VM-HIGH-CAPACITY-PERF-MK

+

SSD-VM-HIGH-CAPACITY-PERF-KN

- +
Path/PHARMAX-VSI-DC/SSD-VM-HIGH-CAPACITY-PERF-KN
TypeVMFS
Capacity894GB
Free Space624GB
Free Space513GB
AccessibleYes
-
Table 57 - Datastores Details - SSD-VM-HIGH-CAPACITY-PERF-KN

-

HDD-VM-MED-PERF-01

+
Table 48 - Datastores Details - SSD-VM-HIGH-CAPACITY-PERF-KN

+

HDD-VM-MED-PERF-01

- +
Path/PHARMAX-VSI-DC/HDD-VM-MED-PERF-01
TypeVMFS
Capacity3726GB
Free Space2636GB
Free Space1892GB
AccessibleYes
-
Table 58 - Datastores Details - HDD-VM-MED-PERF-01

-

HDD-VM-MED-PERF-02

+
Table 49 - Datastores Details - HDD-VM-MED-PERF-01

+

HDD-VM-MED-PERF-02

- +
Path/PHARMAX-VSI-DC/HDD-VM-MED-PERF-02
TypeVMFS
Capacity3726GB
Free Space2496GB
Free Space2055GB
AccessibleYes
-
Table 59 - Datastores Details - HDD-VM-MED-PERF-02

-

NVME-VFLASH-01

+
Table 50 - Datastores Details - HDD-VM-MED-PERF-02

+

NVME-VFLASH-01

- +
Path/PHARMAX-VSI-DC/NVME-VFLASH-01
TypeVMFS
Capacity238GB
Free Space94GB
Free Space114GB
AccessibleYes
-
Table 60 - Datastores Details - NVME-VFLASH-01

-

SRM_HQ_REPLICATED_01

+
Table 51 - Datastores Details - NVME-VFLASH-01

+

4.1.3 ESXi Hosts

The following section details the hardware information of ESXi Hosts for HORIZON-CS-01V.PHARMAX.LOCAL server.

4.1.3.1 RegionA01-COMP Cluster

+ + + +
NameVersionAPI VersionStatus
192.168.7.124----NOT_RESPONDING
comp-01a.pharmax.local----NOT_RESPONDING
+
Table 52 - ESXI Hosts - RegionA01-COMP

+

192.168.7.124 Details

- - - - - + + + + +
Path/PHARMAX-VSI-DC/SRM_HQ_REPLICATED_01
TypeVMFS
Capacity50GB
Free Space48GB
AccessibleNo
CPU Cores2
CPU in Mhz3408
Memory Size16GB
vGPU Types--
VDI Machines0
-
Table 61 - Datastores Details - SRM_HQ_REPLICATED_01

-

HQ_VM_DATASTORE

+
Table 53 - ESXI Hosts - 192.168.7.124

+

comp-01a.pharmax.local Details

- - - - - + + + + +
Path/PHARMAX-VSI-DC/HQ_VM_DATASTORE
TypeVMFS
Capacity50GB
Free Space48GB
AccessibleNo
CPU Cores2
CPU in Mhz3408
Memory Size16GB
vGPU Types--
VDI Machines0
-
Table 62 - Datastores Details - HQ_VM_DATASTORE

-

1.3.1.4 Active Directory Domains

The following section summarizes the configuration of Active Directory Domains for horizon-cs-01v server.

- - - - +
Table 54 - ESXI Hosts - comp-01a.pharmax.local

+

4.1.3.2 RegionHQ-MGMT Cluster

Domain DNS NameStatusTrust RelationshipConnection Status
uia.localERRORTWOWAY_FORESTUNCONTACTABLE
pharmax.localOKPRIMARYDOMAINFULLYACCESSIBLE
acad.pharmax.localERRORTWOWAY_FORESTUNCONTACTABLE
+ +
NameVersionAPI VersionStatus
esxsvr-00f.pharmax.local8.0.28.0.2.0CONNECTED
-
Table 63 - Active Directory Domains - HORIZON-CS-01V

-

1.3.1.5 UAG Servers

The following section details the UAG Servers information for horizon-cs-01v server.

+
Table 55 - ESXI Hosts - RegionHQ-MGMT

+

esxsvr-00f.pharmax.local Details

+ + + + + + +
CPU Cores4
CPU in Mhz3408
Memory Size64GB
vGPU Types--
VDI Machines1
+
Table 56 - ESXI Hosts - esxsvr-00f.pharmax.local

+

4.1.4 Gateway Servers

The following section details the Gateway Servers information for HORIZON-CS-01V.PHARMAX.LOCAL.

- +
NameIPVersionTypeZone Internal
Horizon-UAG-01V192.168.7.413.9UAGNo
Horizon-UAG-01V------No
-
Table 64 - UAG Servers - HORIZON-CS-01V

-

1.3.1.6 Connection Servers

The following section details the configuration of Connection Servers for horizon-cs-01v server.

+
Table 57 - Gateway Servers - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.1.5 Connection Servers

The following section details the configuration of Connection Servers for HORIZON-CS-01V.PHARMAX.LOCAL server.

- - + +
NameVersionEnabled
HORIZON-CS-01V8.3.0-18294467Yes
HORIZON-CS-02V8.3.0-18294467Yes
HORIZON-CS-01V8.11.0-22629722Yes
HORIZON-CS-02V8.11.0-22629722Yes
-
Table 65 - Connection Servers - HORIZON-CS-01V

-
1.3.1.6.1 HORIZON-CS-01V Details
+
Table 58 - Connection Servers - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.1.5.1 General HORIZON-CS-01V Details

- - + + - - + + @@ -945,9 +1043,12 @@ + + +
NameHORIZON-CS-01V
FQDNHorizon-CS-01V.pharmax.local
Server Addresshttps://Horizon-CS-01V.pharmax.local:443
Version8.3.0-18294467
Server Addresshttps://horizon-cs-01v.pharmax.local:443
Version8.11.0-22629722
EnabledYes
Tags--
External URLhttps://Horizon-CS-01V.pharmax.local:443
External PCoIP URL192.168.7.239:4172
Auxillary External PCoIP IPv4 Address--
External PCoIP URL192.168.7.202:4172
Auxiliary External PCoIP IPv4 Address--
External App Blast URLhttps://Horizon-CS-01V.pharmax.local:8443
Local Connection ServerYes
Bypass TunnelNo
Bypass App Blast GatewayNo
IP ModeIPv4
FIPs Mode EnabledNo
Replication StatusOK
Current CPU Usage Percentage3%
Current Memory Usage Percentage76%
-
Table 66 - Connection Servers - HORIZON-CS-01V

-

Authentication

+
Table 59 - Connection Servers - HORIZON-CS-01V

+

4.1.5.2 Authentication HORIZON-CS-01V Details

@@ -962,42 +1063,73 @@ - + + + + + + + + +
Smart Card SupportOPTIONAL
Log off When Smart Card RemovedNo
Radius SSONo
SAML SupportDISABLED
SAML Authenticator--
SAML Authenticators--
SAML Authenticator Description--
SAML Trigger Mode--
SAML Password Mode--
SAML Authenticator Type--
SAML Metadata URL--
SAML Administrator URL--
SAML Static Meta Data--
Unauthenticated Access Config EnabledNo
Unauthenticated Access Default User--
Unauthenticated Access User Idle Timeout10
Unauthenticated Access Client Puzzle Difficulty21
Block Unsupported ClientsNo
-
Table 67 - Connection Servers - HORIZON-CS-01V

-

Backup

+
Table 60 - Authentication - HORIZON-CS-01V

+

4.1.5.3 Backup HORIZON-CS-01V Details

- - + +
Automatic Backup FrequencyEvery day
Max Number of Backups10
Last Backup Time--
Last Backup Status--
Last Backup Time12/15/2023 00:00:10
Last Backup StatusOK
Folder LocationC:\ProgramData\VMware\VDM\backups
-
Table 68 - Connection Servers - HORIZON-CS-01V

-
1.3.1.6.2 HORIZON-CS-02V Details
+
Table 61 - Backup - HORIZON-CS-01V

+

4.1.5.4 Certificate Details for HORIZON-CS-01V Details

+ + + + + + + + + +
Connection ServerHORIZON-CS-01V
Self-Signed CertificateNo
Certificate SubjectCN=Horizon-CS-01V, OU=IT, O=PHARMAX, L=CAYEY, S=PR, C=US
Certificate IssuerCN=pharmax-SERVER-DC-01V-CA, DC=pharmax, DC=local
Certificate Not Before04/10/2023 11:03:20
Certificate Not After01/25/2025 19:45:15
Certificate SANs--
Certificate ThumbprintA9470E4EBEED26CB71BD870E6E1E4607809E5122
+
Table 62 - Certificate Details for - HORIZON-CS-01V

+

4.1.5.5 Replication Status for Connection Server HORIZON-CS-01V

+ + + + + +
Connection ServerHORIZON-CS-01V
Replication PartnerHORIZON-CS-02V
StatusOK
Message--
+
Table 63 - Connection Servers Replication- HORIZON-CS-01V

+

4.1.5.6 General HORIZON-CS-02V Details

- - - + + + - - - - + + + + - + + + +
NameHORIZON-CS-02V
FQDNHORIZON-CS-02V.pharmax.local
Server Addresshttps://HORIZON-CS-02V.pharmax.local:443
Version8.3.0-18294467
FQDNHorizon-CS-02V.pharmax.local
Server Addresshttps://horizon-cs-02v.pharmax.local:443
Version8.11.0-22629722
EnabledYes
Tags--
External URLhttps://HORIZON-CS-02V.pharmax.local:443
External PCoIP URL192.168.7.232:4172
Auxillary External PCoIP IPv4 Address--
External App Blast URLhttps://HORIZON-CS-02V.pharmax.local:8443
External URLhttps://Horizon-CS-02V.pharmax.local:443
External PCoIP URL192.168.7.63:4172
Auxiliary External PCoIP IPv4 Address--
External App Blast URLhttps://Horizon-CS-02V.pharmax.local:8443
Local Connection ServerNo
Bypass TunnelYes
Bypass TunnelNo
Bypass PCoIP GatewayYes
Bypass App Blast GatewayNo
IP ModeIPv4
FIPs Mode EnabledNo
Replication StatusOK
Current CPU Usage Percentage3%
Current Memory Usage Percentage73%
-
Table 69 - Connection Servers - HORIZON-CS-02V

-

Authentication

+
Table 64 - Connection Servers - HORIZON-CS-02V

+

4.1.5.7 Authentication HORIZON-CS-02V Details

@@ -1012,46 +1144,97 @@ - + + + + + + + - + + +
Smart Card SupportOPTIONAL
Log off When Smart Card RemovedNo
Radius SSONo
SAML SupportDISABLED
SAML Authenticator--
SAML Authenticators--
SAML Authenticator Description--
SAML Trigger Mode--
SAML Password Mode--
SAML Authenticator Type--
SAML Metadata URL--
SAML Administrator URL--
SAML Static Meta Data--
Unauthenticated Access Config EnabledNo
Unauthenticated Access Default User--
Unauthenticated Access User Idle Timeout0
Unauthenticated Access User Idle Timeout10
Unauthenticated Access Client Puzzle Difficulty21
Block Unsupported ClientsNo
-
Table 70 - Connection Servers - HORIZON-CS-02V

-

Backup

+
Table 65 - Authentication - HORIZON-CS-02V

+

4.1.5.8 Backup HORIZON-CS-02V Details

- +
Automatic Backup FrequencyEvery day
Max Number of Backups10
Last Backup Time08/15/2022 16:48:07
Last Backup Time12/15/2023 00:00:10
Last Backup StatusOK
Folder LocationC:\ProgramData\VMware\VDM\backups
-
Table 71 - Connection Servers - HORIZON-CS-02V

-

1.3.2 Instant Clone Accounts

The following section details the Instant Clone Accounts configuration for horizon-cs-01v server.

+
Table 66 - Backup - HORIZON-CS-02V

+

4.1.5.9 Certificate Details for HORIZON-CS-02V Details

+ + + + + + + + + +
Connection ServerHORIZON-CS-02V
Self-Signed CertificateYes
Certificate SubjectCN=Horizon-CS-02V.pharmax.local, OU=VMware Horizon View default certificate, O="VMware, Inc."
Certificate IssuerCN=Horizon-CS-02V.pharmax.local, OU=VMware Horizon View default certificate, O="VMware, Inc."
Certificate Not Before04/10/2023 12:19:45
Certificate Not After07/13/2025 12:19:45
Certificate SANs--
Certificate ThumbprintB9AE51BC10F4D3FDE367640A687DB24032290C9D
+
Table 67 - Certificate Details for - HORIZON-CS-02V

+

4.1.5.10 Replication Status for Connection Server HORIZON-CS-02V

+ + + + + +
Connection ServerHORIZON-CS-02V
Replication PartnerHORIZON-CS-01V
StatusOK
Message--
+
Table 68 - Connection Servers Replication- HORIZON-CS-02V

+

4.2 Domains

4.2.1 Domain Accounts

The following section details the Domain Accounts configuration for HORIZON-CS-01V.PHARMAX.LOCAL server.

User NameDomain Name
horizon-icpharmax.local
jocolonpharmax.local
-
Table 72 - Instant Clone Domain Accounts - HORIZON-CS-01V

-

1.3.3 Product Licenses

The following section details the Product License information for horizon-cs-01v server.

+
Table 69 - Domain Accounts - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.2.2 Connection Server

The following section shows connection servers domains for HORIZON-CS-01V.PHARMAX.LOCAL environment.

+ + + + + +
Domain DNS NameStatusTrust RelationshipConnection Status
acad.pharmax.localERRORTWOWAY_FORESTUNCONTACTABLE
lab.localERRORTWOWAYUNCONTACTABLE
pharmax.localOKPRIMARYDOMAINFULLYACCESSIBLE
uia.localERRORTWOWAY_FORESTUNCONTACTABLE
+
Table 70 - Connection Server- HORIZON-CS-01V.PHARMAX.LOCAL

+

4.3 Certificate Management

The following section details on the certificate management information for HORIZON-CS-01V.PHARMAX.LOCAL.

+ + + + + + + + +
Self-Signed CertificateNo
Certificate SubjectCN=Horizon-CS-01V, OU=IT, O=PHARMAX, L=CAYEY, S=PR, C=US
Certificate IssuerCN=pharmax-SERVER-DC-01V-CA, DC=pharmax, DC=local
Certificate Not Before04/10/2023 11:03:20
Certificate Not After01/25/2025 19:45:15
Certificate SANs--
Certificate ThumbprintA9470E4EBEED26CB71BD870E6E1E4607809E5122
+
Table 71 - Certificate Management - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.4 Product Licensing and Usage

The following section details the product license and usage information for HORIZON-CS-01V.PHARMAX.LOCAL server.

4.4.1 Licensing

- - - + + - + - -
License EditionHORIZON_ENTERPRISE_NAMED_USER
Is LicensedYes
License KeyVH08K-XXXXX-XXXXX-XXXXX-AJWJ0
License Expiration3/31/2023
License KeyZ428Q-XXXXX-XXXXX-XXXXX-C9K30
License Expiration4/10/2024
Composer enabledNo
Desktop Launching enabledYes
Application Launching enabledYes
Instant Clone enabledYes
HelpDesk enabledYes
Helpdesk enabledYes
Collaboration enabledYes
License Usage ModelNAMED_USER
-
Table 73 - Product Licenses - HORIZON-CS-01V

-

1.3.3.1 Product License Usage

+ + + + + + +
License EditionHORIZON_ENTERPRISE_CONCURRENT_USER
License Usage ModelCONCURRENT_USER
License ModeDEFAULT
Grace Period Days--
Subscription Slice Expiry--
License Health--
+
Table 72 - Licensing - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.4.2 Usage

- + @@ -1060,16 +1243,24 @@
NameCurrent UsageHighest Usage
Total Concurrent Connections01
Total Named Users14--
Total Named Users17--
Total Concurrent Sessions01
Concurrent Full Vm Sessions01
Concurrent Linked Clone Sessions00
Concurrent Collaborative Sessions00
Total Collaborators00
-
Table 74 - Product Licenses Usage - HORIZON-CS-01V

-

1.3.4 Global Settings

The following section details the Global Settings configuration for horizon-cs-01v server.

+
Table 73 - Usage - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.4.3 Customer Experience Program

+ + + + + +
CEIP EnabledYes
Company SizeSIZE_1_100
GeolocationAMERICA_NORTH
VerticalSERVICES
+
Table 74 - Customer Experience Program - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.5 Global Settings

The following section details the Global Settings configuration for HORIZON-CS-01V.PHARMAX.LOCAL server.

4.5.1 General Settings

- - + + @@ -1080,86 +1271,108 @@ + + + + + + + + + + + + + + + + +
Client Session Time Out PolicyNEVER
Client Max Session Time Minutes 600
Client Idle Session Timeout PolicyNEVER
Client Idle Session Timeout Minutes--
Client Session Timeout Minutes 1200
Desktop SSO Timeout PolicyDISABLE_AFTER
Desktop SSO Timeout Minutes15
Desktop SSO Timeout PolicyALWAYS_ENABLED
Desktop SSO Timeout Minutes--
Application SSO Timeout PolicyALWAYS_ENABLED
Application SSO Timeout Minutes--
View API Session Timeout Minutes10
Enable Server in Single User ModeNo
Store CAL on BrokerYes
Store CAL on ClientYes
Enable UI User Name CachingYes
Console Session Timeout in Minutes30
Enable Automatic Status UpdatesNo
Send Domain ListYes
Enable Credential Cleanup for HTML AccessNo
Hide Server Information In ClientNo
Hide Domain List In ClientNo
Enable Multi Factor ReauthenticationNo
Disconnect Warning Time0
Disconnect Warning MessageYour virtual session is going to be logged off. Please save your work.
Disconnect MessageYour session has expired. Please re-connect to the portal and restart the session.
Display Pre-login Admin BannerNo
Pre-Login Admin Banner HeaderAttention
Pre-Login Admin Banner MessageOn proceeding, you agree that you fully comply with the laws of this organisation.
Enforce CSRF Protection--
Enforce E2E EncryptionNo
+
Table 75 - Global Settings - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.5.2 Security Settings

+ + + - +
Reauthenticate Secure Tunnel After InterruptionNo
Disallow Enhanced Security ModeNo
No Managed CertsNo
Message Security ModeENHANCED
Message Security StatusREADY
Message Security StatusENHANCED
Enable IP Sec for Security Server PairingNo
-
Table 75 - Global Settings - HORIZON-CS-01V

-

1.3.4.1 Client Restriction Settings

+
Table 76 - Security Settings - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.5.3 Client Restriction Settings

-
TypeVersionWarn Specific VersionsBlock Specific Versions
LINUX--5.5.05.1.0
WINDOWS--5.5.0--
CHROME--5.5.0--
ANDROID--5.5.0--
IOS--5.5.0--
MAC--5.5.0--
-
Table 76 - Client Restriction Settings - HORIZON-CS-01V

-

1.3.5 Registered Machines

The following section provides information of Registered Machines for horizon-cs-01v server.

1.3.5.1 RDS Hosts

The following section details the RDS Hosts configuration for horizon-cs-01v server.

+
Table 77 - Client Restriction Settings - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.6 Registered Machines

The following section provides information of Registered Machines for HORIZON-CS-01V.PHARMAX.LOCAL server.

4.6.1 RDS Hosts

The following section details the RDS Hosts configuration for HORIZON-CS-01V.PHARMAX.LOCAL server.

- - + +
NameFarm NameStatus
farm-01FARM-TestPROVISIONED
vm-01-hrFARM-DesktopPROVISIONED
app-farm-02APP-FarmAVAILABLE
app-farm-01APP-FarmAVAILABLE
-
Table 77 - RDS Hosts - HORIZON-CS-01V

-
1.3.5.1.1 RDS Hosts Details

farm-01

+
Table 78 - RDS Hosts - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.6.1.1 RDS Hosts Details

app-farm-02

- - - + + + - + - - - + + + - + - - + + - +
Namefarm-01
Descriptionfarm-01 created by View Pool Controller
Farm NameFARM-Test
Nameapp-farm-02
Descriptionapp-farm-02 created by View Pool Controller
Farm NameAPP-Farm
Desktop Pool Name--
Farm TypeAUTOMATED
Access Group--
Message Security ModeENABLED
Message Security ModeENHANCED
Message Security Enhanced Mode SupportedYes
Operating SystemUnknown
Agent Version--
Agent Build Number--
Operating SystemWindows Server 2016 or above
Agent Version8.11.0
Agent Build Number22661444
Remote Experience Agent Version--
Remote Experience Agent Build Number--
Remote Experience Agent Build Number22661444
Max Sessions TypeUNLIMITED
Max Sessions Set By Admin--
Agent Max Sessions TypeLIMITED
Agent Max Sessions Set By Admin1
Agent Max Sessions TypeUNLIMITED
Agent Max Sessions Set By Admin--
EnabledYes
StatusPROVISIONED
StatusAVAILABLE
-
Table 78 - RDS Host - farm-01

-

vm-01-hr

+
Table 79 - RDS Host - app-farm-02

+

app-farm-01

- - - - + + + + - + - - - + + + - + - - + + - +
Namevm-01-hr
Descriptionvm-01-hr created by View Pool Controller
Farm NameFARM-Desktop
Desktop Pool NameRDS Pool Test
Nameapp-farm-01
Descriptionapp-farm-01 created by View Pool Controller
Farm NameAPP-Farm
Desktop Pool Name--
Farm TypeAUTOMATED
Access Group--
Message Security ModeENABLED
Message Security ModeENHANCED
Message Security Enhanced Mode SupportedYes
Operating SystemUnknown
Agent Version--
Agent Build Number--
Operating SystemWindows Server 2016 or above
Agent Version8.11.0
Agent Build Number22661444
Remote Experience Agent Version--
Remote Experience Agent Build Number--
Remote Experience Agent Build Number22661444
Max Sessions TypeUNLIMITED
Max Sessions Set By Admin--
Agent Max Sessions TypeLIMITED
Agent Max Sessions Set By Admin1
Agent Max Sessions TypeUNLIMITED
Agent Max Sessions Set By Admin--
EnabledYes
StatusPROVISIONED
StatusAVAILABLE
-
Table 79 - RDS Host - vm-01-hr

-

1.3.6 Administrators

1.3.6.1 Administrators and Groups

The following section details the configuration of Administrators and Groups for horizon-cs-01v server.

+
Table 80 - RDS Host - app-farm-01

+

4.7 Administrators

4.7.1 Administrators and Groups

The following section details the configuration of Administrators and Groups for HORIZON-CS-01V.PHARMAX.LOCAL server.

- - - - - - - -
Display NameTypePermission Role
pharmax.local\12-051-distlist1GroupLocal, Administrators, (Read, only)
pharmax.local\4256122656SAUserInventory, Administrators
pharmax.local\4362712809SAUserInventory, Administrators, (Read, only)
pharmax.local\AD - SRM Admin GroupGroupInventory, Administrators
pharmax.local\AdministratorUserAdministrators,
pharmax.local\horizon-icUserAdministrators, (Read, only),
pharmax.local\jocolonUserLocal, Administrators, , Help, Desk, Inventory
-
Table 80 - Administrators and Groups - HORIZON-CS-01V

-
1.3.6.1.1 Administrators Details

Jonathan A. Colon Feliciano

+ + + + + + + + +
pharmax.local\12-051-distlist1GroupLocal Administrators (Read only)
pharmax.local\4256122656SAUserInventory Administrators
pharmax.local\4362712809SAUserInventory Administrators (Read only)
pharmax.local\AD - SRM Admin GroupGroupInventory Administrators
pharmax.local\AdministratorUserAdministrators
pharmax.local\Domain AdminsGroupPHARMAX-God-Admin
pharmax.local\horizon-icUserAdministrators (Read only)
pharmax.local\jocolonUserLocal Administrators, Help Desk Administrators, Inventory Administrators
+
Table 81 - Administrators and Groups - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.7.1.1 Administrators Users and Groups Details for 4256122656SA

Jonathan A. Colon Feliciano

@@ -1170,16 +1383,17 @@ - + + - +
NameJonathan A. Colon Feliciano
First NameJonathan
Is Assignment a Group of UserUser
Domainpharmax.local
AD Distinguished NameCN=Jonathan A. Colon Feliciano,CN=Users,DC=pharmax,DC=local
Email--
Emailjocolon@pharmax.local
Kiosk UserNo
Un-Authenticated User--
Phone Number--
Description--
in Folder--
UPNjocolon@pharmax.local
Permission RoleLocal, Administrators, , Help, Desk, Inventory
Permission RoleLocal Administrators, Help Desk Administrators, Inventory Administrators
-
Table 81 - Administrator - Jonathan A. Colon Feliciano

-

Administrator

+
Table 82 - Administrator - Jonathan A. Colon Feliciano

+

Administrator

@@ -1192,14 +1406,36 @@ + - +
NameAdministrator
First Name--
AD Distinguished NameCN=Administrator,CN=Users,DC=pharmax,DC=local
Email--
Kiosk UserNo
Un-Authenticated User--
Phone Number--
Description--
in Folder--
UPNAdministrator@pharmax.local
Permission RoleAdministrators,
Permission RoleAdministrators
-
Table 82 - Administrator - Administrator

-

12-051-distlist1

+
Table 83 - Administrator - Administrator

+

Domain Admins

+ + + + + + + + + + + + + + + + + + +
NameDomain Admins
First Name--
Last Name--
Login NameDomain Admins
Display Namepharmax.local\Domain Admins
Long Display NameDomain Admins/pharmax.local
Is Assignment a Group of UserGroup
Domainpharmax.local
AD Distinguished NameCN=Domain Admins,CN=Users,DC=pharmax,DC=local
Email--
Kiosk UserNo
Un-Authenticated User--
Phone Number--
Description--
in Folder--
UPN--
Permission RolePHARMAX-God-Admin
+
Table 84 - Administrator - Domain Admins

+

12-051-distlist1

@@ -1212,14 +1448,15 @@ + - +
Name12-051-distlist1
First Name--
AD Distinguished NameCN=12-051-distlist1,OU=Devices,OU=ESM,OU=Tier 1,DC=pharmax,DC=local
Email--
Kiosk UserNo
Un-Authenticated User--
Phone Number--
Description--
in Folder--
UPN--
Permission RoleLocal, Administrators, (Read, only)
Permission RoleLocal Administrators (Read only)
-
Table 83 - Administrator - 12-051-distlist1

-

4362712809SA

+
Table 85 - Administrator - 12-051-distlist1

+

4362712809SA

@@ -1232,14 +1469,15 @@ + - +
Name4362712809SA
First Name--
AD Distinguished NameCN=4362712809SA,OU=Test,OU=AWS,OU=Tier 2,DC=pharmax,DC=local
Email--
Kiosk UserNo
Un-Authenticated User--
Phone Number--
Description--
in Folder--
UPN4362712809SA@pharmax.local
Permission RoleInventory, Administrators, (Read, only)
Permission RoleInventory Administrators (Read only)
-
Table 84 - Administrator - 4362712809SA

-

AD - SRM Admin Group

+
Table 86 - Administrator - 4362712809SA

+

AD - SRM Admin Group

@@ -1252,14 +1490,15 @@ + - +
NameAD - SRM Admin Group
First Name--
AD Distinguished NameCN=AD - SRM Admin Group,CN=Users,DC=pharmax,DC=local
Email--
Kiosk UserNo
Un-Authenticated User--
Phone Number--
Description--
in Folder--
UPN--
Permission RoleInventory, Administrators
Permission RoleInventory Administrators
-
Table 85 - Administrator - AD - SRM Admin Group

-

VMware IC Account

+
Table 87 - Administrator - AD - SRM Admin Group

+

VMware IC Account

@@ -1272,14 +1511,15 @@ + - +
NameVMware IC Account
First NameVMware IC Account
AD Distinguished NameCN=VMware IC Account,CN=Users,DC=pharmax,DC=local
Email--
Kiosk UserNo
Un-Authenticated User--
Phone Number--
Description--
in Folder--
UPNhorizon-ic@pharmax.local
Permission RoleAdministrators, (Read, only),
Permission RoleAdministrators (Read only)
-
Table 86 - Administrator - VMware IC Account

-

4256122656SA

+
Table 88 - Administrator - VMware IC Account

+

4256122656SA

@@ -1292,14 +1532,15 @@ + - +
Name4256122656SA
First Name--
AD Distinguished NameCN=4256122656SA,OU=Test,OU=AWS,OU=Tier 2,DC=pharmax,DC=local
Email--
Kiosk UserNo
Un-Authenticated User--
Phone Number--
Description--
in Folder--
UPN4256122656SA@pharmax.local
Permission RoleInventory, Administrators
Permission RoleInventory Administrators
-
Table 87 - Administrator - 4256122656SA

-

1.3.6.2 Role Privileges

The following section details the Role Privileges information for horizon-cs-01v server.

+
Table 89 - Administrator - 4256122656SA

+

4.7.2 Role Privileges

The following section details the Role Privileges information for HORIZON-CS-01V.PHARMAX.LOCAL server.

@@ -1308,61 +1549,106 @@ + +
NameDescription
AdministratorsAdministration users with full administrative rights
Administrators (Read only)Administration users with full read-only administrative rights
Global Configuration and Policy Administrators (Read Only)Administration users with read only rights for global and per Connection Server configuration settings.
Help Desk AdministratorsAdministration users with rights for Help Desk portal management.
Help Desk Administrators (Read Only)Administration users with rights for Help Desk portal view.
Horizon Cloud ServiceAllows subscription license activation and monitoring from horizon cloud.
Inventory AdministratorsAdministration users with rights for inventory management.
Inventory Administrators (Read only)Administration users with rights to read inventory.
Local AdministratorsAdministration users with rights on Local POD.
Local Administrators (Read only)Administration users with Read only rights on Local POD.
PHARMAX-God-Admin--
-
Table 88 - Role Privileges - HORIZON-CS-01V

-

1.3.6.3 Role Permissions

The following section details the Role Permissions information for horizon-cs-01v server.

+
Table 90 - Role Privileges - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.7.3 Role Privileges Details

The following section details the Role Privilege details for information for HORIZON-CS-01V.PHARMAX.LOCAL server.

+ + + + + + + + + + + + + + +
NameDescription
AdministratorsADMINISTRATOR
ADMINISTRATOR_VIEW
CLOUD_ADMIN
CVP_INTERACTIVE
CVP_MANAGEMENT
CVP_OWNERSHIP
CVP_VIEW
FEDERATED_LDAP_MANAGE
FEDERATED_LDAP_VIEW
FEDERATED_SESSIONS_MANAGE
FEDERATED_SESSIONS_VIEW
FOLDER_MANAGEMENT
FOLDER_VIEW
GLOBAL_ADMINISTRATOR
GLOBAL_ADMINISTRATOR_VIEW
GLOBAL_ADMIN_SDK_INTERACTIVE
GLOBAL_ADMIN_UI_INTERACTIVE
GLOBAL_CONFIG_MANAGEMENT
GLOBAL_CONFIG_VIEW
GLOBAL_CVP_PUBLICATION
GLOBAL_CVP_REGISTER
GLOBAL_MACHINE_REGISTER
GLOBAL_PERMISSION_MANAGEMENT
GLOBAL_PERMISSION_VIEW
GLOBAL_ROLE_MANAGEMENT
GLOBAL_ROLE_PERMISSION_MANAGEMENT
GLOBAL_ROLE_VIEW
HELPDESK_ADMINISTRATOR
HELPDESK_ADMINISTRATOR_VIEW
HORIZON_CLOUD_SERVICE
INVENTORY_ADMINISTRATOR
INVENTORY_ADMINISTRATOR_VIEW
LOCAL_ADMINISTRATOR
LOCAL_ADMINISTRATOR_VIEW
MACHINE_MAINTENANCE
MACHINE_MANAGEMENT
MACHINE_MANAGE_OFFLINE_SESSION
MACHINE_MANAGE_VDI_SESSION
MACHINE_REBOOT
MACHINE_USER_MANAGEMENT
MACHINE_VIEW
MANAGE_REMOTE_PROCESS
POOL_ENABLE
POOL_ENTITLE
POOL_MANAGEMENT
POOL_SVI_IMAGE_MANAGEMENT
POOL_VIEW
REMOTE_ASSISTANCE
SUBSCRIPTION_LICENSE_ADD
UDD_MANAGEMENT
UDD_VIEW
VC_CONFIG_VIEW
Administrators (Read only)ADMINISTRATOR_VIEW
CVP_VIEW
FEDERATED_LDAP_VIEW
FEDERATED_SESSIONS_VIEW
FOLDER_VIEW
GLOBAL_ADMINISTRATOR_VIEW
GLOBAL_ADMIN_SDK_INTERACTIVE
GLOBAL_ADMIN_UI_INTERACTIVE
GLOBAL_CONFIG_VIEW
GLOBAL_PERMISSION_VIEW
GLOBAL_ROLE_VIEW
HELPDESK_ADMINISTRATOR_VIEW
INVENTORY_ADMINISTRATOR_VIEW
LOCAL_ADMINISTRATOR_VIEW
MACHINE_VIEW
POOL_VIEW
UDD_VIEW
VC_CONFIG_VIEW
Agent Registration AdministratorsGLOBAL_MACHINE_REGISTER
Global Configuration and Policy AdministratorsGLOBAL_ADMIN_UI_INTERACTIVE
GLOBAL_CONFIG_MANAGEMENT
GLOBAL_CONFIG_VIEW
GLOBAL_CVP_PUBLICATION
Global Configuration and Policy Administrators (Read Only)GLOBAL_ADMIN_UI_INTERACTIVE
GLOBAL_CONFIG_VIEW
Help Desk AdministratorsCVP_VIEW
FEDERATED_LDAP_VIEW
FEDERATED_SESSIONS_MANAGE
FEDERATED_SESSIONS_VIEW
FOLDER_VIEW
GLOBAL_ADMIN_UI_INTERACTIVE
GLOBAL_CONFIG_VIEW
HELPDESK_ADMINISTRATOR
HELPDESK_ADMINISTRATOR_VIEW
MACHINE_MAINTENANCE
MACHINE_MANAGEMENT
MACHINE_MANAGE_OFFLINE_SESSION
MACHINE_MANAGE_VDI_SESSION
MACHINE_REBOOT
MACHINE_USER_MANAGEMENT
MACHINE_VIEW
MANAGE_REMOTE_PROCESS
POOL_VIEW
REMOTE_ASSISTANCE
UDD_VIEW
Help Desk Administrators (Read Only)CVP_VIEW
FEDERATED_LDAP_VIEW
FEDERATED_SESSIONS_VIEW
FOLDER_VIEW
GLOBAL_ADMIN_UI_INTERACTIVE
GLOBAL_CONFIG_VIEW
HELPDESK_ADMINISTRATOR_VIEW
MACHINE_VIEW
POOL_VIEW
UDD_VIEW
Horizon Cloud ServiceCLOUD_ADMIN
GLOBAL_ADMIN_SDK_INTERACTIVE
GLOBAL_CONFIG_VIEW
GLOBAL_CVP_REGISTER
HORIZON_CLOUD_SERVICE
POOL_VIEW
SUBSCRIPTION_LICENSE_ADD
Inventory AdministratorsCVP_MANAGEMENT
CVP_OWNERSHIP
CVP_VIEW
FOLDER_VIEW
GLOBAL_ADMIN_UI_INTERACTIVE
INVENTORY_ADMINISTRATOR
INVENTORY_ADMINISTRATOR_VIEW
MACHINE_MAINTENANCE
MACHINE_MANAGEMENT
MACHINE_MANAGE_OFFLINE_SESSION
MACHINE_MANAGE_VDI_SESSION
MACHINE_REBOOT
MACHINE_USER_MANAGEMENT
MACHINE_VIEW
MANAGE_REMOTE_PROCESS
POOL_ENABLE
POOL_ENTITLE
POOL_MANAGEMENT
POOL_SVI_IMAGE_MANAGEMENT
POOL_VIEW
REMOTE_ASSISTANCE
UDD_MANAGEMENT
UDD_VIEW
VC_CONFIG_VIEW
Inventory Administrators (Read only)CVP_VIEW
FOLDER_VIEW
GLOBAL_ADMIN_UI_INTERACTIVE
INVENTORY_ADMINISTRATOR_VIEW
MACHINE_VIEW
POOL_VIEW
UDD_VIEW
VC_CONFIG_VIEW
Local AdministratorsCLOUD_ADMIN
CVP_INTERACTIVE
CVP_MANAGEMENT
CVP_OWNERSHIP
CVP_VIEW
FOLDER_MANAGEMENT
FOLDER_VIEW
GLOBAL_ADMIN_SDK_INTERACTIVE
GLOBAL_ADMIN_UI_INTERACTIVE
GLOBAL_CONFIG_MANAGEMENT
GLOBAL_CONFIG_VIEW
GLOBAL_CVP_PUBLICATION
GLOBAL_CVP_REGISTER
GLOBAL_MACHINE_REGISTER
GLOBAL_PERMISSION_VIEW
GLOBAL_ROLE_VIEW
INVENTORY_ADMINISTRATOR
INVENTORY_ADMINISTRATOR_VIEW
LOCAL_ADMINISTRATOR
LOCAL_ADMINISTRATOR_VIEW
MACHINE_MAINTENANCE
MACHINE_MANAGEMENT
MACHINE_MANAGE_OFFLINE_SESSION
MACHINE_MANAGE_VDI_SESSION
MACHINE_REBOOT
MACHINE_USER_MANAGEMENT
MACHINE_VIEW
MANAGE_REMOTE_PROCESS
POOL_ENABLE
POOL_ENTITLE
POOL_MANAGEMENT
POOL_SVI_IMAGE_MANAGEMENT
POOL_VIEW
REMOTE_ASSISTANCE
SUBSCRIPTION_LICENSE_ADD
UDD_MANAGEMENT
UDD_VIEW
VC_CONFIG_VIEW
Local Administrators (Read only)CVP_VIEW
FOLDER_VIEW
GLOBAL_ADMIN_SDK_INTERACTIVE
GLOBAL_ADMIN_UI_INTERACTIVE
GLOBAL_CONFIG_VIEW
GLOBAL_PERMISSION_VIEW
GLOBAL_ROLE_VIEW
INVENTORY_ADMINISTRATOR_VIEW
LOCAL_ADMINISTRATOR_VIEW
MACHINE_VIEW
POOL_VIEW
UDD_VIEW
VC_CONFIG_VIEW
PHARMAX-God-AdminCVP_VIEW
FEDERATED_LDAP_MANAGE
FEDERATED_LDAP_VIEW
FEDERATED_SESSIONS_MANAGE
FEDERATED_SESSIONS_VIEW
FOLDER_MANAGEMENT
FOLDER_VIEW
GLOBAL_ADMIN_SDK_INTERACTIVE
GLOBAL_ADMIN_UI_INTERACTIVE
GLOBAL_CONFIG_MANAGEMENT
GLOBAL_CONFIG_VIEW
GLOBAL_CVP_PUBLICATION
GLOBAL_MACHINE_REGISTER
GLOBAL_PERMISSION_MANAGEMENT
GLOBAL_PERMISSION_VIEW
GLOBAL_ROLE_MANAGEMENT
GLOBAL_ROLE_PERMISSION_MANAGEMENT
GLOBAL_ROLE_VIEW
HELPDESK_ADMINISTRATOR_VIEW
LOG_COLLECTION
MACHINE_MAINTENANCE
MACHINE_MANAGEMENT
MACHINE_MANAGE_OFFLINE_SESSION
MACHINE_MANAGE_VDI_SESSION
MACHINE_REBOOT
MACHINE_USER_MANAGEMENT
MACHINE_VIEW
MANAGE_REMOTE_PROCESS
POOL_ENABLE
POOL_ENTITLE
POOL_MANAGEMENT
POOL_SVI_IMAGE_MANAGEMENT
POOL_VIEW
REMOTE_ASSISTANCE
UDD_VIEW
VC_CONFIG_VIEW
+
Table 91 - Role Privileges Details - Inventory Administrators (Read only)

+

4.7.4 Role Permissions

The following section details the Role Permissions information for HORIZON-CS-01V.PHARMAX.LOCAL server.

- - + -
User or Group NameRoleAccess Group
12-051-distlist1Local Administrators (Read only)/Root/Gurabo-Sites
4256122656SAInventory Administrators/Root/Gurabo-Sites
4362712809SAInventory Administrators (Read only)/Root/CISA
AD - SRM Admin GroupInventory Administrators/Root/Prueba
AdministratorAdministrators--
AdministratorAdministrators/Root
Jonathan A. Colon FelicianoHelp Desk Administrators--
Domain AdminsPHARMAX-God-Admin/Root
Jonathan A. Colon FelicianoLocal Administrators/Root/Gurabo-Sites
Jonathan A. Colon FelicianoHelp Desk Administrators/Root
Jonathan A. Colon FelicianoInventory Administrators/Root
VMware IC AccountAdministrators (Read only)--
VMware IC AccountAdministrators (Read only)/Root
-
Table 89 - Role Permissions - HORIZON-CS-01V

-

1.3.6.4 Access Groups

The following section summarizes the configuration of Access Groups for horizon-cs-01v server.

+
Table 92 - Role Permissions - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.7.5 Access Groups

The following section summarizes the configuration of Access Groups for HORIZON-CS-01V.PHARMAX.LOCAL server.

NameDescription
CISA--
Gurabo-Sites--
PruebaPrueba Description
RootROOT FOLDER
-
Table 90 - Access Groups - HORIZON-CS-01V

-
1.3.6.4.1 Access Groups Details

Root

+
Table 93 - Access Groups - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.7.5.1 Access Groups Details

Root

+
NamePermissions
AdministratorAdministrators
Domain AdminsPHARMAX-God-Admin
Jonathan A. Colon FelicianoLocal Administrators, Help Desk Administrators, Inventory Administrators
VMware IC AccountAdministrators (Read only)
-
Table 91 - Access Groups - Root

-

CISA

+
Table 94 - Access Groups - Root

+

CISA

NamePermissions
4362712809SAInventory Administrators (Read only)
-
Table 92 - Access Groups - CISA

-

Prueba

+
Table 95 - Access Groups - CISA

+

Prueba

NamePermissions
AD - SRM Admin GroupInventory Administrators
-
Table 93 - Access Groups - Prueba

-

Gurabo-Sites

+
Table 96 - Access Groups - Prueba

+

Gurabo-Sites

NamePermissions
12-051-distlist1Local Administrators (Read only)
4256122656SAInventory Administrators
Jonathan A. Colon FelicianoLocal Administrators, Help Desk Administrators, Inventory Administrators
-
Table 94 - Access Groups - Gurabo-Sites

-

1.3.7 Event Configuration

1.3.7.1 Event Database

+
Table 97 - Access Groups - Gurabo-Sites

+

4.7.6 Federation Access Groups

The following section details the Federation Access Group information for HORIZON-CS-01V.PHARMAX.LOCAL server.

+ + + + + +
User or Group NameRoleGlobal Access Group
AdministratorAdministratorsRoot
Domain AdminsPHARMAX-God-AdminRoot
Jonathan A. Colon FelicianoHelp Desk AdministratorsRoot
VMware IC AccountAdministrators (Read only)Root
+
Table 98 - Role Permissions - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.8 Cloud Pod Architecture

The following section details on the cloud pod architecture information for HORIZON-CS-01V.PHARMAX.LOCAL.

+ + + + + + + + + +
Pod NameCluster-HORIZON-CS-01V
Pod LocalYes
Pod SitePHARMAX-HQ
Pod Description--
Pod Cloud ManagedNo
Pod Connection ServersHORIZON-CS-01V
HORIZON-CS-02V
Pod Active Global Entitlements--
Pod Active Global Application Entitlements--
+
Table 99 - Cloud Pod Architecture - HORIZON-CS-01V.PHARMAX.LOCAL

+

4.9 Site

The following section details on the Cloud Pod Site information for HORIZON-CS-01V.PHARMAX.LOCAL.

+ + + + +
Cloud Pod Sites NamePHARMAX-HQ
Cloud Pod Sites Description--
Cloud Pod Site Pod NameCluster-HORIZON-CS-01V
+
+

4.10 Event Configuration

The following section details on the events configuration information for HORIZON-CS-01V.PHARMAX.LOCAL.

4.10.1 Event Database

@@ -1375,19 +1661,30 @@
Serverhorizon-sql-01v
TypeSQLSERVER
Timing Profiler Events7 Days
EnabledYes
-
Table 95 - Event Database - HORIZON-CS-01V

-

1.3.7.2 Syslog Configuration

+
Table 100 - Event Database - HORIZON-CS-01V

+

4.10.2 Syslog Configuration

ServerPort
10.10.10.33514
192.168.5.1514
-
Table 96 - Syslog Configuration - HORIZON-CS-01V

-

1.3.7.3 Events to File System

+
Table 101 - Syslog Configuration - HORIZON-CS-01V

+

4.10.3 Events to File System

+ + - +
EnabledYes
Enabled on ErrorNo
Path\\192.168.5.1\WsusContent\HorizonEvents
UserNameadministrator
User nameadministrator
Domainpharmax.local
-
Table 97 - Events to File System - HORIZON-CS-01V

+
Table 102 - Events to File System - HORIZON-CS-01V

+

4.11 Global Policies

The following section details on the Global Policies information for HORIZON-CS-01V.PHARMAX.LOCAL.

+ + + + + + +
Allow Multimedia RedirectionDeny
Allow USB AccessAllow
Allow Remote ModeAllow
Allow PCoIP Hardware AccelerationAllow
PCoIP Hardware Acceleration PriorityMedium
+
Table 103 - Global Policies - HORIZON-CS-01V.PHARMAX.LOCAL

-

+

\ No newline at end of file From 77e791cdb40ddecd150f84115d65eb4512083c33 Mon Sep 17 00:00:00 2001 From: Jonathan Colon Date: Tue, 19 Dec 2023 21:33:48 -0400 Subject: [PATCH 18/18] Update PDF Sample File --- Samples/VMware Horizon As Built Report.pdf | Bin 987142 -> 1203284 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Samples/VMware Horizon As Built Report.pdf b/Samples/VMware Horizon As Built Report.pdf index d4c22a5edeee19247e78445ea5cba755528da35f..82fff4e81703ab7efa0d315c5e77516c74df7377 100644 GIT binary patch literal 1203284 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

ps6DyZ33!PMzt#;?9dHFzZRX7 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 z z0~O=y<`m-k!;i1auV-44yXRa@))-(gOlBZS4K+(*3WX_6=C8tOr@p*qXwrx9DyA^7 zV%Z9Q;d&kia|Hu=RcUJut*V!)-|XYU2-k=9p^VVABv3Dj&&{~zk_+;xLN}mKLkkqQ z)7zAfP1}K6iQg40x{6`Zbc88S%I*7V*J#2H=8iV7=2kB! z70pNL8b{oxZxy{8dO~*v4iLTL`b8Zl4bzjCYF}|b56Vtg#4)Az%0SxWkYbXBTYYsP zY2nArRN%BOmr>Jdt2y4B(eBW1gIFu+2Tg1O_A-q5N%==~TCu(};yG=4tLC-U<{%Jp zabZ<>r^J$I0wi#E!qIrU;!+XSfC{aQT%|KE0u$vnaFC)lA`YyJ^UoRv9lL1%IyMpF z41DAz0K4e^lLK=v^9kC7OF{?&tbWF5oNg*YLtE)>r*{=Arx>LhS`EZE=MQ9GHQ2wJbwz zApBKa{$10Q75d|rL?;0#<)U@zViB(TUVmBCTng1vCsx~!?`74>_2(4#fflu@Xloh4 z7OK;0Z65|_9u|2Ygaa~W-tEDmN*lO%Q6+=&q|dvS@V zGL6GVwKGxOddO{$cF6!6?j+CKZN>JKb^%^bVAwH6f zA{dlu?j4tVy6MmQOftwUCZlGdm@{4`sh3yJm%ct~$8nd7d0a33og}wmt0nPAMYab@ z6p9r?50^-sK?lKh&m+RCVWGGVXgc?BXHAseE?N~o?LiANhO6>6bkbzkJXW#Jw-N9K z;F*)q6h(OS7-te5f_$=42QgA<$e5YL+%Q);3SE*rtUaZmYoWi+AbLE3e2$GAvsgb?8syE zdNWneUQWSz6ux@J0DgI={=vXkm|PeQ^Cg4Ov;@U&>N8om2S&VC_*n8NW3`Y*zLLrj zo=L)tAiZ5uo`$*!g~p`AZ{8ijN(4rqSCckgZH(tJ7PEAS?;Uxj{^ppNM3?>wSlt|; z(La0QPR48+>Q>{8Cc;C(zLE!&r{N;~5h&K{`<8vdUoxofXa}&>7ZRLtzlhKMi}>2V zh=2Es_*-@77#l;3gxqejZfXD(Hau*JL}Et$1FmPuyQjkow^EQ$250z*4miSw)FkAQ z@!TZyrfgNb!)nLJAE(D1*EsYn!8sb?TG8qt2kbiKk%_}Ju7%UG`;n*iL$nmq7?XarGXg`QNM72sFA6(vuhW(PDmReS|W zlliu%U1zSnT!DYiQv1K2_xdpPr{k$!c#f$l=Hp&yaDD9QKiN4psan=FY_(Gh89-m| z7XnaH$zB$^0dv+z>V|mZ&;CYc(#{)ms$^`xo0mp9Av3$e1f&zRj6A2r2=L&XEI|G+ zU+|TX^eFJX79q!)cbbMTi`9B_=6pVv2pxMruU9!=%ym`qvRlO4V&!{$e3Ltm((t;g z6@N~45qfOpi`1!-(I><>dLkSEGTU(9bU4w zg0p8A+Nhq&cT8eP30O~cLRP>$T>^!^c&fF2LaO6!BH3KEKby{eEoSl{TCRp{5{$9!9qhEg8Bt$WGOky9qWv~5 za5W#i72VpIiMIC%uRjryH#VEmDb1I{HI$@Wz9~9|L|uHd{sUiPh28P8MZwLeVi-VO2vCZCr#m5@p9DWseawuwr=shLGz6 zv!QIL{~sE4mcCQ;G=y*O8=#*al};ZlDDgj#dCS)l)oAM4+yqclmHK1T>buQH^s;G; z2btFsg{pBIDMEhrSs;S5G}+WAfz|;8F^%Cchlpx*_l$78%wkdqqCSb;-w=omul?LJ zoM_Y9F47*hBwNw}A(bC;A-Prg1Do%(RhUfjQFyER`d~rs{=EbAld)ghEIQ?7B5AcQ zpl@8b;AF-m&`g)!m&+=q_clVuQ_GvPOQ+HSt4jO`sxY234uv*b8Cy(ELI5rqMOO5O z*uLDZh_x;&&mfB~Y0w$f7kaY@jPqd`a8pFs_d67x#I>?cpg+BE?N)}8X$?r{IZHan z9z(Zd)VS`P7Ln{@m8KWS7#T1=_)6uZEwuBTIuj)c`)@w8V=&Yv z)T5hlxg2_PPmGEC)9|0EKU+0rz=)Sned3<*`Jd`Fwb`qh(Lme0X6KXl3z@J_D1ZrVoLQK84^R@7}uGLsQtwE7cX7mh_3zoSKfqr4L)Qa+c^5=QBbV z@h9nI{wk1v7=>R1mD3!;ApEw_z(9M5cTnMOW!X+)a@f{qB>NQHTwNjJQZrk)w!sdPQu1aj$XWK_)fQAT1PWE7YT4wDo-*ua}ux z&jA~lVZ9FqKt5;ui65=io7M1h?f6Fg6$u zMyocfg*ocwORJRx61)TcsFum`j_Y%y*Pap4%=(t;w79hf}^uVzR=*xM!;2H%OB`nI#_ya#x z*g7pv*4}?Ua2~E!;CPR3XdK01obD|wCHax{DlQPE5E-k&OAwXuMp>7mEGY2xY=J>u z=MU*t&DeEC;Cw`sGX18Tx=}NjP*hol5XV8J_Uh%Nfw+K+})>{6HECP0;iYew2sA_-kp<}JXu}h{wBF0Gk zlNIsC?I0aPrdAq{V7$ln3;%RmF%#!39Lu?piA=Z0;$9Pyfs!g_YB<7{6tmK0tP?(- z%JQr&|LH;wxjbR`I4>UL&^J$Bbtt&Uc_)>j%(qaGi(_82irr1CjaAN;KxXG8Rkfmf zCjlM(Y4IK-LAHq3O8Lffk<#Ft_8NA-%*1aHOi9YApXUeDFD9> zLVcD^wXZ=$0Sb3SleSrTu6AFs66o1z2xGX2=6tiigWBO32VNrU`BwEkf#LcifgKeb zq-VNNy`Vn-QnfCBwBLyEs)bReZp1Ev4c%J;)|;)YifbDtNnlPeHJp_ZJhy&`cdp14 zY=Ww^4wuyI`jyTaY!A9AH(jHYqWdFGo_bhBX%!<^Rw+9x)J&Cm&c^Ht-#{3><|4_& zoWGL19_QUXSqGdl4K!6GQsIWy^!REpv<(DGq-Ot_2y+jdIXg7o zK38_Lm-t4t#oZ3Psl3k)KuC+a!N4k7 zJ?sShV;_Ls;ONOg7a`9LrBLa##e|RWF(Wx!k!;BpihC5&m!6YZL#N$>JP@A@LGnH@ zoy<<|uqBoF(n#}#f1%*TJZ>jHB>T8=Ezmng%;yJe-tCY3!EMa7sh&RW6ow+z33T+>ht9?q

dVf@rlGIGV*ZUP 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%0AtmqeXc!^_NEkx*e+t5LPpHFKrPA&CV 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

*_&v1glEqmc3ogKlv z=mbu0J5`qidX6yR|F<}(Z5&{a_fI#h$t4nWo_5Zt0KL9AT7UXV+z^@z9r3Ijc4PDw ziE8pg0?cg*yD71|k=(TPBxjj8zD}oW(Dfm@&^ehqxQ?~-3HQBtNraEV8bfLp0dSXb zk_OahHPVE2nsdnQv?q?eIt0w7Y%sM5^{pY5TEGjE1SsG2Jt{#pLRDWF?k^sxsXZ|U zaWpLfp$;L{E><{HD_brQ95Gex4OCchw#c%`*&lTYG*jI@gM3|Uo$gL|P(rt1S4%<| zLKK_}GlScI3_F27mk`i-Gyh@(;lP8_9dM>F2^q+aAIAws#o$#HZF$-Cfv+0xLRZfe zO*Biyfp^?IQxm9zX0f(lf`9vsiv3*ci+oN}nfwl8>Jn(NU8lz!iS?VRFkj*Kl`X}A zVqrUT=^Av`%l;vOkzA{=rm)iNc|LJUiM zf#`AW%>n@)b=7m6w$;`9$Z24TB0!L^w%Q8(_XPqZ30s}hj8*F^r22b}T1`AB*7{F` z^*`&I53dHFDz42+WH{$6i(RgzUCV!Ou+kKK?vA~u`2j8Y=)#BtM5J^D>?MX1Dr~Sv z*NhgkyPMXL?_K$?3mufM6xg?JX4lK`evecP(gPI2W3~!md$ruHewL}Re3Tj&nVrg7 za{{gpE7vFz8;QUr&mZ`Gi}X3)@CyEG>Yl!i1YA^Be&7u+NUpMyP25)D;&)2>8W6%c za}OnUZw!4x*@_zwsW$vMI&IG!19>PYW^|}0&_-vVSy+Y~D8N*5u1j~KTmfwf^=J!h zTULRsxeI_P@-O#2laN+Tl~X1lC;1^fe_Y525TWLmrbGM>bkc?GW@Opo9HZ8!gUdlD zXV7=|*dwiec1LBJOI?(lho5lQxthTv9zg2|^T-;$P6?=xv!1RF32puEaC4)zpjUg! zM5}(#$kaR?U-~?%ztF3Wuc$gBSvQ`(d8sq8XSlW8tl8@Imd_Y{?UmQIIXrCh&b?YU z3Gnyb$fTj38Iv!D#$d_QyYY_pN?%1tSM-*IvRf0iLgB4(AJ^*@ZE;Hf>9lcn3qn$SIP}n<%9UwOn857HKiPUgo}WmD4x+ zHUhrAvQByHDP!+T)hA?>;nrl8bk*f?yW@Z)qj~G#nfSw!VQ7gAS=__jbN-+U|EF6^ zlesr`lUM-zEQdLI^C)p}?n^U}V@zCv1Em#2(9IDDXnh_xJEY8DiZ7TMf5XovjJMv2 zly?nrgXRju3AZe*h^y-qowlD7{d+lF+lk5kZtc*=3XDawn*utS5UGk2Mv&f^3#b(8}Rk3gEr0?^*-Q(-gqrV>g@0{~%-*eYGd#*Lt zp7XC3^Q^*kNb3zKR|oS%5D9?E?a!3{1xPDe_2e?vaF7|pcV48tws8DEfwIdCH%Yjq zW^9QF7B&UgNDF%({TfnP{oFsD;kvz}3xNY0I{t~2 zWRfb(dtbWi2pIMxLIDWAG_7+eOk7S~lFsPZ`6bB~U#u(0tK8NytH%uZ1FdKqRJD4zWNQ_~|`-Zzvz4JXnMyxOO{iUQNt zCE7mRzxyox4*zx{=H)8G_2uCif#8c*@#g#-wRU6L?6X{27M`Om9em5EiD$2ICiXa` zlc>@dNc@Y47Y<@g5g{@7q zQ^qL*a2)WBOGB1|k^H!zdjvd86y39p9LfhlrvUkmr9?_(sDo{Cg`XqzK_jMZeX*ce z#G@uB)`_jNAuFwZ+oBHZCditsRFvmg8G_PN^Z|WtNvi|VU7ly$52~6^Io^4^U|W*} zwxmZ$4a{2{ebKD?CCz zJ+dBX0!mM(4?)(Kh-C%MV8YJsJxM`tH_^(?+oXmz#W2m=sUQfIoL!hsejQE?cU?+) zm7<7l^n)@$4T$iwQNx6f($J3{≫|XAuJ(K-rLz)3qV<$8&ry4o!UCD6Vn#(| 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