diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml
index c2860e0..1450b87 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.yml
+++ b/.github/ISSUE_TEMPLATE/bug_report.yml
@@ -2,7 +2,7 @@ name: Bug Report
description: File a bug report
labels: ["bug"]
assignees:
- - rebelinux
+ - childebrandt42
body:
- type: textarea
id: bug-description
diff --git a/.github/ISSUE_TEMPLATE/change_request.yml b/.github/ISSUE_TEMPLATE/change_request.yml
index d5b4ea0..31c1676 100644
--- a/.github/ISSUE_TEMPLATE/change_request.yml
+++ b/.github/ISSUE_TEMPLATE/change_request.yml
@@ -2,7 +2,7 @@ name: Change Request
description: Request a new change or an improvement
labels: ["change request"]
assignees:
- - rebelinux
+ - childebrandt42
body:
- type: textarea
id: description
diff --git a/.github/workflows/Codeql.yml b/.github/workflows/Codeql.yml
new file mode 100644
index 0000000..cadfeb5
--- /dev/null
+++ b/.github/workflows/Codeql.yml
@@ -0,0 +1,47 @@
+# This workflow uses actions that are not certified by GitHub.
+# They are provided by a third-party and are governed by
+# separate terms of service, privacy policy, and support
+# documentation.
+#
+# https://github.com/microsoft/action-psscriptanalyzer
+# For more information on PSScriptAnalyzer in general, see
+# https://github.com/PowerShell/PSScriptAnalyzer
+
+name: CodeQL
+
+on:
+ push:
+ branches: [ "dev" ]
+ pull_request:
+ branches: [ "dev" ]
+
+permissions:
+ contents: read
+
+jobs:
+ build:
+ permissions:
+ contents: read # for actions/checkout to fetch code
+ security-events: write # for github/codeql-action/upload-sarif to upload SARIF results
+ actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status
+ name: PSScriptAnalyzer
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v4
+
+ - name: Run PSScriptAnalyzer
+ uses: microsoft/psscriptanalyzer-action@v1.1
+ with:
+ # Check https://github.com/microsoft/action-psscriptanalyzer for more info about the options.
+ # The below set up runs PSScriptAnalyzer to your entire repository and runs some basic security rules.
+ path: .\
+ recurse: true
+ # Include your own basic security rules. Removing this option will run all the rules
+ excludeRule: '"PSAvoidUsingPlainTextForPassword", "PSAvoidUsingUsernameAndPasswordParams", "PSAvoidUsingConvertToSecureStringWithPlainText"'
+ output: results.sarif
+
+ # Upload the SARIF file generated in the previous step
+ - name: Upload SARIF results file
+ uses: github/codeql-action/upload-sarif@v3
+ with:
+ sarif_file: results.sarif
diff --git a/.github/workflows/Release.yml b/.github/workflows/Release.yml
index 6514d39..ef48eb0 100644
--- a/.github/workflows/Release.yml
+++ b/.github/workflows/Release.yml
@@ -29,7 +29,7 @@ jobs:
needs: publish-to-gallery
runs-on: ubuntu-latest
steps:
- - uses: Eomm/why-don-t-you-tweet@v1
+ - uses: Eomm/why-don-t-you-tweet@v2
# We don't want to tweet if the repository is not a public one
if: ${{ !github.event.repository.private }}
with:
@@ -41,4 +41,13 @@ jobs:
TWITTER_CONSUMER_API_SECRET: ${{ secrets.TWITTER_CONSUMER_API_SECRET }}
TWITTER_ACCESS_TOKEN: ${{ secrets.TWITTER_ACCESS_TOKEN }}
TWITTER_ACCESS_TOKEN_SECRET: ${{ secrets.TWITTER_ACCESS_TOKEN_SECRET }}
-
+ bsky-post:
+ needs: publish-to-gallery
+ runs-on: ubuntu-latest
+ steps:
+ - uses: zentered/bluesky-post-action@v0.1.0
+ with:
+ post: "[New Release] ${{ github.event.repository.name }} ${{ github.event.release.tag_name }}! Check out what's new! ${{ github.event.release.html_url }} #VMware #AppVolumes #vExpert #AsBuiltReport #PowerShell"
+ env:
+ BSKY_IDENTIFIER: ${{ secrets.BSKY_IDENTIFIER }}
+ BSKY_PASSWORD: ${{ secrets.BSKY_PASSWORD }}
\ No newline at end of file
diff --git a/AsBuiltReport.VMware.AppVolumes.psd1 b/AsBuiltReport.VMware.AppVolumes.psd1
index e97a54c..b88a7d4 100644
--- a/AsBuiltReport.VMware.AppVolumes.psd1
+++ b/AsBuiltReport.VMware.AppVolumes.psd1
@@ -8,120 +8,120 @@
@{
-# Script module or binary module file associated with this manifest.
-RootModule = 'AsBuiltReport.VMware.AppVolumes.psm1'
+ # Script module or binary module file associated with this manifest.
+ RootModule = 'AsBuiltReport.VMware.AppVolumes.psm1'
-# Version number of this module.
-ModuleVersion = '1.1.0'
+ # Version number of this module.
+ ModuleVersion = '1.2.0'
-# Supported PSEditions
-# CompatiblePSEditions = @()
+ # Supported PSEditions
+ # CompatiblePSEditions = @()
-# ID used to uniquely identify this module
-GUID = 'd194e1c4-5fe2-4773-aac9-36ace0599df1'
+ # ID used to uniquely identify this module
+ GUID = 'd194e1c4-5fe2-4773-aac9-36ace0599df1'
-# Author of this module
-Author = 'Chris Hildebrandt'
+ # Author of this module
+ Author = 'Chris Hildebrandt'
-# Company or vendor of this module
-#CompanyName = ''
+ # Company or vendor of this module
+ #CompanyName = ''
-# Copyright statement for this module
-Copyright = '(c) 2024 Chris.Hildebrandt. All rights reserved.'
+ # Copyright statement for this module
+ Copyright = '(c) 2024 Chris.Hildebrandt. All rights reserved.'
-# Description of the functionality provided by this module
-Description = 'A PowerShell module to generate As built reports on the configuration of VMware AppVolumes'
+ # Description of the functionality provided by this module
+ Description = 'A PowerShell module to generate As built reports on the configuration of VMware AppVolumes'
-# Minimum version of the Windows PowerShell engine required by this module
-PowerShellVersion = '5.1'
+ # Minimum version of the Windows PowerShell engine required by this module
+ PowerShellVersion = '5.1'
-# Name of the Windows PowerShell host required by this module
-# PowerShellHostName = ''
+ # Name of the Windows PowerShell host required by this module
+ # PowerShellHostName = ''
-# Minimum version of the Windows PowerShell host required by this module
-# PowerShellHostVersion = ''
+ # Minimum version of the Windows PowerShell host required by this module
+ # PowerShellHostVersion = ''
-# Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
-# DotNetFrameworkVersion = ''
+ # Minimum version of Microsoft .NET Framework required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
+ # DotNetFrameworkVersion = ''
-# Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
-# CLRVersion = ''
+ # Minimum version of the common language runtime (CLR) required by this module. This prerequisite is valid for the PowerShell Desktop edition only.
+ # CLRVersion = ''
-# Processor architecture (None, X86, Amd64) required by this module
-# ProcessorArchitecture = ''
+ # Processor architecture (None, X86, Amd64) required by this module
+ # ProcessorArchitecture = ''
-# Modules that must be imported into the global environment prior to importing this module
-RequiredModules = @(
- @{
- ModuleName = 'AsBuiltReport.Core';
- ModuleVersion = '1.3.0'
- }
-)
-# Assemblies that must be loaded prior to importing this module
-# RequiredAssemblies = @()
+ # Modules that must be imported into the global environment prior to importing this module
+ RequiredModules = @(
+ @{
+ ModuleName = 'AsBuiltReport.Core';
+ ModuleVersion = '1.4.0'
+ }
+ )
+ # Assemblies that must be loaded prior to importing this module
+ # RequiredAssemblies = @()
-# Script files (.ps1) that are run in the caller's environment prior to importing this module.
-# ScriptsToProcess = @()
+ # Script files (.ps1) that are run in the caller's environment prior to importing this module.
+ # ScriptsToProcess = @()
-# Type files (.ps1xml) to be loaded when importing this module
-# TypesToProcess = @()
+ # Type files (.ps1xml) to be loaded when importing this module
+ # TypesToProcess = @()
-# Format files (.ps1xml) to be loaded when importing this module
-# FormatsToProcess = @()
+ # Format files (.ps1xml) to be loaded when importing this module
+ # FormatsToProcess = @()
-# Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
-# NestedModules = @()
+ # Modules to import as nested modules of the module specified in RootModule/ModuleToProcess
+ # NestedModules = @()
-# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
-FunctionsToExport = @('Invoke-AsBuiltReport.VMware.AppVolumes')
+ # Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
+ FunctionsToExport = @('Invoke-AsBuiltReport.VMware.AppVolumes')
-# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
-CmdletsToExport = @()
+ # Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
+ CmdletsToExport = @()
-# Variables to export from this module
-VariablesToExport = '*'
+ # Variables to export from this module
+ VariablesToExport = '*'
-# Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
-AliasesToExport = @()
+ # Aliases to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no aliases to export.
+ AliasesToExport = @()
-# DSC resources to export from this module
-# DscResourcesToExport = @()
+ # DSC resources to export from this module
+ # DscResourcesToExport = @()
-# List of all modules packaged with this module
-# ModuleList = @()
+ # List of all modules packaged with this module
+ # ModuleList = @()
-# List of all files packaged with this module
-# FileList = @()
+ # List of all files packaged with this module
+ # FileList = @()
-# Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
-PrivateData = @{
+ # Private data to pass to the module specified in RootModule/ModuleToProcess. This may also contain a PSData hashtable with additional module metadata used by PowerShell.
+ PrivateData = @{
- PSData = @{
+ PSData = @{
- # Tags applied to this module. These help with module discovery in online galleries.
- Tags = @('AsBuiltReport', 'Report', 'VMware', 'AppVolumes', 'App-Volumes','Windows','VDI','Horizon', 'Documentation', 'PScribo', 'PSEdition_Desktop')
+ # Tags applied to this module. These help with module discovery in online galleries.
+ Tags = @('AsBuiltReport', 'Report', 'VMware', 'AppVolumes', 'App-Volumes', 'Windows', 'VDI', 'Horizon', 'Documentation', 'PScribo', 'PSEdition_Desktop')
- # A URL to the license for this module.
- LicenseUri = 'https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.VMware.AppVolumes/master/LICENSE'
+ # A URL to the license for this module.
+ LicenseUri = 'https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.VMware.AppVolumes/master/LICENSE'
- # A URL to the main website for this project.
- ProjectUri = 'https://github.com/AsBuiltReport/AsBuiltReport.VMware.AppVolumes'
+ # A URL to the main website for this project.
+ ProjectUri = 'https://github.com/AsBuiltReport/AsBuiltReport.VMware.AppVolumes'
- # A URL to an icon representing this module.
- IconUri = 'https://github.com/AsBuiltReport.png'
+ # A URL to an icon representing this module.
+ IconUri = 'https://github.com/AsBuiltReport.png'
- # ReleaseNotes of this module
- ReleaseNotes = 'https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.VMware.AppVolumes/master/CHANGELOG.md'
+ # ReleaseNotes of this module
+ ReleaseNotes = 'https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.VMware.AppVolumes/master/CHANGELOG.md'
- } # End of PSData hashtable
+ } # End of PSData hashtable
-} # End of PrivateData hashtable
+ } # End of PrivateData hashtable
-# HelpInfo URI of this module
-# HelpInfoURI = ''
+ # HelpInfo URI of this module
+ # HelpInfoURI = ''
-# Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
-# DefaultCommandPrefix = ''
+ # Default prefix for commands exported from this module. Override the default prefix using Import-Module -Prefix.
+ # DefaultCommandPrefix = ''
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 944032b..c96a92a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,19 @@
# :arrows_clockwise: VMware AppVolumes As Built Report Changelog
+## [1.2.0] - 2023-11-21
+
+### Added
+
+- Tested Report with App Volumes v2410
+- Added code to properly display space information
+
+### Changed
+
+- Changed Required Modules to AsBuiltReport.Core v1.4.0
+- Improved detection of empty fields in tables
+- Improved detection of true/false elements in tables
+- Updated GitHub release workflow to add post to Bluesky social platform
+
## [1.1.0] - 2023-1-1
### Added
@@ -14,7 +28,7 @@
### Fixed
-- Fixed issue with ssl certificate verification in PwSh <= 5
+- Fixed issue with ssl certificate verification in PwSh <= 5
## [0.2.0] - 2022-10-12
diff --git a/README.md b/README.md
index 23d7cd9..a420fb9 100644
--- a/README.md
+++ b/README.md
@@ -39,8 +39,6 @@ Please refer to the AsBuiltReport [website](https://www.asbuiltreport.com) for m
Sample VMware AppVolumes As Built report HTML file: [Sample VMware AppVolumes As Built Report.html](https://htmlpreview.github.io/?https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.VMware.AppVolumes/dev/Samples/Sample%20VMware%20AppVolumes%20As%20Built%20Report.html)
-Sample VMware AppVolumes As Built report PDF file: [Sample VMware AppVolumes As Built Report.pdf](https://raw.githubusercontent.com/AsBuiltReport/AsBuiltReport.VMware.AppVolumes/dev/Samples/Sample%20VMware%20AppVolumes%20As%20Built%20Report.pdf)
-
# :beginner: Getting Started
Below are the instructions on how to install, configure and generate a VMware AppVolumes As Built report.
@@ -49,14 +47,14 @@ Below are the instructions on how to install, configure and generate a VMware Ap
The VMware AppVolumes As Built Report supports the following AppVolumes versions;
- Should work on version 4.+
-- Has been tested on all 230# Builds
+- Has been tested on all new Builds
### PowerShell
This report is compatible with the following PowerShell versions;
-| Windows PowerShell 5.1 | PowerShell 7 |
-|:----------------------:|:--------------------:|
+| Windows PowerShell 5.1 | PowerShell 7 |
+| :--------------------: | :----------------: |
| :white_check_mark: | :white_check_mark: |
## :wrench: System Requirements
@@ -110,15 +108,15 @@ The following provides information of how to configure each schema within the re
### Report
The **Report** schema provides configuration of the VMware AppVolumes report information.
-| Sub-Schema | Setting | Default | Description |
-|---------------------|--------------|--------------------------------|--------------------------------------------------------------|
+| Sub-Schema | Setting | Default | Description |
+| ------------------- | ------------ | --------------------------------- | ------------------------------------------------------------ |
| Name | User defined | VMware AppVolumes As Built Report | The name of the As Built Report |
-| Version | User defined | 1.0 | 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 |
-| ShowHeaderFooter | true / false | true | Toggle to enable/disable document headers & footers |
-| ShowTableCaptions | true / false | true | Toggle to enable/disable table captions/numbering |
+| Version | User defined | 1.0 | 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 |
+| ShowHeaderFooter | true / false | true | Toggle to enable/disable document headers & footers |
+| ShowTableCaptions | true / false | true | Toggle to enable/disable table captions/numbering |
### Options
The **Options** schema allows certain options within the report to be toggled on or off.
@@ -129,39 +127,39 @@ The **InfoLevel** schema allows configuration of each section of the report at a
There are 3 levels (0-2) of detail granularity for each section as follows;
-| Setting | InfoLevel | Description |
-|:-------:|-------------------|--------------------------------------------------------------------------------------------------------------------------------------------|
-| 0 | Disabled | Does not collect or display any information |
-| 1 | Enabled / Summary | Provides summarised information for a collection of objects |
-| 2 | Adv Summary | Provides condensed, detailed information for a collection of objects |
+| Setting | InfoLevel | Description |
+| :-----: | ----------------- | -------------------------------------------------------------------- |
+| 0 | Disabled | Does not collect or display any information |
+| 1 | Enabled / Summary | Provides summarised information for a collection of objects |
+| 2 | Adv Summary | Provides condensed, detailed information for a collection of objects |
The table below outlines the default and maximum InfoLevel settings for each section.
-| Sub-Schema | Default Setting | Maximum Setting |
-|--------------|:---------------:|:---------------:|
-General | 1 | 1 |
-Application | 1 | 2 |
-Package | 1 | 2 |
-Program | 1 | 2 |
-Assignment | 1 | 2 |
-Writeables | 1 | 2 |
-ADUsers | 1 | 1 |
-Computers | 1 | 1 |
-ADGroups | 1 | 1 |
-ADOUs | 1 | 1 |
-Machines | 1 | 1 |
-StorageLocations | 1 | 2 |
-StorageGroups | 1 | 1 |
-Instance | 1 | 2 |
-Jobs | 1 | 1 |
-Troubleshooting | 1 | 1 |
-License | 1 | 1 |
-ADDomains | 1 | 2 |
-AdminGroups | 1 | 2 |
-MachineManagers | 1 | 2 |
-Storage | 1 | 1 |
-Managers | 1 | 1 |
-Settings | 1 | 1 |
+| Sub-Schema | Default Setting | Maximum Setting |
+| ---------------- | :-------------: | :-------------: |
+| General | 1 | 1 |
+| Application | 1 | 2 |
+| Package | 1 | 2 |
+| Program | 1 | 2 |
+| Assignment | 1 | 2 |
+| Writeables | 1 | 2 |
+| ADUsers | 1 | 1 |
+| Computers | 1 | 1 |
+| ADGroups | 1 | 1 |
+| ADOUs | 1 | 1 |
+| Machines | 1 | 1 |
+| StorageLocations | 1 | 2 |
+| StorageGroups | 1 | 1 |
+| Instance | 1 | 2 |
+| Jobs | 1 | 1 |
+| Troubleshooting | 1 | 1 |
+| License | 1 | 1 |
+| ADDomains | 1 | 2 |
+| AdminGroups | 1 | 2 |
+| MachineManagers | 1 | 2 |
+| Storage | 1 | 1 |
+| Managers | 1 | 1 |
+| Settings | 1 | 1 |
### Healthcheck
diff --git a/Samples/Sample VMware AppVolumes As Built Report.html b/Samples/Sample VMware AppVolumes As Built Report.html
index 36e7f2d..4c3854f 100644
--- a/Samples/Sample VMware AppVolumes As Built Report.html
+++ b/Samples/Sample VMware AppVolumes As Built Report.html
@@ -1,4 +1,4 @@
-
+
VMware AppVolumes As Built Report
-
+
-
VMware AppVolumes As Built Report
As Built Report
-Author: | As Built Report |
-Date: | Tuesday, January 2, 2024 |
+
VMware AppVolumes As Built Report
ACME Inc.
+Author: | Bugs Bunny |
+Date: | Thursday, November 21, 2024 |
Version: | 1.0 |
-
1 Horizon-APV-01V.pharmax.local
The following section provides a summary of the implemented components on the VMware App Volumes infrastructure.
1.1 General Information
The following section provide a summary of common information on Horizon-APV-01V.
+
1 Horizon-APV-01V.pharmax.local
The following section provides a summary of the implemented components on the VMware App Volumes infrastructure.
1.1 General Information
The following section provide a summary of common information on Horizon-APV-01V.
Name | Horizon-APV-01V.pharmax.local |
-Version | App Volumes 4, version 2309 (4.12.0.81) |
+Version | App Volumes 4, version 2410 (4.15.0.687) |
Configured | Yes |
-Uptime | about 1 hour |
+Uptime | 11 minutes |
Number of Domains | 1 |
Number of App Volumes Managers | 1 |
Number of vCenters | 2 |
Table 1 - General Information - Horizon-APV-01V.pharmax.local
-
1.2 Inventory
1.2.1 Application Summary
The following section provide a summary of the applications captured on Horizon-APV-01V.
+1.2 Inventory
1.2.1 Application Summary
The following section provide a summary of the applications captured on Horizon-APV-01V.
Name | Status | Created | Template Version | Agent Version | Applications Count |
7zip | active | Aug 25 2022 | -- | 4.7.0.64R | 1 |
Google Chrome | active | Aug 25 2022 | -- | 4.7.0.64R | 1 |
Office 2021 | active | Aug 25 2022 | -- | 4.7.0.64R | 7 |
Table 2 - Application Summary - Horizon-APV-01V.pharmax.local
-1.2.1.1 Applications Details
1.2.1.1.1 Application Details - 7zip
+1.2.1.1 Applications Details
1.2.1.1.1 Application Details - 7zip
Name | 7zip |
Status | active |
-Owner | 2759FB46-591D-49A5-A0C0-0AFFA865BD5E |
+Owner | PHARMAX\Administrator |
Total Assignments | 3 |
Created | Aug 25 2022 |
Modified | Aug 25 2022 |
@@ -146,28 +146,28 @@
Sync Status | -- |
Table 3 - Application Details - 7zip
-Application Packages
+Application Packages
Name | Version | Created | Mounted | Size | Current |
7zip | 22.01.00.0 | 8/25/2022 | 12/16/2023 | 89.00 MB | Yes |
Table 4 - Application Packages - 7zip
-Application Programs
+Application Programs
Name | Version | Created |
7-Zip 22.01 (x64 edition) | 22.01.00.0 | Aug 25 2022 |
Table 5 - Application Programs - 7zip
-Application Assignment
+Application Assignment
Name | Type |
PHARMAX\Domain Admins | Group |
PHARMAX\jocolon | User |
PHARMAX\veeam_admin | User |
Table 6 - Application Assignment - 7zip
-1.2.1.1.2 Application Details - Google Chrome
+1.2.1.1.2 Application Details - Google Chrome
Name | Google Chrome |
Status | active |
-Owner | 2759FB46-591D-49A5-A0C0-0AFFA865BD5E |
+Owner | PHARMAX\Administrator |
Total Assignments | 6 |
Created | Aug 25 2022 |
Modified | Aug 25 2022 |
@@ -177,18 +177,18 @@
Sync Status | -- |
Table 7 - Application Details - Google Chrome
-Application Packages
+Application Packages
Name | Version | Created | Mounted | Size | Current |
Google Chrome 88 | 88.0.4324.150 | 8/25/2022 | -- | 783.00 MB | No |
Google Chrome 104-update | 104.0.5112.102 | 8/25/2022 | 12/16/2023 | 940.00 MB | Yes |
Table 8 - Application Packages - Google Chrome
-Application Programs
+Application Programs
Name | Version | Created |
Google Chrome | 104.0.5112.102 | Aug 25 2022 |
Table 9 - Application Programs - Google Chrome
-Application Assignment
+Application Assignment
Name | Type |
PHARMAX OU:Fortinet EMS | OrgUnit |
PHARMAX OU:VEEAM WorkStations | OrgUnit |
@@ -198,11 +198,11 @@
PHARMAX\veeam_admin | User |
Table 10 - Application Assignment - Google Chrome
-1.2.1.1.3 Application Details - Office 2021
+1.2.1.1.3 Application Details - Office 2021
Name | Office 2021 |
Status | active |
-Owner | 2759FB46-591D-49A5-A0C0-0AFFA865BD5E |
+Owner | PHARMAX\Administrator |
Total Assignments | 3 |
Created | Aug 25 2022 |
Modified | Aug 25 2022 |
@@ -212,12 +212,12 @@
Sync Status | -- |
Table 11 - Application Details - Office 2021
-Application Packages
+Application Packages
Name | Version | Created | Mounted | Size | Current |
Office2021 | 16.0.14332.20358 | 8/25/2022 | 12/16/2023 | 4.37 GB | Yes |
Table 12 - Application Packages - Office 2021
-Application Programs
+Application Programs
Name | Version | Created |
Microsoft Office LTSC Professional Plus 2021 - en-us | 16.0.14332.20358 | Aug 25 2022 |
Microsoft OneDrive | 21.030.0211.0002 | Aug 25 2022 |
@@ -228,14 +228,14 @@
Teams Machine-Wide Installer | 1.4.0.19572 | Aug 25 2022 |
Table 13 - Application Programs - Office 2021
-Application Assignment
+Application Assignment
Name | Type |
PHARMAX\Domain Admins | Group |
PHARMAX\jocolon | User |
PHARMAX\veeam_admin | User |
Table 14 - Application Assignment - Office 2021
-1.2.2 Packages Summary
The following section provide a summary of the packages on Horizon-APV-01V.
+1.2.2 Packages Summary
The following section provide a summary of the packages on Horizon-APV-01V.
Name | Application | Stage | Status | Version | Size | Added |
7zip | 7zip | New | enabled | 22.01.00.0 | 89.00 MB | Aug 25 2022 |
Google Chrome 104-update | Google Chrome | New | enabled | 104.0.5112.102 | 940.00 MB | Aug 25 2022 |
@@ -243,7 +243,7 @@
Office2021 | Office 2021 | New | enabled | 16.0.14332.20358 | 4.37 GB | Aug 25 2022 |
Table 15 - Packages - Horizon-APV-01V.pharmax.local
-1.2.2.1 Packages Details
1.2.2.1.1 Package - 7zip
+1.2.2.1 Packages Details
1.2.2.1.1 Package - 7zip
App Name | 7zip |
Application Name | 7zip |
@@ -273,29 +273,29 @@
Is Current | CURRENT |
Table 16 - Package Details - 7zip
-Programs
+Programs
Program Name | Build # | Publisher Name | Program Created | Program Updated |
7-Zip 22.01 (x64 edition) | 22.01.00.0 | Igor Pavlov | Aug 25 2022 | Aug 25 2022 |
Table 17 - Programs for Application - 7zip
-Operating Systems
+Operating Systems
OS Name | OS Version | Processor Arch | Type |
Windows 10 (x64) | 10.0 | 9 | Desktop |
Table 18 - Operating Systems for -
-Storage Locations for - 7zip
+Storage Locations for - 7zip
Location | Path | Host | File Status | Created |
SSD-VM-HIGH-CAPACITY-PERF-KN | appvolumes/packages | vcenter-01v.pharmax.local | Yes | Aug 25 2022 |
SSD-VM-HIGH-CAPACITY-PERF-MK | appvolumes/packages | vcenter-01v.pharmax.local | Yes | Aug 25 2022 |
Table 19 - Storage Location for - 7zip
-Application links for - 7zip
+Application links for - 7zip
App Link Name | Entry Point |
7-Zip File Manager | C:\ProgramData\Microsoft\Windows\Start Menu\Programs\7-Zip\7-Zip File Manager.lnk |
7-Zip Help | C:\ProgramData\Microsoft\Windows\Start Menu\Programs\7-Zip\7-Zip Help.lnk |
Table 20 - Application links for - 7zip
-1.2.2.1.2 Package - Google Chrome 104-update
+1.2.2.1.2 Package - Google Chrome 104-update
App Name | Google Chrome 104-update |
Application Name | Google Chrome |
@@ -325,29 +325,29 @@
Is Current | CURRENT |
Table 21 - Package Details - Google Chrome 104-update
-Programs
+Programs
Program Name | Build # | Publisher Name | Program Created | Program Updated |
Google Chrome | 104.0.5112.102 | Google LLC | Aug 25 2022 | Aug 25 2022 |
Table 22 - Programs for Application - Google Chrome 104-update
-Operating Systems
+Operating Systems
OS Name | OS Version | Processor Arch | Type |
Windows 10 (x64) | 10.0 | 9 | Desktop |
Table 23 - Operating Systems for -
-Storage Locations for - Google Chrome 104-update
+Storage Locations for - Google Chrome 104-update
Location | Path | Host | File Status | Created |
SSD-VM-HIGH-CAPACITY-PERF-KN | appvolumes/packages | vcenter-01v.pharmax.local | Yes | Aug 25 2022 |
SSD-VM-HIGH-CAPACITY-PERF-MK | appvolumes/packages | vcenter-01v.pharmax.local | Yes | Aug 25 2022 |
Table 24 - Storage Location for - Google Chrome 104-update
-Application links for - Google Chrome 104-update
+Application links for - Google Chrome 104-update
App Link Name | Entry Point |
Google Chrome | C:\Users\Public\Desktop\Google Chrome.lnk |
Google Chrome | C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Google Chrome.lnk |
Table 25 - Application links for - Google Chrome 104-update
-1.2.2.1.3 Package - Google Chrome 88
+1.2.2.1.3 Package - Google Chrome 88
App Name | Google Chrome 88 |
Application Name | Google Chrome |
@@ -377,23 +377,23 @@
Is Current | -- |
Table 26 - Package Details - Google Chrome 88
-Programs
+Programs
Program Name | Build # | Publisher Name | Program Created | Program Updated |
Google Chrome | 88.0.4324.150 | Google LLC | Aug 25 2022 | Aug 25 2022 |
Table 27 - Programs for Application - Google Chrome 88
-Operating Systems
+Operating Systems
OS Name | OS Version | Processor Arch | Type |
Windows 10 (x64) | 10.0 | 9 | Desktop |
Table 28 - Operating Systems for -
-Storage Locations for - Google Chrome 88
+Storage Locations for - Google Chrome 88
Location | Path | Host | File Status | Created |
SSD-VM-HIGH-CAPACITY-PERF-KN | appvolumes/packages | vcenter-01v.pharmax.local | Yes | Aug 25 2022 |
SSD-VM-HIGH-CAPACITY-PERF-MK | appvolumes/packages | vcenter-01v.pharmax.local | Yes | Aug 25 2022 |
Table 29 - Storage Location for - Google Chrome 88
-1.2.2.1.4 Package - Office2021
+1.2.2.1.4 Package - Office2021
App Name | Office2021 |
Application Name | Office 2021 |
@@ -423,7 +423,7 @@
Is Current | CURRENT |
Table 30 - Package Details - Office2021
-Programs
+Programs
Program Name | Build # | Publisher Name | Program Created | Program Updated |
Teams Machine-Wide Installer | 1.4.0.19572 | Microsoft Corporation | Aug 25 2022 | Aug 25 2022 |
Office 16 Click-to-Run Licensing Component | 16.0.14332.20358 | Microsoft Corporation | Aug 25 2022 | Aug 25 2022 |
@@ -434,18 +434,18 @@
Microsoft Office LTSC Professional Plus 2021 - en-us | 16.0.14332.20358 | Microsoft Corporation | Aug 25 2022 | Aug 25 2022 |
Table 31 - Programs for Application - Office2021
-Operating Systems
+Operating Systems
OS Name | OS Version | Processor Arch | Type |
Windows 10 (x64) | 10.0 | 9 | Desktop |
Table 32 - Operating Systems for -
-Storage Locations for - Office2021
+Storage Locations for - Office2021
Location | Path | Host | File Status | Created |
SSD-VM-HIGH-CAPACITY-PERF-KN | appvolumes/packages | vcenter-01v.pharmax.local | Yes | Aug 26 2022 |
SSD-VM-HIGH-CAPACITY-PERF-MK | appvolumes/packages | vcenter-01v.pharmax.local | Yes | Aug 25 2022 |
Table 33 - Storage Location for - Office2021
-Application links for - Office2021
+Application links for - Office2021
App Link Name | Entry Point |
Access | C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Access.lnk |
Database Compare | C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft Office Tools\Database Compare.lnk |
@@ -465,7 +465,7 @@
Word | C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Word.lnk |
Table 34 - Application links for - Office2021
-1.2.3 Programs Summary
The following section provide a summary of the programs on Horizon-APV-01V.
+1.2.3 Programs Summary
The following section provide a summary of the programs on Horizon-APV-01V.
App Name | Version # | Publisher Name | Package Name |
Office 16 Click-to-Run Licensing Component | 16.0.14332.20358 | Microsoft Corporation | Office2021 |
Office 16 Click-to-Run Extensibility Component | 16.0.14332.20358 | Microsoft Corporation | Office2021 |
@@ -479,7 +479,7 @@
Teams Machine-Wide Installer | 1.4.0.19572 | Microsoft Corporation | Office2021 |
Table 35 - Programs - Horizon-APV-01V.pharmax.local
-1.2.3.1 Program Details
1.2.3.1.1 Program Details - 7-Zip 22.01 (x64 edition)
+1.2.3.1 Program Details
1.2.3.1.1 Program Details - 7-Zip 22.01 (x64 edition)
Name | 7-Zip 22.01 (x64 edition) |
Package | 7zip |
@@ -491,7 +491,7 @@
Icon | /snapvols/8/7-Zip_22.01__x64_edition_.png |
Table 36 - Program Details - 7-Zip 22.01 (x64 edition)
-1.2.3.1.2 Program Details - Google Chrome
+1.2.3.1.2 Program Details - Google Chrome
Name | Google Chrome |
Package | Google Chrome 104-update |
@@ -503,7 +503,7 @@
Icon | /snapvols/9/Google_Chrome.png |
Table 37 - Program Details - Google Chrome
-1.2.3.1.3 Program Details - Google Chrome
+1.2.3.1.3 Program Details - Google Chrome
Name | Google Chrome |
Package | Google Chrome 88 |
@@ -515,7 +515,7 @@
Icon | /snapvols/2/Google_Chrome.png |
Table 38 - Program Details - Google Chrome
-1.2.3.1.4 Program Details - Microsoft Office LTSC Professional Plus 2021 - en-us
+1.2.3.1.4 Program Details - Microsoft Office LTSC Professional Plus 2021 - en-us
Name | Microsoft Office LTSC Professional Plus 2021 - en-us |
Package | Office2021 |
@@ -527,7 +527,7 @@
Icon | /snapvols/11/Microsoft_Office_LTSC_Professional_Plus_2021_-_en-us.png |
Table 39 - Program Details - Microsoft Office LTSC Professional Plus 2021 - en-us
-1.2.3.1.5 Program Details - Microsoft OneDrive
+1.2.3.1.5 Program Details - Microsoft OneDrive
Name | Microsoft OneDrive |
Package | Office2021 |
@@ -539,7 +539,7 @@
Icon | /snapvols/11/Microsoft_OneDrive.png |
Table 40 - Program Details - Microsoft OneDrive
-1.2.3.1.6 Program Details - Microsoft Project Professional 2021 - en-us
+1.2.3.1.6 Program Details - Microsoft Project Professional 2021 - en-us
Name | Microsoft Project Professional 2021 - en-us |
Package | Office2021 |
@@ -551,7 +551,7 @@
Icon | /snapvols/11/Microsoft_Project_Professional_2021_-_en-us.png |
Table 41 - Program Details - Microsoft Project Professional 2021 - en-us
-1.2.3.1.7 Program Details - Microsoft Visio LTSC Professional 2021 - en-us
+1.2.3.1.7 Program Details - Microsoft Visio LTSC Professional 2021 - en-us
Name | Microsoft Visio LTSC Professional 2021 - en-us |
Package | Office2021 |
@@ -563,7 +563,7 @@
Icon | /snapvols/11/Microsoft_Visio_LTSC_Professional_2021_-_en-us.png |
Table 42 - Program Details - Microsoft Visio LTSC Professional 2021 - en-us
-1.2.3.1.8 Program Details - Office 16 Click-to-Run Extensibility Component
+1.2.3.1.8 Program Details - Office 16 Click-to-Run Extensibility Component
Name | Office 16 Click-to-Run Extensibility Component |
Package | Office2021 |
@@ -575,7 +575,7 @@
Icon | /snapvols/11/Office_16_Click-to-Run_Extensibility_Component.png |
Table 43 - Program Details - Office 16 Click-to-Run Extensibility Component
-1.2.3.1.9 Program Details - Office 16 Click-to-Run Licensing Component
+1.2.3.1.9 Program Details - Office 16 Click-to-Run Licensing Component
Name | Office 16 Click-to-Run Licensing Component |
Package | Office2021 |
@@ -587,7 +587,7 @@
Icon | /snapvols/11/Office_16_Click-to-Run_Licensing_Component.png |
Table 44 - Program Details - Office 16 Click-to-Run Licensing Component
-1.2.3.1.10 Program Details - Teams Machine-Wide Installer
+1.2.3.1.10 Program Details - Teams Machine-Wide Installer
Name | Teams Machine-Wide Installer |
Package | Office2021 |
@@ -599,7 +599,7 @@
Icon | /snapvols/11/Teams_Machine-Wide_Installer.png |
Table 45 - Program Details - Teams Machine-Wide Installer
-1.2.4 Assignments Summary
The following section provide a summary of the assignments on Horizon-APV-01V.
+1.2.4 Assignments Summary
The following section provide a summary of the assignments on Horizon-APV-01V.
Entity | Marker | Package | Applications | Computers | Assigned |
PHARMAX\jocolon | CURRENT | Google Chrome 104-update | Google Chrome | All | Aug 26 2022 |
PHARMAX\jocolon | CURRENT | 7zip | 7-Zip 22.01 (x64 edition) | All | Aug 26 2022 |
@@ -615,13 +615,13 @@
PHARMAX OU:Fortinet EMS | CURRENT | Google Chrome 104-update | Google Chrome | All | Oct 06 2022 |
Table 46 - Assignment Summary - Horizon-APV-01V.pharmax.local
-1.2.5 Writable Volumes
The following section provide a summary of writable volumes on Horizon-APV-01V.
+1.2.5 Writable Volumes
The following section provide a summary of writable volumes on Horizon-APV-01V.
Owner | Storage | Status | Created | State |
PHARMAX\veeam_admin | SSD-VM-HIGH-CAPACITY-PERF-MK | disabled | Aug 26 2022 | Detached |
PHARMAX\jocolon | SSD-VM-HIGH-CAPACITY-PERF-MK | enabled | Mar 02 2022 | Detached |
Table 47 - Writable Volumes - Horizon-APV-01V.pharmax.local
-1.2.5.1 Writable Volume Details
Writable Volume Details for - PHARMAX\jocolon
+1.2.5.1 Writable Volume Details
Writable Volume Details for - PHARMAX\jocolon
Owner | PHARMAX\jocolon |
Owner Type | User |
@@ -648,7 +648,7 @@
OS Version | -- |
Table 48 - Writable volumes details - PHARMAX\jocolon
-Writable Volume Details for - PHARMAX\veeam_admin
+Writable Volume Details for - PHARMAX\veeam_admin
Owner | PHARMAX\veeam_admin |
Owner Type | User |
@@ -675,29 +675,26 @@
OS Version | -- |
Table 49 - Writable volumes details - PHARMAX\veeam_admin
-1.3 Directory
1.3.1 Managed Users
The following section provide a summary of Users who have logged-in to a managed computer or have assignments on Horizon-APV-01V.
+1.3 Directory
1.3.1 Managed Users
The following section provide a summary of Users who have logged-in to a managed computer or have assignments on Horizon-APV-01V.
Name | Writable | Assignments | Attachments | Login | Last Logon | Status |
PHARMAX\veeam_admin | 1 | 3 | 0 | 2 | Aug 26 2022 | Enabled |
PHARMAX\jocolon | 1 | 3 | 0 | 11 | Dec 16 2023 | Enabled |
PHARMAX\Administrator | 0 | 0 | 0 | 24 | Dec 15 2023 | Enabled |
Table 50 - Managed Users - Horizon-APV-01V.pharmax.local
-1.3.2 Managed Computers
The following section provide a summary of computers with app volumes agent installed and registered to Horizon-APV-01V.
+1.3.2 Managed Computers
The following section provide a summary of computers with app volumes agent installed and registered to Horizon-APV-01V.
Computer | Agent | OS | Writables | Assignments | Attachments | Boots | Last Boot | Status |
-it539764880 | 4.7.0.64R | TServer | 0 | 0 | 0 | 1 | Dec 14 2023 10:33PM | Enabled |
-it1496457899 | 4.12.0.81R | TServer | 0 | 0 | 0 | 3 | Dec 15 2023 09:34PM | Enabled |
vm-01 | 4.7.0.64R | Desktop | 0 | 0 | 0 | 21 | Aug 27 2022 06:34PM | Enabled |
+it539764880 | 4.7.0.64R | TServer | 0 | 0 | 0 | 1 | Dec 14 2023 10:33PM | Enabled |
vm-02 | 4.7.0.64R | Desktop | 0 | 0 | 0 | 21 | Aug 27 2022 06:34PM | Enabled |
vm-01-hr | 4.7.0.64R | TServer | 0 | 0 | 0 | 3 | Aug 27 2022 10:24AM | Enabled |
-HORIZON-RDS-02T | 4.12.0.81R | TServer | 0 | 0 | 0 | 2 | Dec 15 2023 05:43PM | Enabled |
-app-farm-02 | 4.12.0.81R | TServer | 0 | 0 | 0 | 8 | Dec 21 2023 08:43AM | Enabled |
-app-farm-01 | 4.12.0.81R | TServer | 0 | 0 | 0 | 7 | Dec 21 2023 08:43AM | Enabled |
+HORIZON-CAP-01V | 4.7.0.64R | Desktop | 0 | 0 | 0 | 19 | Aug 25 2022 09:00PM | Enabled |
farm-01 | 4.7.0.64R | TServer | 0 | 0 | 0 | 3 | Aug 27 2022 10:24AM | Enabled |
+HORIZON-RDS-02T | 4.12.0.81R | TServer | 0 | 0 | 0 | 2 | Dec 15 2023 05:43PM | Enabled |
HORIZON-RDS-01T | 4.12.0.81R | TServer | 0 | 0 | 0 | 6 | Dec 15 2023 12:40PM | Enabled |
-HORIZON-CAP-01V | 4.7.0.64R | Desktop | 0 | 0 | 0 | 19 | Aug 25 2022 09:00PM | Enabled |
Table 51 - Managed Computers - Horizon-APV-01V.pharmax.local
-1.3.3 Managed Groups
The following section provide a summary of Groups that have assignments on Horizon-APV-01V.
+1.3.3 Managed Groups
The following section provide a summary of Groups that have assignments on Horizon-APV-01V.
Group Name | Writable | Assignments | Last Logon | Status |
Domain Users | 0 | 1 | Sep 06 2022 | Enabled |
ho-mar-distlist1 | 0 | 0 | Oct 05 2022 | Disabled |
@@ -705,13 +702,13 @@
Domain Admins | 0 | 3 | Aug 25 2022 | Enabled |
Table 52 - Managed Groups - Horizon-APV-01V.pharmax.local
-1.3.4 Managed OU's
The following section provide a summary of Organizational Units (OUs) that have assignments on Horizon-APV-01V.
+1.3.4 Managed OU's
The following section provide a summary of Organizational Units (OUs) that have assignments on Horizon-APV-01V.
Name | Last Logon | Status | Writable | Assignments |
Fortinet EMS | Oct 06 2022 | Disabled | 0 | 1 |
VEEAM WorkStations | Oct 06 2022 | Enabled | 0 | 1 |
Table 53 - Managed OU's - Horizon-APV-01V.pharmax.local
-1.4 Infrastructure
1.4.1 Managed Machines Summary
The following section provide a summary of managed machines on Horizon-APV-01V.
+1.4 Infrastructure
1.4.1 Managed Machines Summary
The following section provide a summary of managed machines on Horizon-APV-01V.
Name | Host | Source | Created | Status |
app-farm-01 | esxsvr-00f.pharmax.local | Agent | Dec 15 2023 09:40PM | Existing |
app-farm-02 | esxsvr-00f.pharmax.local | Agent | Dec 15 2023 09:40PM | Existing |
@@ -722,7 +719,7 @@
Horizon-RDS-02T | esxsvr-00f.pharmax.local | Agent | Dec 15 2023 05:42PM | Existing |
Table 54 - Managed Machines Summary - Horizon-APV-01V.pharmax.local
-1.4.2 Managed Storage Locations
The following section details configured storage options for Packages, Writable Volumes, and AppStacks on Horizon-APV-01V.
+1.4.2 Managed Storage Locations
The following section details configured storage options for Packages, Writable Volumes, and AppStacks on Horizon-APV-01V.
Name | Host | AppStacks | Writables | Attachable | Status |
EDGE_SAN_PLACEHOLDER | vcenter-03v | 0 | 0 | Yes | Existing |
esx-00f | vcenter-01v | 0 | 0 | Yes | Existing |
@@ -742,7 +739,7 @@
VMWARE_VDI_DATASTORE_2 | vcenter-01v | 0 | 0 | Yes | Absent |
Table 55 - Storages - Horizon-APV-01V.pharmax.local
-Storage Details - EDGE_SAN_PLACEHOLDER
+Storage Details - EDGE_SAN_PLACEHOLDER
Display Name | [PHARMAX-VSI-EDGE] EDGE_SAN_PLACEHOLDER |
Machine Manager | vcenter-03v.pharmax.local |
@@ -757,7 +754,7 @@
Capacity | 10 GB |
Table 56 - Storage Details - EDGE_SAN_PLACEHOLDER
-Storage Details - esx-00f
+Storage Details - esx-00f
Display Name | [PHARMAX-VSI-DC] esx-00f |
Machine Manager | vcenter-01v.pharmax.local |
@@ -772,7 +769,7 @@
Capacity | 112 GB |
Table 57 - Storage Details - esx-00f
-Storage Details - HDD-VM-ISO-LOW-PERF
+Storage Details - HDD-VM-ISO-LOW-PERF
Display Name | [PHARMAX-VSI-DC] HDD-VM-ISO-LOW-PERF |
Machine Manager | vcenter-01v.pharmax.local |
@@ -787,7 +784,7 @@
Capacity | 931 GB |
Table 58 - Storage Details - HDD-VM-ISO-LOW-PERF
-Storage Details - HDD-VM-MED-PERF-01
+Storage Details - HDD-VM-MED-PERF-01
Display Name | [PHARMAX-VSI-DC] HDD-VM-MED-PERF-01 |
Machine Manager | vcenter-01v.pharmax.local |
@@ -802,7 +799,7 @@
Capacity | 4 TB |
Table 59 - Storage Details - HDD-VM-MED-PERF-01
-Storage Details - HDD-VM-MED-PERF-02
+Storage Details - HDD-VM-MED-PERF-02
Display Name | [PHARMAX-VSI-DC] HDD-VM-MED-PERF-02 |
Machine Manager | vcenter-01v.pharmax.local |
@@ -817,7 +814,7 @@
Capacity | 4 TB |
Table 60 - Storage Details - HDD-VM-MED-PERF-02
-Storage Details - HQ_SAN_PLACEHOLDER
+Storage Details - HQ_SAN_PLACEHOLDER
Display Name | [PHARMAX-VSI-DC] HQ_SAN_PLACEHOLDER |
Machine Manager | vcenter-01v.pharmax.local |
@@ -832,7 +829,7 @@
Capacity | 10 GB |
Table 61 - Storage Details - HQ_SAN_PLACEHOLDER
-Storage Details - HQ_VM_DATASTORE
+Storage Details - HQ_VM_DATASTORE
Display Name | [PHARMAX-VSI-DC] HQ_VM_DATASTORE |
Machine Manager | vcenter-01v.pharmax.local |
@@ -847,7 +844,7 @@
Capacity | 50 GB |
Table 62 - Storage Details - HQ_VM_DATASTORE
-Storage Details - NVME-VFLASH-01
+Storage Details - NVME-VFLASH-01
Display Name | [PHARMAX-VSI-DC] NVME-VFLASH-01 |
Machine Manager | vcenter-01v.pharmax.local |
@@ -862,7 +859,7 @@
Capacity | 238 GB |
Table 63 - Storage Details - NVME-VFLASH-01
-Storage Details - NVME-VM-HIGH-PERF-01
+Storage Details - NVME-VM-HIGH-PERF-01
Display Name | [PHARMAX-VSI-DC] NVME-VM-HIGH-PERF-01 |
Machine Manager | vcenter-01v.pharmax.local |
@@ -877,7 +874,7 @@
Capacity | 477 GB |
Table 64 - Storage Details - NVME-VM-HIGH-PERF-01
-Storage Details - SRM_HQ_REPLICATED_01
+Storage Details - SRM_HQ_REPLICATED_01
Display Name | [PHARMAX-VSI-DC] SRM_HQ_REPLICATED_01 |
Machine Manager | vcenter-01v.pharmax.local |
@@ -892,7 +889,7 @@
Capacity | 50 GB |
Table 65 - Storage Details - SRM_HQ_REPLICATED_01
-Storage Details - SSD-VM-HIGH-CAPACITY-PERF-KN
+Storage Details - SSD-VM-HIGH-CAPACITY-PERF-KN
Display Name | [PHARMAX-VSI-DC] SSD-VM-HIGH-CAPACITY-PERF-KN |
Machine Manager | vcenter-01v.pharmax.local |
@@ -907,7 +904,7 @@
Capacity | 894 GB |
Table 66 - Storage Details - SSD-VM-HIGH-CAPACITY-PERF-KN
-Storage Details - SSD-VM-HIGH-CAPACITY-PERF-MK
+Storage Details - SSD-VM-HIGH-CAPACITY-PERF-MK
Display Name | [PHARMAX-VSI-DC] SSD-VM-HIGH-CAPACITY-PERF-MK |
Machine Manager | vcenter-01v.pharmax.local |
@@ -922,7 +919,7 @@
Capacity | 931 GB |
Table 67 - Storage Details - SSD-VM-HIGH-CAPACITY-PERF-MK
-Storage Details - TrueNAS_VM_DATA
+Storage Details - TrueNAS_VM_DATA
Display Name | [PHARMAX-VSI-DC] TrueNAS_VM_DATA |
Machine Manager | vcenter-01v.pharmax.local |
@@ -937,7 +934,7 @@
Capacity | 829 GB |
Table 68 - Storage Details - TrueNAS_VM_DATA
-Storage Details - TrueNAS_VM_DATA (1)
+Storage Details - TrueNAS_VM_DATA (1)
Display Name | [PHARMAX-VSI-DC] TrueNAS_VM_DATA (1) |
Machine Manager | vcenter-01v.pharmax.local |
@@ -952,7 +949,7 @@
Capacity | 0 KB |
Table 69 - Storage Details - TrueNAS_VM_DATA (1)
-Storage Details - VMDatastore
+Storage Details - VMDatastore
Display Name | [PHARMAX-VSI-EDGE] VMDatastore |
Machine Manager | vcenter-03v.pharmax.local |
@@ -967,7 +964,7 @@
Capacity | 100 GB |
Table 70 - Storage Details - VMDatastore
-Storage Details - VMWARE_VDI_DATASTORE_2
+Storage Details - VMWARE_VDI_DATASTORE_2
Display Name | [PHARMAX-VSI-DC] VMWARE_VDI_DATASTORE_2 |
Machine Manager | vcenter-01v.pharmax.local |
@@ -982,7 +979,7 @@
Capacity | 20 GB |
Table 71 - Storage Details - VMWARE_VDI_DATASTORE_2
-1.4.3 Storage Groups
The following section details storage group used to define groups of storage locations so they can function as one storage entity for Horizon-APV-01V.
1.4.3.1 Storage Group - APPVOL-SG
+1.4.3 Storage Groups
The following section details storage group used to define groups of storage locations so they can function as one storage entity for Horizon-APV-01V.
1.4.3.1 Storage Group - APPVOL-SG
Distribution Strategy | Spread |
Template Storage | SSD-VM-HIGH-CAPACITY-PERF-MK |
@@ -993,24 +990,24 @@
Creation Date | Aug 25 2022 01:36PM |
Auto Import | Yes |
Auto Replicate | Yes |
-Last Replicated Date | Jan 02 2024 11:33AM |
-Last Imported Date | Jan 02 2024 08:34AM |
+Last Replicated Date | Nov 21 2024 08:03PM |
+Last Imported Date | Nov 21 2024 04:14PM |
Last Curated Date | Aug 25 2022 01:42PM |
Table 72 - Storage Group - APPVOL-SG
-Datastore Members
+Datastore Members
Name | DataCenter | Space Used | Space Total | Is Deleted |
SSD-VM-HIGH-CAPACITY-PERF-KN | PHARMAX-VSI-DC | 726 GB | 894 GB | No |
SSD-VM-HIGH-CAPACITY-PERF-MK | PHARMAX-VSI-DC | 793 GB | 931 GB | No |
Table 73 - Datastore Members - APPVOL-SG
-1.4.3.2 Storage Group - CAL-PB-01
+1.4.3.2 Storage Group - CAL-PB-01
Distribution Strategy | Round-robin |
Template Storage | SSD-VM-HIGH-CAPACITY-PERF-KN |
Members Count | 2 |
Member Name Prefix | HDD-VM-MED-PERF |
-Space Used | 2.68 TB |
+Space Used | 2.69 TB |
Total Space | 7.28 TB |
Creation Date | Oct 05 2022 02:11PM |
Auto Import | No |
@@ -1020,38 +1017,39 @@
Last Curated Date | Oct 05 2022 02:47PM |
Table 74 - Storage Group - CAL-PB-01
-Datastore Members
+Datastore Members
Name | DataCenter | Space Used | Space Total | Is Deleted |
HDD-VM-MED-PERF-01 | PHARMAX-VSI-DC | 1.5 TB | 3.64 TB | No |
HDD-VM-MED-PERF-02 | PHARMAX-VSI-DC | 1.19 TB | 3.64 TB | No |
Table 75 - Datastore Members - CAL-PB-01
-1.5 Activity
1.5.1 Scheduled Jobs
The following section provide a summary of scheduled jobs for Horizon-APV-01V.
+1.5 Activity
1.5.1 Scheduled Jobs
The following section provide a summary of scheduled jobs for Horizon-APV-01V.
Name | Status | Interval | Last Run At |
-Audit Vms | enabled | 9 hours 21 minutes | about 3 hours ago |
-Collect Logs | enabled | 12 hours | about 3 hours ago |
-Expire Sessions | enabled | 33 minutes | 16 minutes ago |
+Audit Vms | enabled | 9 hours 21 minutes | about 4 hours ago |
+Collect Logs | enabled | 12 hours | about 4 hours ago |
+Expire Sessions | enabled | 33 minutes | 11 minutes ago |
Finalize Application Deletion | enabled | 10 minutes | 10 minutes ago |
Finalize Package Deletion | enabled | 10 minutes | 10 minutes ago |
-Fulfill Writables | enabled | 4 hours 1 minute | about 3 hours ago |
-Import Storage Groups | enabled | 4 hours | about 3 hours ago |
-License Extension | enabled | 24 hours | about 3 hours ago |
+Fulfill Writables | enabled | 4 hours 1 minute | about 4 hours ago |
+Import Storage Groups | enabled | 4 hours | about 4 hours ago |
+License Extension | enabled | 24 hours | about 4 hours ago |
Marshal Writables | enabled | 2 minutes 30 seconds | 5 minutes ago |
-Prune Archival Tables Job | enabled | 24 hours | about 19 hours ago |
-Refresh Attachments | enabled | 3 hours 35 minutes | about 3 hours ago |
-Refresh Computers | enabled | 2 hours 11 minutes | about 1 hour ago |
-Refresh Domains | enabled | 8 hours | about 3 hours ago |
-Refresh Machines | enabled | 22 hours | about 19 hours ago |
-Remove Stale Storage Locations | enabled | 4 hours | about 1 hour ago |
-Replicate Storage Groups | enabled | 1 hour | 22 minutes ago |
-Sweep Vms | enabled | 24 hours | about 19 hours ago |
-Sync Ad | enabled | 59 minutes | 23 minutes ago |
-Sync Instances | enabled | 12 hours | about 3 hours ago |
-Synchronize Storage | enabled | 3 hours 1 minute | 22 minutes ago |
-Update Sync Counts | enabled | 15 minutes | 7 minutes ago |
+Prune Archival Tables Job | enabled | 24 hours | about 4 hours ago |
+Refresh Attachments | enabled | 3 hours 35 minutes | 11 minutes ago |
+Refresh Computers | enabled | 2 hours 11 minutes | 11 minutes ago |
+Refresh Domains | enabled | 8 hours | about 4 hours ago |
+Refresh Machines | enabled | 22 hours | about 4 hours ago |
+Remove Stale Storage Locations | enabled | 4 hours | 11 minutes ago |
+Replicate Storage Groups | enabled | 1 hour | 10 minutes ago |
+Sweep Vms | enabled | 24 hours | about 4 hours ago |
+Sync Ad | enabled | 59 minutes | 10 minutes ago |
+Sync Instances | enabled | 12 hours | about 4 hours ago |
+Sync Integrations | enabled | 12 hours | about 4 hours ago |
+Synchronize Storage | enabled | 3 hours 1 minute | 10 minutes ago |
+Update Sync Counts | enabled | 15 minutes | 10 minutes ago |
Table 76 - Scheduled Jobs - Horizon-APV-01V.pharmax.local
-1.6 Configuration
1.6.1 License Information
The following section details license information for Horizon-APV-01V.
+1.6 Configuration
1.6.1 License Information
The following section details license information for Horizon-APV-01V.
Key Create Date | 2020-10-07 17:03:38 -0700 |
Key Valid | Yes |
@@ -1081,12 +1079,12 @@
Options | -- |
Table 77 - License - Horizon-APV-01V.pharmax.local
-1.6.2 Active Directory Domain
The following section details active directory doamins are used for authentication on Horizon-APV-01V.
1.6.2.1 AD Domain Summary
+1.6.2 Active Directory Domain
The following section details active directory doamins are used for authentication on Horizon-APV-01V.
1.6.2.1 AD Domain Summary
Domain | NetBIOS | Base | Username | Security | SSL Verify | Port |
pharmax.local | PHARMAX | -- | administrator@pharmax.local | LADP | Yes | 389 |
Table 78 - AD Domain Summary - Horizon-APV-01V.pharmax.local
-AD Domain Details - pharmax.local
+AD Domain Details - pharmax.local
Username | administrator@pharmax.local |
Base | -- |
@@ -1099,20 +1097,20 @@
Updated At | 2022-08-25 13:31:15 -0400 |
Table 79 - AD Domain Details - pharmax.local
-1.6.3 Administrator Roles
The following section details administrative rolls for Horizon-APV-01V.
+1.6.3 Administrator Roles
The following section details administrative rolls for Horizon-APV-01V.
Group UPN | Role | Type | Created at |
PHARMAX\AD - SRM Recovery Group | Writables Administrators | Group | 10/5/2022 |
-PHARMAX\ho-mar-distlist1 | AppStacks Administrators | Group | 10/5/2022 |
+PHARMAX\ho-mar-distlist1 | AppStacks Administrators (Custom) | Group | 10/5/2022 |
PHARMAX\Domain Admins | Administrators | Group | 8/25/2022 |
Table 80 - Administrators Roles - Horizon-APV-01V.pharmax.local
-1.6.4 Machine Managers
The following section provide a summary of machine managers for Horizon-APV-01V.
1.6.4.1 Machine Manager Summary
+1.6.4 Machine Managers
The following section provide a summary of machine managers for Horizon-APV-01V.
1.6.4.1 Machine Manager Summary
Host | Username | Type |
vcenter-01v.pharmax.local | administrator@vsphere.local | VMware vCenter |
vcenter-03v.pharmax.local | administrator@vsphere.local | VMware vCenter |
Table 81 - Machine Managers - Horizon-APV-01V.pharmax.local
-Machine Manager Details - vcenter-01v.pharmax.local
+Machine Manager Details - vcenter-01v.pharmax.local
Type | VMware vCenter |
Host Name | vcenter-01v.pharmax.local |
@@ -1125,10 +1123,10 @@
Use Async | -- |
Concurrent Mount Operations | 5 |
SSL Validation | Yes |
-SSL Fingerprint | f7:ab:40:59:9e:60:29:20:9d:d7:53:c1:a9:9d:04:ef:b3:c9:98:be:41:51:05:32:a0:b5:51:0d:7f:26:df:e8 |
+SSL Fingerprint | -- |
Table 82 - Machine Manager Details - vcenter-01v.pharmax.local
-Machine Manager Details - vcenter-03v.pharmax.local
+Machine Manager Details - vcenter-03v.pharmax.local
Type | VMware vCenter |
Host Name | vcenter-03v.pharmax.local |
@@ -1144,14 +1142,14 @@
SSL Fingerprint | -- |
Table 83 - Machine Manager Details - vcenter-03v.pharmax.local
-1.6.5 Storage Overview
The following section details off location of templates for Horizon-APV-01V.
1.6.5.1 Storage Overview Packages
+1.6.5 Storage Overview
The following section details off location of templates for Horizon-APV-01V.
1.6.5.1 Storage Overview Packages
Default Storage Location | [PHARMAX-VSI-DC] SSD-VM-HIGH-CAPACITY-PERF-MK |
Default Storage Path | appvolumes/packages |
Default Template Path | appvolumes/packages_templates |
Table 84 - Packages - Horizon-APV-01V.pharmax.local
-1.6.5.2 Storage Overview Writable Volumes
+1.6.5.2 Storage Overview Writable Volumes
Default Storage Location | [PHARMAX-VSI-DC] SSD-VM-HIGH-CAPACITY-PERF-MK |
Default Storage Path | appvolumes/writables |
@@ -1160,26 +1158,26 @@
Template Path | appvolumes/writables_templates |
Table 85 - Packages - Horizon-APV-01V.pharmax.local
-1.6.6 App Volumes Manager Servers
The following section details all the App Volumes manager servers on Horizon-APV-01V.
1.6.6.1 App Volumes Manager Server Details - Horizon-APV-01V
+1.6.6 App Volumes Manager Servers
The following section details all the App Volumes manager servers on Horizon-APV-01V.
1.6.6.1 App Volumes Manager Server Details - Horizon-APV-01V
Manager Name | Version | Status | First Seen | Last Seen |
-HORIZON-APV-01V | 4.12.0.81 | Registered | Aug 25 2022 | Jan 02 2024 |
+HORIZON-APV-01V | 4.15.0.687 | Registered | Aug 25 2022 | Nov 21 2024 |
Table 86 - App Volumes Manager Server Details - Horizon-APV-01V
-Manager Servers Details - HORIZON-APV-01V
+Manager Servers Details - HORIZON-APV-01V
-Product Version | App Volumes 4, version 2309 (4.12.0.81) |
-Internal Version | 4.12.0.81 |
+Product Version | App Volumes 4, version 2410 (4.15.0.687) |
+Internal Version | 4.15.0.687 |
Domain Name | PHARMAX |
Computer Name | HORIZON-APV-01V |
-Computer FQDN | Unknown |
+Computer FQDN | Horizon-APV-01V.pharmax.local |
Registered | Yes |
Secure | Yes |
Status | Registered |
First Seen At | Aug 25 2022 |
-Last Seen At | Jan 02 2024 |
+Last Seen At | Nov 21 2024 |
Table 87 - Manager Servers Details - HORIZON-APV-01V
-1.6.7 Settings
The following section details app volumes settings for Horizon-APV-01V.
+1.6.7 Settings
The following section details app volumes settings for Horizon-APV-01V.
UI Session Timeout | 30 |
Non-Domain Entities | No |
@@ -1187,14 +1185,14 @@
Writeable Volumes Regular Backups Interval | 7 - days |
Writeable Volumes Storage Location | SSD-VM-HIGH-CAPACITY-PERF-MK |
Writeable Volumes Storage Path | appvolumes/writables_backup |
-Disable Agent Session Cookie | No |
-Disable Volume Cache | No |
-Disable Token AD Query | No |
+Disable Agent Session Cookie | -- |
+Disable Volume Cache | -- |
+Disable Token AD Query | -- |
Enable Volumes (2.x) | No |
-Allow package delivery to any operating system | Yes |
+Allow package delivery to any operating system | -- |
VMDK Package Resiliency | No |
Join the VMware CEIP | Yes |
Table 88 - Settings - Horizon-APV-01V.pharmax.local
-
+
\ No newline at end of file
diff --git a/Samples/Sample VMware AppVolumes As Built Report.pdf b/Samples/Sample VMware AppVolumes As Built Report.pdf
deleted file mode 100644
index 0a5b5aa..0000000
Binary files a/Samples/Sample VMware AppVolumes As Built Report.pdf and /dev/null differ
diff --git a/Src/Private/Get-AbrAPPVolApplication.ps1 b/Src/Private/Get-AbrAPPVolApplication.ps1
index 6123b0a..c2370b4 100644
--- a/Src/Private/Get-AbrAPPVolApplication.ps1
+++ b/Src/Private/Get-AbrAPPVolApplication.ps1
@@ -5,7 +5,7 @@ function Get-AbrAPPVolApplication {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAPPVolApplication {
begin {
Write-PScriboMessage "Products InfoLevel set at $($InfoLevel.AppVolumes.Products)."
- Write-PscriboMessage "Collecting Products information."
+ Write-PScriboMessage "Collecting Products information."
}
process {
@@ -31,12 +31,12 @@ function Get-AbrAPPVolApplication {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Products = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_products"
- } else {$Products = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_products"}
+ } else { $Products = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_products" }
if ($Products.data) {
- section -Style Heading3 'Application Summary' {
+ Section -Style Heading3 'Application Summary' {
Paragraph "The following section provide a summary of the applications captured on $($AppVolServer.split('.')[0])."
- Blankline
+ BlankLine
$OutObj = @()
foreach ($Product in $Products.data) {
try {
@@ -44,9 +44,9 @@ function Get-AbrAPPVolApplication {
if ($PSVersionTable.PSEdition -eq 'Core') {
$ProductIDSource = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_products/$ProductID/app_packages?include=app_markers"
- } else {$ProductIDSource = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_products/$ProductID/app_packages?include=app_markers"}
+ } else { $ProductIDSource = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_products/$ProductID/app_packages?include=app_markers" }
- $ProductPackage = $ProductIDSource.data | Where-Object {$_.app_markers.name -eq 'CURRENT'}
+ $ProductPackage = $ProductIDSource.data | Where-Object { $_.app_markers.name -eq 'CURRENT' }
$inObj = [ordered] @{
'Name' = $Product.Name
@@ -58,9 +58,8 @@ function Get-AbrAPPVolApplication {
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
$TableParams = @{
@@ -73,34 +72,34 @@ function Get-AbrAPPVolApplication {
}
$OutObj | Sort-Object -Property Name | Table @TableParams
if ($InfoLevel.AppVolumes.Products -ge 2) {
- section -Style Heading4 "Applications Details" {
+ Section -Style Heading4 "Applications Details" {
foreach ($Product in $Products.data | Sort-Object -Property Name) {
try {
$ProductID = $Product.id
if ($PSVersionTable.PSEdition -eq 'Core') {
$ProductIDSource = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_products/$ProductID/app_packages?include=app_markers"
- } else {$ProductIDSource = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_products/$ProductID/app_packages?include=app_markers"}
+ } else { $ProductIDSource = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_products/$ProductID/app_packages?include=app_markers" }
if ($PSVersionTable.PSEdition -eq 'Core') {
$ActiveDirectoryUsers = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/users"
- } else {$ActiveDirectoryUsers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/users"}
+ } else { $ActiveDirectoryUsers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/users" }
foreach ($ActiveDirectoryUser in $ActiveDirectoryUsers) {
- if($ActiveDirectoryUser){
+ if ($ActiveDirectoryUser) {
if ($PSVersionTable.PSEdition -eq 'Core') {
$UserDetails = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/users/$($ActiveDirectoryUser.id)"
- } else {$UserDetails = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/users/$($ActiveDirectoryUser.id)"}
- if($UserDetails.object_guid -like $Product.Owner_Guid){
+ } else { $UserDetails = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/users/$($ActiveDirectoryUser.id)" }
+ if ($UserDetails.object_guid -like $Product.Owner_Guid) {
$OwnerName = $UserDetails.upn
Break
}
}
}
- $ProductPackage = $ProductIDSource.data | Where-Object {$_.app_markers.name -eq 'CURRENT'}
+ $ProductPackage = $ProductIDSource.data | Where-Object { $_.app_markers.name -eq 'CURRENT' }
if ($Product) {
- section -Style Heading5 "Application Details - $($Product.Name)" {
+ Section -Style Heading5 "Application Details - $($Product.Name)" {
$OutObj = @()
$inObj = [ordered] @{
'Name' = $Product.Name
@@ -127,27 +126,27 @@ function Get-AbrAPPVolApplication {
}
$OutObj | Table @TableParams
try {
- $ProductPackages = $ProductIDSource.data
+ $ProductPackages = $ProductIDSource.data
if ($ProductPackage) {
- section -ExcludeFromTOC -Style NOTOCHeading6 "Application Packages" {
+ Section -ExcludeFromTOC -Style NOTOCHeading6 "Application Packages" {
$OutObj = @()
foreach ($Package in $ProductPackages) {
$inObj = [ordered] @{
'Name' = $Package.Name
'Version' = $Package.Version
'Created' = Switch ($Package.created_at) {
- $Null {'--'}
- default {([DateTime]$Package.created_at).ToShortDateString()}
+ $Null { '--' }
+ default { ([DateTime]$Package.created_at).ToShortDateString() }
}
'Mounted' = Switch ($Package.mounted_at) {
- $Null {'--'}
- default {([DateTime]$Package.mounted_at).ToShortDateString()}
+ $Null { '--' }
+ default { ([DateTime]$Package.mounted_at).ToShortDateString() }
}
'Size' = $Package.size_human
'Current' = Switch ($Package.app_markers.name) {
- $null {'No'}
- 'CURRENT' {'Yes'}
- default {'--'}
+ $null { 'No' }
+ 'CURRENT' { 'Yes' }
+ default { '--' }
}
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
@@ -163,14 +162,14 @@ function Get-AbrAPPVolApplication {
}
$OutObj | Sort-Object -Property 'Version' -Descending | Table @TableParams
try {
- $ProductPackage = ($ProductIDSource.data | Where-Object {$_.app_markers.name -eq 'CURRENT'}).id
+ $ProductPackage = ($ProductIDSource.data | Where-Object { $_.app_markers.name -eq 'CURRENT' }).id
if ($PSVersionTable.PSEdition -eq 'Core') {
$ProductPrograms = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_packages/$ProductPackage/programs"
- } else {$ProductPrograms = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_packages/$ProductPackage/programs"}
+ } else { $ProductPrograms = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_packages/$ProductPackage/programs" }
if ($ProductPrograms.data) {
- section -ExcludeFromTOC -Style NOTOCHeading6 "Application Programs" {
+ Section -ExcludeFromTOC -Style NOTOCHeading6 "Application Programs" {
$OutObj = @()
foreach ($Program in $ProductPrograms.data) {
$inObj = [ordered] @{
@@ -193,22 +192,22 @@ function Get-AbrAPPVolApplication {
}
}
} catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
} catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
try {
$ProductID = $Product.id
if ($PSVersionTable.PSEdition -eq 'Core') {
$ProductAssignments = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_products/$ProductID/assignments?include=entities"
- } else {$ProductAssignments = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_products/$ProductID/assignments?include=entities"}
+ } else { $ProductAssignments = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -ContentType 'application/json' -Uri "https://$AppVolServer/app_volumes/app_products/$ProductID/assignments?include=entities" }
if ($ProductAssignments.data) {
- section -ExcludeFromTOC -Style NOTOCHeading6 "Application Assignment" {
+ Section -ExcludeFromTOC -Style NOTOCHeading6 "Application Assignment" {
$OutObj = @()
foreach ($ProductAssignment in $ProductAssignments.data) {
try {
@@ -217,9 +216,8 @@ function Get-AbrAPPVolApplication {
'Type' = $ProductAssignment.entities.entity_type
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -234,22 +232,21 @@ function Get-AbrAPPVolApplication {
$OutObj | Sort-Object -Property 'Name' | 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
}
}
}
}
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolADDomain.ps1 b/Src/Private/Get-AbrAppVolADDomain.ps1
index 3f658e9..f23d9f5 100644
--- a/Src/Private/Get-AbrAppVolADDomain.ps1
+++ b/Src/Private/Get-AbrAppVolADDomain.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolADDomain {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolADDomain {
begin {
Write-PScriboMessage "ADDomains InfoLevel set at $($InfoLevel.AppVolumes.ADDomains)."
- Write-PscriboMessage "Collecting Active Directory Domain information."
+ Write-PScriboMessage "Collecting Active Directory Domain information."
}
process {
@@ -31,23 +31,22 @@ function Get-AbrAppVolADDomain {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$LDAPDomains = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/ldap_domains"
- } else {$LDAPDomains = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/ldap_domains"}
+ } else { $LDAPDomains = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/ldap_domains" }
if ($LDAPDomains) {
- section -Style Heading3 "Active Directory Domain" {
+ Section -Style Heading3 "Active Directory Domain" {
Paragraph "The following section details active directory doamins are used for authentication on $($AppVolServer.split('.')[0])."
BlankLine
$OutObj = @()
foreach ($LDAPDomain in $LDAPDomains.ldap_domains | Sort-Object -Property Domain) {
- If($LDAPDomain.ldaps -like 'True'){
+ If ($LDAPDomain.ldaps -like 'True') {
$Security = 'LADPS'
- }elseif($LDAPDomain.ldaps -like 'False' -and $LDAPDomain.ldap_tls -like 'False'){
+ } elseif ($LDAPDomain.ldaps -like 'False' -and $LDAPDomain.ldap_tls -like 'False') {
$Security = 'LADP'
- }
- elseif($LDAPDomain.ldap_tls -like 'True'){
+ } elseif ($LDAPDomain.ldap_tls -like 'True') {
$Security = 'LADPS over TLS'
}
- section -Style Heading4 "AD Domain Summary" {
+ Section -Style Heading4 "AD Domain Summary" {
try {
$inObj = [ordered] @{
'Domain' = $LDAPDomain.domain
@@ -69,14 +68,13 @@ function Get-AbrAppVolADDomain {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
$OutObj | Table @TableParams
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
if ($InfoLevel.AppVolumes.ADDomains -ge 2) {
$OutObj = @()
foreach ($LDAPDomain in $LDAPDomains.ldap_domains | Sort-Object -Property Domain) {
- section -ExcludeFromTOC -Style NOTOCHeading5 "AD Domain Details - $($LDAPDomain.domain)" {
+ Section -ExcludeFromTOC -Style NOTOCHeading5 "AD Domain Details - $($LDAPDomain.domain)" {
try {
$inObj = [ordered] @{
'Username' = $LDAPDomain.username
@@ -88,10 +86,9 @@ function Get-AbrAppVolADDomain {
'Port' = $LDAPDomain.effective_port
'Created At' = $LDAPDomain.created_at
'Updated At' = $LDAPDomain.updated_at
- }
+ }
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
-
$TableParams = @{
Name = "AD Domain Details - $($LDAPDomain.domain)"
List = $true
@@ -101,9 +98,8 @@ function Get-AbrAppVolADDomain {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
$OutObj | Table @TableParams
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
@@ -114,9 +110,8 @@ function Get-AbrAppVolADDomain {
}
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolADGroup.ps1 b/Src/Private/Get-AbrAppVolADGroup.ps1
index d5522ef..75f9962 100644
--- a/Src/Private/Get-AbrAppVolADGroup.ps1
+++ b/Src/Private/Get-AbrAppVolADGroup.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolADGroup {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolADGroup {
begin {
Write-PScriboMessage "ADGroups InfoLevel set at $($InfoLevel.AppVolumes.ADGroups)."
- Write-PscriboMessage "Collecting Active Directory Group information."
+ Write-PScriboMessage "Collecting Active Directory Group information."
}
process {
@@ -31,9 +31,9 @@ function Get-AbrAppVolADGroup {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$ActiveDirectoryGroups = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/groups"
- } else {$ActiveDirectoryGroups = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/groups"}
+ } else { $ActiveDirectoryGroups = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/groups" }
if ($ActiveDirectoryGroups) {
- section -Style Heading3 "Managed Groups" {
+ Section -Style Heading3 "Managed Groups" {
Paragraph "The following section provide a summary of Groups that have assignments on $($AppVolServer.split('.')[0])."
BlankLine
$OutObj = @()
@@ -43,13 +43,12 @@ function Get-AbrAppVolADGroup {
'Group Name' = $ActiveDirectoryGroup.Name
'Writable' = $ActiveDirectoryGroup.writables
'Assignments' = $ActiveDirectoryGroup.application_assignment_count
- 'Last Logon' = $ActiveDirectoryGroup.last_login_human.split()[0,1,2] -join ' '
+ 'Last Logon' = $ActiveDirectoryGroup.last_login_human.split()[0, 1, 2] -join ' '
'Status' = $ActiveDirectoryGroup.status
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -64,9 +63,8 @@ function Get-AbrAppVolADGroup {
$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-AbrAppVolADOU.ps1 b/Src/Private/Get-AbrAppVolADOU.ps1
index 45f597a..84571ec 100644
--- a/Src/Private/Get-AbrAppVolADOU.ps1
+++ b/Src/Private/Get-AbrAppVolADOU.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolADOU {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolADOU {
begin {
Write-PScriboMessage "ADOus InfoLevel set at $($InfoLevel.AppVolumes.ADOus)."
- Write-PscriboMessage "Collecting Active Directory OU information."
+ Write-PScriboMessage "Collecting Active Directory OU information."
}
process {
@@ -31,10 +31,10 @@ function Get-AbrAppVolADOU {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$ActiveDirectoryOUs = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/org_units"
- } else {$ActiveDirectoryOUs = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/org_units"}
+ } else { $ActiveDirectoryOUs = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/org_units" }
if ($ActiveDirectoryOUs) {
- section -Style Heading3 "Managed OU's" {
+ Section -Style Heading3 "Managed OU's" {
Paragraph "The following section provide a summary of Organizational Units (OUs) that have assignments on $($AppVolServer.split('.')[0])."
BlankLine
$OutObj = @()
@@ -42,15 +42,14 @@ function Get-AbrAppVolADOU {
try {
$inObj = [ordered] @{
'Name' = $ActiveDirectoryOU.Name
- 'Last Logon' = $ActiveDirectoryOU.last_login_human.split()[0,1,2] -join ' '
+ 'Last Logon' = $ActiveDirectoryOU.last_login_human.split()[0, 1, 2] -join ' '
'Status' = $ActiveDirectoryOU.status
'Writable' = $ActiveDirectoryOU.writables
'Assignments' = $ActiveDirectoryOU.application_assignment_count
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -62,12 +61,11 @@ function Get-AbrAppVolADOU {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
- $OutObj| Sort-Object -Property Name | Table @TableParams
+ $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-AbrAppVolADUser.ps1 b/Src/Private/Get-AbrAppVolADUser.ps1
index 537e2b8..b5c4f17 100644
--- a/Src/Private/Get-AbrAppVolADUser.ps1
+++ b/Src/Private/Get-AbrAppVolADUser.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolADUser {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolADUser {
begin {
Write-PScriboMessage "ADUsers InfoLevel set at $($InfoLevel.AppVolumes.ADUsers)."
- Write-PscriboMessage "Collecting Active Directory User information."
+ Write-PScriboMessage "Collecting Active Directory User information."
}
process {
@@ -31,18 +31,18 @@ function Get-AbrAppVolADUser {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$ActiveDirectoryUsers = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/users"
- } else {$ActiveDirectoryUsers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/users"}
+ } else { $ActiveDirectoryUsers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/users" }
if ($ActiveDirectoryUsers) {
- section -Style Heading3 "Managed Users" {
+ Section -Style Heading3 "Managed Users" {
Paragraph "The following section provide a summary of Users who have logged-in to a managed computer or have assignments on $($AppVolServer.split('.')[0])."
- Blankline
+ BlankLine
$OutObj = @()
foreach ($ActiveDirectoryUser in $ActiveDirectoryUsers) {
if ($ActiveDirectoryUser) {
- if($ActiveDirectoryUser.last_login_human){
- $LastLogonUser = $ActiveDirectoryUser.last_login_human.split()[0,1,2] -join ' '
- }else{
+ if ($ActiveDirectoryUser.last_login_human) {
+ $LastLogonUser = $ActiveDirectoryUser.last_login_human.split()[0, 1, 2] -join ' '
+ } else {
$LastLogonUser = "Never"
}
try {
@@ -56,9 +56,8 @@ function Get-AbrAppVolADUser {
'Status' = $ActiveDirectoryUser.status
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
@@ -71,12 +70,11 @@ function Get-AbrAppVolADUser {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
- $OutObj| Sort-Object -Property upn | Table @TableParams
+ $OutObj | Sort-Object -Property upn | Table @TableParams
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolAdminRole.ps1 b/Src/Private/Get-AbrAppVolAdminRole.ps1
index 8877ccd..30eb1c1 100644
--- a/Src/Private/Get-AbrAppVolAdminRole.ps1
+++ b/Src/Private/Get-AbrAppVolAdminRole.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolAdminRole {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolAdminRole {
begin {
Write-PScriboMessage "AdminGroups InfoLevel set at $($InfoLevel.AppVolumes.AdminGroups)."
- Write-PscriboMessage "Collecting Administrator Roles information."
+ Write-PScriboMessage "Collecting Administrator Roles information."
}
process {
@@ -31,10 +31,10 @@ function Get-AbrAppVolAdminRole {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$AdminGroups = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/group_permissions"
- } else {$AdminGroups = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/group_permissions"}
+ } else { $AdminGroups = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/group_permissions" }
if ($AdminGroups) {
- section -Style Heading3 "Administrator Roles" {
+ Section -Style Heading3 "Administrator Roles" {
Paragraph "The following section details administrative rolls for $($AppVolServer.split('.')[0])."
BlankLine
@@ -48,9 +48,8 @@ function Get-AbrAppVolAdminRole {
'Created at' = ([DateTime]$AdminGroup.created_at).ToShortDateString()
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -62,12 +61,11 @@ function Get-AbrAppVolAdminRole {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
- $OutObj| Sort-Object -Property assignee_upn | Table @TableParams
+ $OutObj | Sort-Object -Property assignee_upn | Table @TableParams
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolAppstack.ps1 b/Src/Private/Get-AbrAppVolAppstack.ps1
index 9a45cc1..5ccdedb 100644
--- a/Src/Private/Get-AbrAppVolAppstack.ps1
+++ b/Src/Private/Get-AbrAppVolAppstack.ps1
@@ -5,7 +5,7 @@ function Get-AbrAPPVolAppstack {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAPPVolAppstack {
begin {
Write-PScriboMessage "AppStacks InfoLevel set at $($InfoLevel.AppVolumes.AppStacks)."
- Write-PscriboMessage "Collecting AppStacks information."
+ Write-PScriboMessage "Collecting AppStacks information."
}
process {
@@ -31,12 +31,12 @@ function Get-AbrAPPVolAppstack {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$AppStacks = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_products"
- } else {$AppStacks = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_products"}
+ } else { $AppStacks = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_products" }
if ($AppStacks) {
- section -Style Heading3 'AppStacks Summary' {
+ Section -Style Heading3 'AppStacks Summary' {
Paragraph "The following section provide a summary of the AppStacks components on $($AppVolServer.split('.')[0])."
- Blankline
+ BlankLine
$OutObj = @()
foreach ($AppStack in $AppStacks.data) {
try {
@@ -44,9 +44,9 @@ function Get-AbrAPPVolAppstack {
if ($PSVersionTable.PSEdition -eq 'Core') {
$AppStackIDSource = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_products/$AppStackID/app_packages?include=app_markers"
- } else {$AppStackIDSource = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_products/$AppStackID/app_packages?include=app_markers"}
+ } else { $AppStackIDSource = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_products/$AppStackID/app_packages?include=app_markers" }
- $AppStackPackage = $AppStackIDSource.data | Where-Object {$_.app_markers.name -eq 'CURRENT'}
+ $AppStackPackage = $AppStackIDSource.data | Where-Object { $_.app_markers.name -eq 'CURRENT' }
$inObj = [ordered] @{
'Name' = $AppStack.Name
@@ -58,9 +58,8 @@ function Get-AbrAPPVolAppstack {
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
$TableParams = @{
@@ -73,20 +72,20 @@ function Get-AbrAPPVolAppstack {
}
$OutObj | Sort-Object -Property Name | Table @TableParams
if ($InfoLevel.AppVolumes.AppStacks -ge 2) {
- section -Style Heading4 "AppStacks Details" {
+ Section -Style Heading4 "AppStacks Details" {
Paragraph "The following section details AppStacks configuration information on $($AppVolServer.split('.')[0])."
- Blankline
+ BlankLine
foreach ($AppStack in $AppStacks.data | Sort-Object -Property Name) {
try {
$AppStackID = $appstack.id
if ($PSVersionTable.PSEdition -eq 'Core') {
$AppStackIDSource = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_products/$AppStackID/app_packages?include=app_markers"
- } else {$AppStackIDSource = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_products/$AppStackID/app_packages?include=app_markers"}
+ } else { $AppStackIDSource = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_products/$AppStackID/app_packages?include=app_markers" }
- $AppStackPackage = $AppStackIDSource.data | Where-Object {$_.app_markers.name -eq 'CURRENT'}
+ $AppStackPackage = $AppStackIDSource.data | Where-Object { $_.app_markers.name -eq 'CURRENT' }
if ($AppStackPackage) {
- section -Style Heading5 "$($AppStack.Name)" {
+ Section -Style Heading5 "$($AppStack.Name)" {
$OutObj = @()
$inObj = [ordered] @{
'Name' = $AppStack.Name
@@ -118,27 +117,27 @@ function Get-AbrAPPVolAppstack {
}
$OutObj | Table @TableParams
try {
- $AppStackPackages = $AppStackIDSource.data
+ $AppStackPackages = $AppStackIDSource.data
if ($AppStackPackage) {
- section -ExcludeFromTOC -Style NOTOCHeading6 "Packages" {
+ Section -ExcludeFromTOC -Style NOTOCHeading6 "Packages" {
$OutObj = @()
foreach ($Package in $AppStackPackages) {
$inObj = [ordered] @{
'Name' = $Package.Name
'Version' = $Package.Version
'Created' = Switch ($Package.created_at) {
- $Null {'--'}
- default {([DateTime]$Package.created_at).ToShortDateString()}
+ $Null { '--' }
+ default { ([DateTime]$Package.created_at).ToShortDateString() }
}
'Mounted' = Switch ($Package.mounted_at) {
- $Null {'--'}
- default {([DateTime]$Package.mounted_at).ToShortDateString()}
+ $Null { '--' }
+ default { ([DateTime]$Package.mounted_at).ToShortDateString() }
}
'Size' = $Package.size_human
'Current' = Switch ($Package.app_markers.name) {
- $null {'No'}
- 'CURRENT' {'Yes'}
- default {'--'}
+ $null { 'No' }
+ 'CURRENT' { 'Yes' }
+ default { '--' }
}
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
@@ -154,14 +153,14 @@ function Get-AbrAPPVolAppstack {
}
$OutObj | Sort-Object -Property 'Version' -Descending | Table @TableParams
try {
- $AppStackPackage = ($AppStackIDSource.data | Where-Object {$_.app_markers.name -eq 'CURRENT'}).id
+ $AppStackPackage = ($AppStackIDSource.data | Where-Object { $_.app_markers.name -eq 'CURRENT' }).id
if ($PSVersionTable.PSEdition -eq 'Core') {
$AppStackPrograms = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$AppStackPackage/programs"
- } else {$AppStackPrograms = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$AppStackPackage/programs"}
+ } else { $AppStackPrograms = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$AppStackPackage/programs" }
if ($AppStackPrograms) {
- section -ExcludeFromTOC -Style NOTOCHeading6 "Programs" {
+ Section -ExcludeFromTOC -Style NOTOCHeading6 "Programs" {
$OutObj = @()
foreach ($Program in $AppStackPrograms.data) {
$inObj = [ordered] @{
@@ -184,22 +183,22 @@ function Get-AbrAPPVolAppstack {
}
}
} catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
} catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
try {
$AppStackID = $appstack.id
if ($PSVersionTable.PSEdition -eq 'Core') {
$AppStackAssignments = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_products/$AppStackID/assignments?include=entities"
- } else {$AppStackAssignments = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_products/$AppStackID/assignments?include=entities"}
+ } else { $AppStackAssignments = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_products/$AppStackID/assignments?include=entities" }
if ($AppStackAssignments) {
- section -ExcludeFromTOC -Style NOTOCHeading6 "Assignment" {
+ Section -ExcludeFromTOC -Style NOTOCHeading6 "Assignment" {
$OutObj = @()
foreach ($AppStackAssignment in $AppStackAssignments.data) {
try {
@@ -208,9 +207,8 @@ function Get-AbrAPPVolAppstack {
'Type' = $AppStackAssignment.entities.entity_type
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -225,22 +223,21 @@ function Get-AbrAPPVolAppstack {
$OutObj | Sort-Object -Property 'Name' | 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
}
}
}
}
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolAssignment.ps1 b/Src/Private/Get-AbrAppVolAssignment.ps1
index 618afe4..c9bbd2d 100644
--- a/Src/Private/Get-AbrAppVolAssignment.ps1
+++ b/Src/Private/Get-AbrAppVolAssignment.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolAssignment {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolAssignment {
begin {
Write-PScriboMessage "Assignment InfoLevel set at $($InfoLevel.AppVolumes.Assignments)."
- Write-PscriboMessage "Collecting Assignment information."
+ Write-PScriboMessage "Collecting Assignment information."
}
process {
@@ -31,39 +31,37 @@ function Get-AbrAppVolAssignment {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$AssignmentsAll = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_assignments?include=entities,filters,app_package,app_marker&"
- } else {$AssignmentsAll = Invoke-RestMethod -WebSession $SourceServerSession -Method get -Uri "https://$AppVolServer/app_volumes/app_assignments?include=entities,filters,app_package,app_marker&"}
+ } else { $AssignmentsAll = Invoke-RestMethod -WebSession $SourceServerSession -Method get -Uri "https://$AppVolServer/app_volumes/app_assignments?include=entities,filters,app_package,app_marker&" }
if ($AssignmentsAll) {
- section -Style Heading3 'Assignments Summary' {
+ Section -Style Heading3 'Assignments Summary' {
Paragraph "The following section provide a summary of the assignments on $($AppVolServer.split('.')[0])."
- Blankline
+ BlankLine
$OutObj = @()
foreach ($AA in $AssignmentsAll.data | Sort-Object -Property Name) {
- if($aa.app_marker){
+ if ($aa.app_marker) {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Programs = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($aa.app_marker.app_package.id)/programs?"
- } else {$Programs = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($aa.app_marker.app_package.id)/programs?"}
+ } else { $Programs = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($aa.app_marker.app_package.id)/programs?" }
$JoinedNames = ($Programs.data | ForEach-Object { $_.Name }) -join ', '
- }elseif ($aa.app_package) {
+ } elseif ($aa.app_package) {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Programs = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($aa.app_package.id)/programs?"
- } else {$Programs = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($aa.app_package.id)/programs?"}
+ } else { $Programs = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($aa.app_package.id)/programs?" }
$JoinedNames = ($Programs.data | ForEach-Object { $_.Name }) -join ', '
}
# Filter Value
- If(!([string]::IsNullOrWhitespace($AA.Filters.value))){
+ If (!([string]::IsNullOrWhitespace($AA.Filters.value))) {
$filters = $AA.Filters.value
- }
- else{
+ } else {
$filters = 'All'
}
#App Marker Value
- If([string]::IsNullOrWhitespace($AA.app_marker_name)){
+ If ([string]::IsNullOrWhitespace($AA.app_marker_name)) {
$AppMarkerName = 'Package'
- }
- else{
+ } else {
$AppMarkerName = $AA.app_marker_name
}
@@ -78,9 +76,8 @@ function Get-AbrAppVolAssignment {
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
$TableParams = @{
@@ -94,9 +91,8 @@ function Get-AbrAppVolAssignment {
$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-AbrAppVolComputer.ps1 b/Src/Private/Get-AbrAppVolComputer.ps1
index 2fbb01d..91b2da8 100644
--- a/Src/Private/Get-AbrAppVolComputer.ps1
+++ b/Src/Private/Get-AbrAppVolComputer.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolComputer {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolComputer {
begin {
Write-PScriboMessage "Managed Computers InfoLevel set at $($InfoLevel.AppVolumes.Computers)."
- Write-PscriboMessage "Collecting Managed Computers information."
+ Write-PScriboMessage "Collecting Managed Computers information."
}
process {
@@ -31,12 +31,12 @@ function Get-AbrAppVolComputer {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Computers = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/computers?deleted=hide&"
- } else {$Computers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/computers?deleted=hide&"}
+ } else { $Computers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/computers?deleted=hide&" }
if ($Computers) {
- section -Style Heading3 "Managed Computers" {
+ Section -Style Heading3 "Managed Computers" {
Paragraph "The following section provide a summary of computers with app volumes agent installed and registered to $($AppVolServer.split('.')[0])."
- Blankline
+ BlankLine
$OutObj = @()
foreach ($Computer in $Computers) {
try {
@@ -52,9 +52,8 @@ function Get-AbrAppVolComputer {
'Status' = $Computer.Status
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -66,12 +65,11 @@ function Get-AbrAppVolComputer {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
- $OutObj| Sort-Object -Property upn | Table @TableParams
+ $OutObj | Sort-Object -Property upn | Table @TableParams
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolDatastore.ps1 b/Src/Private/Get-AbrAppVolDatastore.ps1
index 2cb1a54..de1fe3e 100644
--- a/Src/Private/Get-AbrAppVolDatastore.ps1
+++ b/Src/Private/Get-AbrAppVolDatastore.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolDatastore {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolDatastore {
begin {
Write-PScriboMessage "Storage InfoLevel set at $($InfoLevel.AppVolumes.Storage)."
- Write-PscriboMessage "Collecting Active Directory Datastore information."
+ Write-PScriboMessage "Collecting Active Directory Datastore information."
}
process {
@@ -31,30 +31,29 @@ function Get-AbrAppVolDatastore {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Datastores = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/datastores"
- } else {$Datastores = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/datastores"}
+ } else { $Datastores = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/datastores" }
if ($Datastores) {
- section -Style Heading3 "Storage Overview" {
+ Section -Style Heading3 "Storage Overview" {
Paragraph "The following section details off location of templates for $($AppVolServer.split('.')[0])."
BlankLine
foreach ($DatastoreD in $Datastores.datastores) {
try {
- if($DatastoreD.uniq_string -eq $Datastores.data_disk_storage){
+ if ($DatastoreD.uniq_string -eq $Datastores.data_disk_storage) {
$DatastoreWritableStorage = $DatastoreD.name
}
- if($DatastoreD.uniq_string -eq $Datastores.package_storage){
+ if ($DatastoreD.uniq_string -eq $Datastores.package_storage) {
$DatastoreAppStorage = $DatastoreD.name
}
- if($DatastoreD.uniq_string -eq $Datastores.data_disk_backup_recurrent_path){
+ if ($DatastoreD.uniq_string -eq $Datastores.data_disk_backup_recurrent_path) {
$DatastoreAWriteableBackupRecurrentDatastore = $DatastoreD.name
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
try {
- section -Style Heading4 "Storage Overview Packages" {
+ Section -Style Heading4 "Storage Overview Packages" {
$OutObj = @()
$inObj = [ordered] @{
'Default Storage Location' = "[$($Datastores.Datacenter)] $DatastoreAppStorage"
@@ -73,12 +72,11 @@ function Get-AbrAppVolDatastore {
}
$OutObj | Table @TableParams
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
try {
- section -Style Heading4 "Storage Overview Writable Volumes" {
+ Section -Style Heading4 "Storage Overview Writable Volumes" {
$OutObj = @()
$inObj = [ordered] @{
'Default Storage Location' = "[$($Datastores.Datacenter)] $DatastoreWritableStorage"
@@ -99,15 +97,13 @@ function Get-AbrAppVolDatastore {
}
$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
}
}
}
diff --git a/Src/Private/Get-AbrAppVolGeneral.ps1 b/Src/Private/Get-AbrAppVolGeneral.ps1
index d062431..97c21fd 100644
--- a/Src/Private/Get-AbrAppVolGeneral.ps1
+++ b/Src/Private/Get-AbrAppVolGeneral.ps1
@@ -5,7 +5,7 @@ function Get-AbrAPPVolGeneral {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAPPVolGeneral {
begin {
Write-PScriboMessage "General InfoLevel set at $($InfoLevel.AppVolumes.General)."
- Write-PscriboMessage "Collecting General APPVolume information."
+ Write-PScriboMessage "Collecting General APPVolume information."
}
process {
@@ -31,22 +31,22 @@ function Get-AbrAPPVolGeneral {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$GeneralAppInfo = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/version"
- } else {$GeneralAppInfo = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/version"}
+ } else { $GeneralAppInfo = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/version" }
if ($PSVersionTable.PSEdition -eq 'Core') {
$LDAPDomains = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/ldap_domains"
- } else {$LDAPDomains = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/ldap_domains"}
+ } else { $LDAPDomains = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/ldap_domains" }
if ($PSVersionTable.PSEdition -eq 'Core') {
$Managers = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/manager_services"
- } else {$Managers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/manager_services"}
+ } else { $Managers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/manager_services" }
if ($PSVersionTable.PSEdition -eq 'Core') {
$MachineManagers = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/machine_managers"
- } else {$MachineManagers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/machine_managers"}
+ } else { $MachineManagers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/machine_managers" }
if ($GeneralAppInfo -and $LDAPDomains -and $Managers) {
$OutObj = @()
- section -Style Heading2 "General Information" {
+ Section -Style Heading2 "General Information" {
Paragraph "The following section provide a summary of common information on $($AppVolServer.split('.')[0])."
- Blankline
+ BlankLine
$inObj = [ordered] @{
'Name' = $AppVolServer
'Version' = $GeneralAppInfo.version
@@ -69,9 +69,8 @@ function Get-AbrAPPVolGeneral {
$OutObj | Table @TableParams
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolInstance.ps1 b/Src/Private/Get-AbrAppVolInstance.ps1
index 76ff1c2..7404822 100644
--- a/Src/Private/Get-AbrAppVolInstance.ps1
+++ b/Src/Private/Get-AbrAppVolInstance.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolInstance {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolInstance {
begin {
Write-PScriboMessage "Instance InfoLevel set at $($InfoLevel.AppVolumes.Instances)."
- Write-PscriboMessage "Collecting Instance information."
+ Write-PScriboMessage "Collecting Instance information."
}
process {
@@ -31,24 +31,23 @@ function Get-AbrAppVolInstance {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Instances = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/manager_instances/related?api_version=4050"
- } else {$Instances = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/manager_instances/related?api_version=4050"}
+ } else { $Instances = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/manager_instances/related?api_version=4050" }
if ($Instances.data) {
- section -Style Heading3 "App Volumes Instances" {
+ Section -Style Heading3 "App Volumes Instances" {
Paragraph "The following section provide a summary of App Volumes Instances for $($AppVolServer.split('.')[0])."
BlankLine
$OutObj = @()
foreach ($Instance in $Instances.data) {
- if($Instance){
+ if ($Instance) {
# Calculate Sync Count
$SyncCount = [int]$Instance.attributes.application_sync_count + [int]$Instance.attributes.package_sync_count + [int]$Instance.attributes.assignment_sync_count + [int]$Instance.attributes.marker_sync_count
# Determine Instance Type
- If($Instance.attributes.is_source -eq 'True'){
+ If ($Instance.attributes.is_source -eq 'True') {
$InstanceType = 'Source'
- }
- else{
+ } else {
$InstanceType = 'Target'
}
@@ -62,9 +61,8 @@ function Get-AbrAppVolInstance {
'Last Sync' = $Instance.attributes.synchronized_at_human
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
@@ -77,55 +75,54 @@ function Get-AbrAppVolInstance {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
- $OutObj| Sort-Object -Property Name | Table @TableParams
+ $OutObj | Sort-Object -Property Name | Table @TableParams
if ($InfoLevel.AppVolumes.Instances -ge 2) {
#section -Style Heading4 "App Volumes Instance Details" {
- foreach ($Instance in $Instances.data) {
- try {
- if ($Instance) {
- section -Style Heading5 "Instance Details - $($Instance.attributes.Name)" {
- $OutObj = @()
- $inObj = [ordered] @{
- 'App Volumes Server Name' = $Instance.attributes.Name
- 'Current Status' = $Instance.attributes.Status
- 'FQDN' = $Instance.attributes.Host
- 'Last Synchronized' = $Instance.attributes.synchronized_at_human
- 'Synchronized Applications' = $Instance.attributes.application_sync_count
- 'Synchronized Packages' = $Instance.attributes.package_sync_count
- 'Synchronized Markers' = $Instance.attributes.marker_sync_count
- 'Synchronized Assignments' = $Instance.attributes.assignment_sync_count
- 'Application Package Import' = $Instance.attributes.sync_application_import
- 'Package Symmetry Assurance' = $Instance.attributes.package_symmetry_assurance
- 'Sync Markers' = $Instance.attributes.sync_markers
- 'Sync Assignments' = $Instance.attributes.sync_assignments
- }
- $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj)
-
- $TableParams = @{
- Name = "Instance Details - $($Instance.attributes.Name)"
- List = $true
- ColumnWidths = 50, 50
- }
- if ($Report.ShowTableCaptions) {
- $TableParams['Caption'] = "- $($TableParams.Name)"
- }
- $OutObj | Table @TableParams
+ foreach ($Instance in $Instances.data) {
+ try {
+ if ($Instance) {
+ Section -Style Heading5 "Instance Details - $($Instance.attributes.Name)" {
+ $OutObj = @()
+ $inObj = [ordered] @{
+ 'App Volumes Server Name' = $Instance.attributes.Name
+ 'Current Status' = $Instance.attributes.Status
+ 'FQDN' = $Instance.attributes.Host
+ 'Last Synchronized' = $Instance.attributes.synchronized_at_human
+ 'Synchronized Applications' = $Instance.attributes.application_sync_count
+ 'Synchronized Packages' = $Instance.attributes.package_sync_count
+ 'Synchronized Markers' = $Instance.attributes.marker_sync_count
+ 'Synchronized Assignments' = $Instance.attributes.assignment_sync_count
+ 'Application Package Import' = $Instance.attributes.sync_application_import
+ 'Package Symmetry Assurance' = $Instance.attributes.package_symmetry_assurance
+ 'Sync Markers' = $Instance.attributes.sync_markers
+ 'Sync Assignments' = $Instance.attributes.sync_assignments
}
+ $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj)
+ $TableParams = @{
+ Name = "Instance Details - $($Instance.attributes.Name)"
+ List = $true
+ ColumnWidths = 50, 50
+ }
+ 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
}
}
}
diff --git a/Src/Private/Get-AbrAppVolJob.ps1 b/Src/Private/Get-AbrAppVolJob.ps1
index eb55b20..9cae321 100644
--- a/Src/Private/Get-AbrAppVolJob.ps1
+++ b/Src/Private/Get-AbrAppVolJob.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolJob {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolJob {
begin {
Write-PScriboMessage "Jobs InfoLevel set at $($InfoLevel.AppVolumes.Jobs)."
- Write-PscriboMessage "Collecting Job information."
+ Write-PScriboMessage "Collecting Job information."
}
process {
@@ -31,10 +31,10 @@ function Get-AbrAppVolJob {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Jobs = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/jobs"
- } else {$Jobs = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/jobs"}
+ } else { $Jobs = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/jobs" }
if ($Jobs) {
- section -Style Heading3 "Scheduled Jobs" {
+ Section -Style Heading3 "Scheduled Jobs" {
Paragraph "The following section provide a summary of scheduled jobs for $($AppVolServer.split('.')[0])."
BlankLine
$OutObj = @()
@@ -47,9 +47,8 @@ function Get-AbrAppVolJob {
'Last Run At' = $Job.last_run_at
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -61,12 +60,11 @@ function Get-AbrAppVolJob {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
- $OutObj| Sort-Object -Property Name | Table @TableParams
+ $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-AbrAppVolLicense.ps1 b/Src/Private/Get-AbrAppVolLicense.ps1
index 28be209..4b2a4a3 100644
--- a/Src/Private/Get-AbrAppVolLicense.ps1
+++ b/Src/Private/Get-AbrAppVolLicense.ps1
@@ -5,7 +5,7 @@ function Get-AbrAPPVolLicense {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAPPVolLicense {
begin {
Write-PScriboMessage "License InfoLevel set at $($InfoLevel.AppVolumes.License)."
- Write-PscriboMessage "Collecting License information."
+ Write-PScriboMessage "Collecting License information."
}
process {
@@ -31,18 +31,17 @@ function Get-AbrAPPVolLicense {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$License = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/license"
- } else {$License = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/license"}
+ } else { $License = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/license" }
if ($License) {
$OutObj = @()
- section -Style Heading3 "License Information" {
+ Section -Style Heading3 "License Information" {
Paragraph "The following section details license information for $($AppVolServer.split('.')[0])."
BlankLine
- Switch ($License.license.invalid)
- {
- 'True' {$LicenseInvalid = 'False' }
- 'False' {$LicenseInvalid = 'True' }
+ Switch ($License.license.invalid) {
+ 'True' { $LicenseInvalid = 'False' }
+ 'False' { $LicenseInvalid = 'True' }
}
$inObj = [ordered] @{
'Key Create Date' = $License.license.Keycreate
@@ -85,9 +84,8 @@ function Get-AbrAPPVolLicense {
$OutObj | Table @TableParams
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolMachine.ps1 b/Src/Private/Get-AbrAppVolMachine.ps1
index c35aa8c..e583701 100644
--- a/Src/Private/Get-AbrAppVolMachine.ps1
+++ b/Src/Private/Get-AbrAppVolMachine.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolMachine {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolMachine {
begin {
Write-PScriboMessage "Managed Machines InfoLevel set at $($InfoLevel.AppVolumes.Machines)."
- Write-PscriboMessage "Collecting Managed Machines information."
+ Write-PScriboMessage "Collecting Managed Machines information."
}
process {
@@ -31,14 +31,14 @@ function Get-AbrAppVolMachine {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Machines = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/machines"
- } else {$Machines = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/machines"}
+ } else { $Machines = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/machines" }
if ($Machines) {
- section -Style Heading3 "Managed Machines Summary" {
+ Section -Style Heading3 "Managed Machines Summary" {
Paragraph "The following section provide a summary of managed machines on $($AppVolServer.split('.')[0])."
BlankLine
$OutObj = @()
- foreach ($Machines in ($Machines.machines | Where-Object {$_.Status -notlike 'Absent'})) {
+ foreach ($Machines in ($Machines.machines | Where-Object { $_.Status -notlike 'Absent' })) {
try {
$inObj = [ordered] @{
'Name' = $Machines.name
@@ -48,9 +48,8 @@ function Get-AbrAppVolMachine {
'Status' = $Machines.Status
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -62,12 +61,11 @@ function Get-AbrAppVolMachine {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
- $OutObj| Sort-Object -Property Name | Table @TableParams
+ $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-AbrAppVolMachineManager.ps1 b/Src/Private/Get-AbrAppVolMachineManager.ps1
index fb0bedf..55e2cb8 100644
--- a/Src/Private/Get-AbrAppVolMachineManager.ps1
+++ b/Src/Private/Get-AbrAppVolMachineManager.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolMachineManager {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolMachineManager {
begin {
Write-PScriboMessage "MachineManagers InfoLevel set at $($InfoLevel.AppVolumes.MachineManagers)."
- Write-PscriboMessage "Collecting Machine Managers information."
+ Write-PScriboMessage "Collecting Machine Managers information."
}
process {
@@ -31,13 +31,13 @@ function Get-AbrAppVolMachineManager {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$MachineManagers = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/machine_managers"
- } else {$MachineManagers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/machine_managers"}
+ } else { $MachineManagers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/machine_managers" }
if ($MachineManagers) {
- section -Style Heading3 "Machine Managers" {
+ Section -Style Heading3 "Machine Managers" {
Paragraph "The following section provide a summary of machine managers for $($AppVolServer.split('.')[0])."
BlankLine
- section -Style Heading4 "Machine Manager Summary" {
+ Section -Style Heading4 "Machine Manager Summary" {
$OutObj = @()
foreach ($MachineManager in $MachineManagers.machine_managers | Sort-Object -Property Host) {
try {
@@ -47,9 +47,8 @@ function Get-AbrAppVolMachineManager {
'Type' = $MachineManager.type
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -67,12 +66,12 @@ function Get-AbrAppVolMachineManager {
if ($InfoLevel.AppVolumes.MachineManagers -ge 2) {
$OutObj = @()
foreach ($MachineManager in $MachineManagers.machine_managers | Sort-Object -Property Host) {
- section -ExcludeFromTOC -Style NOTOCHeading5 "Machine Manager Details - $($MachineManager.host)" {
+ Section -ExcludeFromTOC -Style NOTOCHeading5 "Machine Manager Details - $($MachineManager.host)" {
if ($PSVersionTable.PSEdition -eq 'Core') {
$MachineManagerDetail = (Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/machine_managers/$($MachineManager.id)").machine_manager
- } else {$MachineManagerDetail = (Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/machine_managers/$($MachineManager.id)").machine_manager}
- try {
+ } else { $MachineManagerDetail = (Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/machine_managers/$($MachineManager.id)").machine_manager }
+ try {
$inObj = [ordered] @{
'Type' = $MachineManagerDetail.type
'Host Name' = $MachineManagerDetail.host
@@ -99,9 +98,8 @@ function Get-AbrAppVolMachineManager {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
$OutObj | Table @TableParams
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
@@ -151,9 +149,8 @@ function Get-AbrAppVolMachineManager {
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolManager.ps1 b/Src/Private/Get-AbrAppVolManager.ps1
index 88d8293..5b47a45 100644
--- a/Src/Private/Get-AbrAppVolManager.ps1
+++ b/Src/Private/Get-AbrAppVolManager.ps1
@@ -5,7 +5,7 @@ function Get-AbrAPPVolManager {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAPPVolManager {
begin {
Write-PScriboMessage "Manager InfoLevel set at $($InfoLevel.AppVolumes.Managers)."
- Write-PscriboMessage "Collecting Manager information."
+ Write-PScriboMessage "Collecting Manager information."
}
process {
@@ -31,15 +31,15 @@ function Get-AbrAPPVolManager {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Managers = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/manager_services"
- } else {$Managers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/manager_services"}
+ } else { $Managers = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/manager_services" }
if ($Managers) {
$OutObj = @()
- section -Style Heading3 "App Volumes Manager Servers" {
+ Section -Style Heading3 "App Volumes Manager Servers" {
Paragraph "The following section details all the App Volumes manager servers on $($AppVolServer.split('.')[0])."
BlankLine
- foreach($Manager in $Managers.services | Sort-Object -Property Name) {
- section -Style Heading4 "App Volumes Manager Server Details - $($AppVolServer.split('.')[0])" {
+ foreach ($Manager in $Managers.services | Sort-Object -Property Name) {
+ Section -Style Heading4 "App Volumes Manager Server Details - $($AppVolServer.split('.')[0])" {
try {
$inObj = [ordered] @{
'Manager Name' = $Manager.name
@@ -49,9 +49,8 @@ function Get-AbrAPPVolManager {
'Last Seen' = $Manager.last_seen_at_human
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
$TableParams = @{
@@ -68,9 +67,9 @@ function Get-AbrAPPVolManager {
}
if ($InfoLevel.AppVolumes.Managers -ge 2) {
$OutObj = @()
- foreach($Manager in $Managers.services | Sort-Object -Property Name) {
- section -ExcludeFromTOC -Style NOTOCHeading5 "Manager Servers Details - $($Manager.name)" {
- try {
+ foreach ($Manager in $Managers.services | Sort-Object -Property Name) {
+ Section -ExcludeFromTOC -Style NOTOCHeading5 "Manager Servers Details - $($Manager.name)" {
+ try {
$inObj = [ordered] @{
'Product Version' = $Manager.product_version
'Internal Version' = $Manager.internal_version
@@ -94,9 +93,8 @@ function Get-AbrAPPVolManager {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
$OutObj | Table @TableParams
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
@@ -106,9 +104,8 @@ function Get-AbrAPPVolManager {
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolPackage.ps1 b/Src/Private/Get-AbrAppVolPackage.ps1
index 2ff4d77..c4cef87 100644
--- a/Src/Private/Get-AbrAppVolPackage.ps1
+++ b/Src/Private/Get-AbrAppVolPackage.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolPackage {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolPackage {
begin {
Write-PScriboMessage "Packages InfoLevel set at $($InfoLevel.AppVolumes.Packages)."
- Write-PscriboMessage "Collecting Packages information."
+ Write-PScriboMessage "Collecting Packages information."
}
process {
@@ -31,12 +31,12 @@ function Get-AbrAppVolPackage {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$AppPackages = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages?include=app_markers%2Clifecycle_stage%2Cbase_app_package%2Capp_product"
- } else {$AppPackages = Invoke-RestMethod -WebSession $SourceServerSession -Method get -Uri "https://$AppVolServer/app_volumes/app_packages?include=app_markers%2Clifecycle_stage%2Cbase_app_package%2Capp_product"}
+ } else { $AppPackages = Invoke-RestMethod -WebSession $SourceServerSession -Method get -Uri "https://$AppVolServer/app_volumes/app_packages?include=app_markers%2Clifecycle_stage%2Cbase_app_package%2Capp_product" }
if ($AppPackages.data) {
- section -Style Heading3 'Packages Summary' {
+ Section -Style Heading3 'Packages Summary' {
Paragraph "The following section provide a summary of the packages on $($AppVolServer.split('.')[0])."
- Blankline
+ BlankLine
$OutObj = @()
foreach ($AppPackage in $AppPackages.data) {
try {
@@ -53,9 +53,8 @@ function Get-AbrAppVolPackage {
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
$TableParams = @{
@@ -69,11 +68,11 @@ function Get-AbrAppVolPackage {
$OutObj | Sort-Object -Property Name | Table @TableParams
#>
if ($InfoLevel.AppVolumes.Packages -ge 2) {
- section -Style Heading4 "Packages Details" {
+ Section -Style Heading4 "Packages Details" {
foreach ($AppPackage in $AppPackages.data | Sort-Object -Property Name) {
try {
if ($AppPackage) {
- section -Style Heading5 "Package - $($AppPackage.Name)" {
+ Section -Style Heading5 "Package - $($AppPackage.Name)" {
$OutObj = @()
$inObj = [ordered] @{
'App Name' = $AppPackage.Name
@@ -117,25 +116,25 @@ function Get-AbrAppVolPackage {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Programs = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($AppPackage.id)/programs"
- } else {$Programs = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($AppPackage.id)/programs"}
- Write-PscriboMessage "Working on Programs for $($AppPackage.Name)."
+ } else { $Programs = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($AppPackage.id)/programs" }
+ Write-PScriboMessage "Working on Programs for $($AppPackage.Name)."
if ($Programs.data) {
- section -ExcludeFromTOC -Style NOTOCHeading6 "Programs" {
+ Section -ExcludeFromTOC -Style NOTOCHeading6 "Programs" {
$OutObj = @()
foreach ($Program in $Programs.data) {
- if($Program) {
- Write-PscriboMessage "Gathering on Program info for $($Program.name)."
+ if ($Program) {
+ Write-PScriboMessage "Gathering on Program info for $($Program.name)."
$inObj = [ordered] @{
'Program Name' = $Program.name
'Build #' = $Program.version
'Publisher Name' = $Program.publisher
'Program Created' = Switch ($Program.created_At_Human) {
- $Null {'--'}
- default {$Program.created_At_Human}
+ $Null { '--' }
+ default { $Program.created_At_Human }
}
'Program Updated' = Switch ($Program.Updated_At_Human) {
- $Null {'--'}
- default {$Program.Updated_At_Human}
+ $Null { '--' }
+ default { $Program.Updated_At_Human }
}
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
@@ -154,21 +153,21 @@ function Get-AbrAppVolPackage {
}
}
} catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$OperatingSystems = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($AppPackage.id)/operating_systems"
- } else {$OperatingSystems = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($AppPackage.id)/operating_systems"}
+ } else { $OperatingSystems = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($AppPackage.id)/operating_systems" }
if ($OperatingSystems.data) {
- section -ExcludeFromTOC -Style NOTOCHeading6 "Operating Systems" {
+ Section -ExcludeFromTOC -Style NOTOCHeading6 "Operating Systems" {
$OutObj = @()
foreach ($OS in $OperatingSystems.data) {
- if($OS){
+ if ($OS) {
$inObj = [ordered] @{
'OS Name' = $OS.Name
- 'OS Version' = $($($OS.major_version)+'.'+$($OS.minor_version))
+ 'OS Version' = $($($OS.major_version) + '.' + $($OS.minor_version))
'Processor Arch' = $OS.proc_arch
'Type' = $OS.product_type_human
}
@@ -188,15 +187,15 @@ function Get-AbrAppVolPackage {
}
}
} catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$StorageLocations = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($AppPackage.id)/files?"
- } else {$StorageLocations = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($AppPackage.id)/files?"}
+ } else { $StorageLocations = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($AppPackage.id)/files?" }
if ($StorageLocations.data) {
- section -ExcludeFromTOC -Style NOTOCHeading6 "Storage Locations for - $($AppPackage.Name)" {
+ Section -ExcludeFromTOC -Style NOTOCHeading6 "Storage Locations for - $($AppPackage.Name)" {
$OutObj = @()
foreach ($StorageLocation in $StorageLocations.data) {
try {
@@ -208,9 +207,8 @@ function Get-AbrAppVolPackage {
'Created' = $StorageLocation.created_At_Human
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -225,27 +223,27 @@ function Get-AbrAppVolPackage {
$OutObj | Sort-Object -Property 'Location' | Table @TableParams
}
}
- } catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$AppLinks = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($AppPackage.id)/app_links?"
- } else {$AppLinks = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($AppPackage.id)/app_links?"}
+ } else { $AppLinks = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_packages/$($AppPackage.id)/app_links?" }
if ($AppLinks.data) {
- section -ExcludeFromTOC -Style NOTOCHeading6 "Application links for - $($AppPackage.Name)" {
+ Section -ExcludeFromTOC -Style NOTOCHeading6 "Application links for - $($AppPackage.Name)" {
$OutObj = @()
foreach ($AppLink in $AppLinks.data) {
- If($AppLink){
- if($AppLink.name){
+ If ($AppLink) {
+ if ($AppLink.name) {
$ApplinkName = $AppLink.name
- }else{
+ } else {
$ApplinkName = '--'
}
- if($AppLink.entry_point){
+ if ($AppLink.entry_point) {
$ApplinkEntryPoint = $AppLink.entry_point
- }else{
+ } else {
$ApplinkEntryPoint = '--'
}
@@ -255,9 +253,8 @@ function Get-AbrAppVolPackage {
'Entry Point' = $ApplinkEntryPoint
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
@@ -273,22 +270,21 @@ function Get-AbrAppVolPackage {
$OutObj | Sort-Object -Property 'App Link Name' | 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
}
}
}
}
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolProgram.ps1 b/Src/Private/Get-AbrAppVolProgram.ps1
index 229c59f..305ae24 100644
--- a/Src/Private/Get-AbrAppVolProgram.ps1
+++ b/Src/Private/Get-AbrAppVolProgram.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolProgram {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolProgram {
begin {
Write-PScriboMessage "Programs InfoLevel set at $($InfoLevel.AppVolumes.Programs)."
- Write-PscriboMessage "Collecting Programs information."
+ Write-PScriboMessage "Collecting Programs information."
}
process {
@@ -31,12 +31,12 @@ function Get-AbrAppVolProgram {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$ProgramsAll = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/app_programs"
- } else {$ProgramsAll = Invoke-RestMethod -WebSession $SourceServerSession -Method get -Uri "https://$AppVolServer/app_volumes/app_programs"}
+ } else { $ProgramsAll = Invoke-RestMethod -WebSession $SourceServerSession -Method get -Uri "https://$AppVolServer/app_volumes/app_programs" }
if ($ProgramsAll) {
- section -Style Heading3 'Programs Summary' {
+ Section -Style Heading3 'Programs Summary' {
Paragraph "The following section provide a summary of the programs on $($AppVolServer.split('.')[0])."
- Blankline
+ BlankLine
$OutObj = @()
foreach ($PA in $ProgramsAll.data) {
try {
@@ -48,9 +48,8 @@ function Get-AbrAppVolProgram {
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
$TableParams = @{
@@ -63,11 +62,11 @@ function Get-AbrAppVolProgram {
}
$OutObj | Sort-Object -Property Name | Table @TableParams
if ($InfoLevel.AppVolumes.Programs -ge 2) {
- section -Style Heading4 "Program Details" {
+ Section -Style Heading4 "Program Details" {
foreach ($PA in $ProgramsAll.data | Sort-Object -Property Name) {
try {
if ($PA) {
- section -Style Heading5 "Program Details - $($PA.Name)" {
+ Section -Style Heading5 "Program Details - $($PA.Name)" {
$OutObj = @()
$inObj = [ordered] @{
'Name' = $PA.Name
@@ -93,17 +92,16 @@ function Get-AbrAppVolProgram {
}
}
- }catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
}
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolSetting.ps1 b/Src/Private/Get-AbrAppVolSetting.ps1
index 791c610..8c271ab 100644
--- a/Src/Private/Get-AbrAppVolSetting.ps1
+++ b/Src/Private/Get-AbrAppVolSetting.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolSetting {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolSetting {
begin {
Write-PScriboMessage "Settings InfoLevel set at $($InfoLevel.AppVolumes.Settings)."
- Write-PscriboMessage "Collecting Active Directory Domain information."
+ Write-PScriboMessage "Collecting Active Directory Domain information."
}
process {
@@ -40,66 +40,66 @@ function Get-AbrAppVolSetting {
if ($Settings) {
- section -Style Heading3 "Settings" {
+ Section -Style Heading3 "Settings" {
Paragraph "The following section details app volumes settings for $($AppVolServer.split('.')[0])."
BlankLine
$OutObj = @()
try {
- foreach($Setting in $Settings.data.setting){
- if($Setting.key -eq "ui_session_timeout"){
+ foreach ($Setting in $Settings.data.setting) {
+ if ($Setting.key -eq "ui_session_timeout") {
$UISessionTimeout = $Setting.value
}
#Regular Backups
- if($Setting.key -eq "enable_data_disk_recurrent_backup"){
+ if ($Setting.key -eq "enable_data_disk_recurrent_backup") {
$RegularBackups = $Setting.value
}
#Regular Backups Days
- if($Setting.key -eq "data_disk_backup_recurrent_interval"){
+ if ($Setting.key -eq "data_disk_backup_recurrent_interval") {
$RegularBackupsInterval = $Setting.value
}
# Backup Storage Location
- if($Setting.key -eq "data_disk_backup_recurrent_datastore"){
+ if ($Setting.key -eq "data_disk_backup_recurrent_datastore") {
$StorageLocation = $Setting.value
}
# Backup Storage Path
- if($Setting.key -eq "data_disk_backup_recurrent_path"){
+ if ($Setting.key -eq "data_disk_backup_recurrent_path") {
$StoragePath = $Setting.value
}
# Backup Storage Path
- if($Setting.key -eq "manage_sec"){
+ if ($Setting.key -eq "manage_sec") {
$NonDomainEntities = $Setting.value
}
}
- foreach ($Datastore in $Datastores.datastores){
- if($Datastore.uniq_string -eq $StorageLocation){
+ foreach ($Datastore in $Datastores.datastores) {
+ if ($Datastore.uniq_string -eq $StorageLocation) {
$DatastoreBackupName = $Datastore.name
}
}
- foreach($Setting in $Settings.data.advanced_setting){
+ foreach ($Setting in $Settings.data.advanced_setting) {
# Disable Volume Cache
- if($Setting.key -eq "DISABLE_SNAPVOL_CACHE"){
+ if ($Setting.key -eq "DISABLE_SNAPVOL_CACHE") {
$DisableSnapVolumeCache = $Setting.value
}
# Disable Token AD Query
- if($Setting.key -eq "DISABLE_TOKEN_AD_QUERY"){
+ if ($Setting.key -eq "DISABLE_TOKEN_AD_QUERY") {
$DisableTokenADQuery = $Setting.value
}
- if($Setting.key -eq "JOIN_CEIP"){
+ if ($Setting.key -eq "JOIN_CEIP") {
$DisableJOINCEIP = $Setting.value
}
- if($Setting.key -eq "ENABLE_ALLOW_PACKAGE_DELIVERY_TO_ANY_OS"){
+ if ($Setting.key -eq "ENABLE_ALLOW_PACKAGE_DELIVERY_TO_ANY_OS") {
$DisableDELIVERYTOANYOS = $Setting.value
}
- if($Setting.key -eq "ENABLE_2X_VOLUMES"){
+ if ($Setting.key -eq "ENABLE_2X_VOLUMES") {
$Disable2XVolumes = $Setting.value
}
- if($Setting.key -eq "disable_agent_session_cookie"){
+ if ($Setting.key -eq "disable_agent_session_cookie") {
$DisableAgentSessionCookie = $Setting.value
}
- if($Setting.key -eq "ENABLE_PARTIAL_RECONFIG"){
+ if ($Setting.key -eq "ENABLE_PARTIAL_RECONFIG") {
$VMDKPackageResiliency = $Setting.value
}
}
@@ -130,15 +130,13 @@ function Get-AbrAppVolSetting {
$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
}
}
}
diff --git a/Src/Private/Get-AbrAppVolStorage.ps1 b/Src/Private/Get-AbrAppVolStorage.ps1
index c03f0fc..4b4b030 100644
--- a/Src/Private/Get-AbrAppVolStorage.ps1
+++ b/Src/Private/Get-AbrAppVolStorage.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolStorage {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolStorage {
begin {
Write-PScriboMessage "Storage Locations InfoLevel set at $($InfoLevel.AppVolumes.StorageLocations)."
- Write-PscriboMessage "Collecting storage location information."
+ Write-PScriboMessage "Collecting storage location information."
}
process {
@@ -31,10 +31,10 @@ function Get-AbrAppVolStorage {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Storages = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/storages"
- } else {$Storages = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/storages"}
+ } else { $Storages = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/storages" }
if ($Storages) {
- section -Style Heading3 "Managed Storage Locations" {
+ Section -Style Heading3 "Managed Storage Locations" {
Paragraph "The following section details configured storage options for Packages, Writable Volumes, and AppStacks on $($AppVolServer.split('.')[0])."
BlankLine
$OutObj = @()
@@ -50,9 +50,8 @@ function Get-AbrAppVolStorage {
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -68,53 +67,51 @@ function Get-AbrAppVolStorage {
if ($InfoLevel.AppVolumes.StorageLocations -ge 2) {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Datastores = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/datastores"
- } else {$Datastores = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/datastores"}
+ } else { $Datastores = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/datastores" }
if ($Datastores) {
#section -Style Heading4 "Storage Details" {
- $OutObj = @()
- foreach ($Datastore in $Datastores.datastores | Sort-Object -Property Name) {
- section -ExcludeFromTOC -Style NOTOCHeading5 "Storage Details - $($DataStore.name)" {
- try {
- $inObj = [ordered] @{
- 'Display Name' = $DataStore.display_Name
- 'Machine Manager' = $DataStore.Host
- 'Category' = $DataStore.Catagory
- 'Datacenter ' = $DataStore.datacenter
- 'Notes' = $DataStore.note
- 'Description' = $DataStore.description
- 'Accessible' = $DataStore.accessible
- 'Template Storage' = $DataStore.template_storage
- 'Host Username' = $DataStore.host_username
- 'Free Space' = ConvertTo-FileSizeString $DataStore.free_space
- 'Capacity' = ConvertTo-FileSizeString $DataStore.capacity
- }
- $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
+ $OutObj = @()
+ foreach ($Datastore in $Datastores.datastores | Sort-Object -Property Name) {
+ Section -ExcludeFromTOC -Style NOTOCHeading5 "Storage Details - $($DataStore.name)" {
+ try {
+ $inObj = [ordered] @{
+ 'Display Name' = $DataStore.display_Name
+ 'Machine Manager' = $DataStore.Host
+ 'Category' = $DataStore.Catagory
+ 'Datacenter ' = $DataStore.datacenter
+ 'Notes' = $DataStore.note
+ 'Description' = $DataStore.description
+ 'Accessible' = $DataStore.accessible
+ 'Template Storage' = $DataStore.template_storage
+ 'Host Username' = $DataStore.host_username
+ 'Free Space' = ConvertTo-FileSizeString $DataStore.free_space
+ 'Capacity' = ConvertTo-FileSizeString $DataStore.capacity
+ }
+ $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- $TableParams = @{
- Name = "Storage Details - $($DataStore.name)"
- List = $true
- ColumnWidths = 50, 50
- }
- if ($Report.ShowTableCaptions) {
- $TableParams['Caption'] = "- $($TableParams.Name)"
- }
- $OutObj | Table @TableParams
+ $TableParams = @{
+ Name = "Storage Details - $($DataStore.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
}
}
+ }
#}
}
}
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolStorageGroup.ps1 b/Src/Private/Get-AbrAppVolStorageGroup.ps1
index ad31866..e7addd3 100644
--- a/Src/Private/Get-AbrAppVolStorageGroup.ps1
+++ b/Src/Private/Get-AbrAppVolStorageGroup.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolStorageGroup {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolStorageGroup {
begin {
Write-PScriboMessage "StorageGroups InfoLevel set at $($InfoLevel.AppVolumes.StorageGroups)."
- Write-PscriboMessage "Collecting App Volumes Datastore information."
+ Write-PScriboMessage "Collecting App Volumes Datastore information."
}
process {
@@ -31,87 +31,84 @@ function Get-AbrAppVolStorageGroup {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$StorageGroups = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/storage_groups"
- } else {$StorageGroups = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/storage_groups"}
+ } else { $StorageGroups = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/storage_groups" }
if ($StorageGroups) {
- section -Style Heading3 "Storage Groups" {
+ Section -Style Heading3 "Storage Groups" {
Paragraph "The following section details storage group used to define groups of storage locations so they can function as one storage entity for $($AppVolServer.split('.')[0])."
BlankLine
$OutObj = @()
foreach ($StorageGroup in $StorageGroups.storage_groups | Sort-Object -Property Name) {
- section -Style Heading4 "Storage Group - $($StorageGroup.name)" {
- try {
- $inObj = [ordered] @{
- 'Distribution Strategy' = $StorageGroup.strategy
- 'Template Storage' = $StorageGroup.template_storage
- 'Members Count' = $StorageGroup.members
- 'Member Name Prefix' = $StorageGroup.member_prefix
- 'Space Used' = $StorageGroup.space_used
- 'Total Space' = $StorageGroup.space_total
- 'Creation Date' = $StorageGroup.created_at_human
- 'Auto Import' = $StorageGroup.auto_import
- 'Auto Replicate' = $StorageGroup.auto_replicate
- 'Last Replicated Date' = $StorageGroup.replicated_at_human
- 'Last Imported Date' = $StorageGroup.imported_at_human
- 'Last Curated Date' = $StorageGroup.curated_at_human
- }
- $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj)
-
- $TableParams = @{
- Name = "Storage Group - $($StorageGroup.name)"
- List = $true
- ColumnWidths = 50, 50
- }
- if ($Report.ShowTableCaptions) {
- $TableParams['Caption'] = "- $($TableParams.Name)"
- }
- $OutObj | Table @TableParams
- if ($PSVersionTable.PSEdition -eq 'Core') {
- $StorageGroupDetails = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/storage_groups/$($StorageGroup.id)"
- } else {$StorageGroupDetails = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/storage_groups/$($StorageGroup.id)"}
+ Section -Style Heading4 "Storage Group - $($StorageGroup.name)" {
+ try {
+ $inObj = [ordered] @{
+ 'Distribution Strategy' = $StorageGroup.strategy
+ 'Template Storage' = $StorageGroup.template_storage
+ 'Members Count' = $StorageGroup.members
+ 'Member Name Prefix' = $StorageGroup.member_prefix
+ 'Space Used' = $StorageGroup.space_used
+ 'Total Space' = $StorageGroup.space_total
+ 'Creation Date' = $StorageGroup.created_at_human
+ 'Auto Import' = $StorageGroup.auto_import
+ 'Auto Replicate' = $StorageGroup.auto_replicate
+ 'Last Replicated Date' = $StorageGroup.replicated_at_human
+ 'Last Imported Date' = $StorageGroup.imported_at_human
+ 'Last Curated Date' = $StorageGroup.curated_at_human
+ }
+ $OutObj = [pscustomobject](ConvertTo-HashToYN $inObj)
- if ($StorageGroupDetails) {
- section -ExcludeFromTOC -Style NOTOCHeading4 'Datastore Members' {
- $OutObj = @()
- foreach ($StorageGroupDetail in $StorageGroupDetails.storage_group.storages) {
- try {
- $inObj = [ordered] @{
- 'Name' = $StorageGroupDetail.Name
- 'DataCenter' = $StorageGroupDetail.datacenter
- 'Space Used' = $StorageGroupDetail.space_used
- 'Space Total' = $StorageGroupDetail.space_total
- 'Is Deleted' = $StorageGroupDetail.deleted
- }
- $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
+ $TableParams = @{
+ Name = "Storage Group - $($StorageGroup.name)"
+ List = $true
+ ColumnWidths = 50, 50
+ }
+ if ($Report.ShowTableCaptions) {
+ $TableParams['Caption'] = "- $($TableParams.Name)"
+ }
+ $OutObj | Table @TableParams
+ if ($PSVersionTable.PSEdition -eq 'Core') {
+ $StorageGroupDetails = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/storage_groups/$($StorageGroup.id)"
+ } else { $StorageGroupDetails = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/storage_groups/$($StorageGroup.id)" }
+ if ($StorageGroupDetails) {
+ Section -ExcludeFromTOC -Style NOTOCHeading4 'Datastore Members' {
+ $OutObj = @()
+ foreach ($StorageGroupDetail in $StorageGroupDetails.storage_group.storages) {
+ try {
+ $inObj = [ordered] @{
+ 'Name' = $StorageGroupDetail.Name
+ 'DataCenter' = $StorageGroupDetail.datacenter
+ 'Space Used' = $StorageGroupDetail.space_used
+ 'Space Total' = $StorageGroupDetail.space_total
+ 'Is Deleted' = $StorageGroupDetail.deleted
}
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
- }
- }
+ $OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- $TableParams = @{
- Name = "Datastore Members - $($StorageGroup.name)"
- List = $false
- ColumnWidths = 30, 30, 14, 13, 13
- }
- if ($Report.ShowTableCaptions) {
- $TableParams['Caption'] = "- $($TableParams.Name)"
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
- $OutObj| Sort-Object -Property Name | Table @TableParams
}
+
+ $TableParams = @{
+ Name = "Datastore Members - $($StorageGroup.name)"
+ List = $false
+ ColumnWidths = 30, 30, 14, 13, 13
+ }
+ 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
}
+ }
}
}
}
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
}
diff --git a/Src/Private/Get-AbrAppVolTSArchive.ps1 b/Src/Private/Get-AbrAppVolTSArchive.ps1
index a7045ad..93d980b 100644
--- a/Src/Private/Get-AbrAppVolTSArchive.ps1
+++ b/Src/Private/Get-AbrAppVolTSArchive.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolTSArchive {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolTSArchive {
begin {
Write-PScriboMessage "Troubleshooting Archive InfoLevel set at $($InfoLevel.AppVolumes.Troubleshooting)."
- Write-PscriboMessage "Troubleshooting Archive information."
+ Write-PScriboMessage "Troubleshooting Archive information."
}
process {
@@ -31,10 +31,10 @@ function Get-AbrAppVolTSArchive {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$TSAs = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/troubleshooting_archive?"
- } else {$TSAs = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/troubleshooting_archive?"}
+ } else { $TSAs = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/cv_api/troubleshooting_archive?" }
if ($TSAs.trblarchive.data) {
- section -Style Heading3 "Troubleshooting Archives" {
+ Section -Style Heading3 "Troubleshooting Archives" {
Paragraph "The following section provide a summary of troubleshooting archives for $($AppVolServer.split('.')[0])."
BlankLine
$OutObj = @()
@@ -46,9 +46,8 @@ function Get-AbrAppVolTSArchive {
'Size' = $TSA.Size
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -60,12 +59,11 @@ function Get-AbrAppVolTSArchive {
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
- $OutObj| Sort-Object -Property Name | Table @TableParams
+ $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-AbrAppVolWritable.ps1 b/Src/Private/Get-AbrAppVolWritable.ps1
index 2524f5b..e5c3023 100644
--- a/Src/Private/Get-AbrAppVolWritable.ps1
+++ b/Src/Private/Get-AbrAppVolWritable.ps1
@@ -5,7 +5,7 @@ function Get-AbrAppVolWritable {
.DESCRIPTION
Documents the configuration of VMware APPVolume in Word/HTML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -23,7 +23,7 @@ function Get-AbrAppVolWritable {
begin {
Write-PScriboMessage "Writables InfoLevel set at $($InfoLevel.AppVolumes.Writables)."
- Write-PscriboMessage "Collecting Writables information."
+ Write-PScriboMessage "Collecting Writables information."
}
process {
@@ -31,12 +31,12 @@ function Get-AbrAppVolWritable {
try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$Writables = Invoke-RestMethod -SkipCertificateCheck -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/writables"
- } else {$Writables = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/writables"}
+ } else { $Writables = Invoke-RestMethod -WebSession $SourceServerSession -Method Get -Uri "https://$AppVolServer/app_volumes/writables" }
if ($Writables) {
- section -Style Heading3 "Writable Volumes" {
+ Section -Style Heading3 "Writable Volumes" {
Paragraph "The following section provide a summary of writable volumes on $($AppVolServer.split('.')[0])."
- Blankline
+ BlankLine
$OutObj = @()
foreach ($Writable in $Writables.data) {
try {
@@ -48,9 +48,8 @@ function Get-AbrAppVolWritable {
'State' = $Writable.attached
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
- }
- catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
+ } catch {
+ Write-PScriboMessage -IsWarning $_.Exception.Message
}
}
@@ -64,10 +63,10 @@ function Get-AbrAppVolWritable {
}
$OutObj | Sort-Object -Property Name | Table @TableParams
if ($InfoLevel.AppVolumes.Writables -ge 2) {
- section -Style Heading4 "Writable Volume Details" {
+ Section -Style Heading4 "Writable Volume Details" {
foreach ($Writable in $Writables.data | Sort-Object -Property Name) {
try {
- section -ExcludeFromTOC -Style NOTOCHeading5 "Writable Volume Details for - $($Writable.Name)" {
+ Section -ExcludeFromTOC -Style NOTOCHeading5 "Writable Volume Details for - $($Writable.Name)" {
$inObj = [ordered] @{
'Owner' = $Writable.name
'Owner Type' = $Writable.Owner_Type
@@ -105,18 +104,16 @@ function Get-AbrAppVolWritable {
}
$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
}
}
}
diff --git a/Src/Private/Get-RequiredModule.ps1 b/Src/Private/Get-RequiredModule.ps1
index 0a1dbf0..0b4ad1a 100644
--- a/Src/Private/Get-RequiredModule.ps1
+++ b/Src/Private/Get-RequiredModule.ps1
@@ -25,7 +25,7 @@ function Get-RequiredModule {
# Check if the required version of VMware PowerCLI is installed
$RequiredModule = Get-Module -ListAvailable -Name $Name | Sort-Object -Property Version -Descending | Select-Object -First 1
$ModuleVersion = "$($RequiredModule.Version.Major)" + "." + "$($RequiredModule.Version.Minor)"
- if ($ModuleVersion -eq ".") {
+ if ($ModuleVersion -eq ".") {
throw "VMware PowerCLI $Version or higher is required to run the VMware AppVolumes As Built Report. Run 'Install-Module -Name $Name -MinimumVersion $Version' to install the required modules."
}
if ($ModuleVersion -lt $Version) {
diff --git a/Src/Private/SharedUtilsFunctions.ps1 b/Src/Private/SharedUtilsFunctions.ps1
index 1ee91d3..fd302d9 100644
--- a/Src/Private/SharedUtilsFunctions.ps1
+++ b/Src/Private/SharedUtilsFunctions.ps1
@@ -1,7 +1,7 @@
function ConvertTo-TextYN {
<#
.SYNOPSIS
- Used by As Built Report to convert true or false automatically to Yes or No.
+ Used by As Built Report to convert true or false automatically to Yes or No.
.DESCRIPTION
.NOTES
@@ -15,25 +15,23 @@ function ConvertTo-TextYN {
#>
[CmdletBinding()]
[OutputType([String])]
- Param
- (
+ Param (
[Parameter (
Position = 0,
Mandatory)]
- [AllowEmptyString()]
- [string]
- $TEXT
- )
+ [AllowEmptyString()]
+ [string] $TEXT
+ )
- switch ($TEXT)
- {
- "" {"--"}
- $Null {"--"}
- "True" {"Yes"; break}
- "False" {"No"; break}
- default {$TEXT}
- }
- } # end
+ switch ($TEXT) {
+ "" { "--"; break }
+ " " { "--"; break }
+ $Null { "--"; break }
+ "True" { "Yes"; break }
+ "False" { "No"; break }
+ default { $TEXT }
+ }
+} # end
function Get-UnixDate ($UnixDate) {
<#
.SYNOPSIS
@@ -163,27 +161,28 @@ function ConvertTo-FileSizeString {
Used by As Built Report to convert bytes automatically to GB or TB based on size.
.DESCRIPTION
.NOTES
- Version: 0.4.0
- Author: LEE DAILEY
+ Version: 0.1.0
+ Author: Jonathan Colon
.EXAMPLE
.LINK
#>
[CmdletBinding()]
[OutputType([String])]
- Param (
+ Param
+ (
[Parameter (
Position = 0,
Mandatory)]
- [int64]
- $Size
- )
- switch ($Size) {
- {$_ -gt 1TB} {[string]::Format("{0:0} TB", $Size / 1TB); break}
- {$_ -gt 1GB} {[string]::Format("{0:0} GB", $Size / 1GB); break}
- {$_ -gt 1MB} {[string]::Format("{0:0} MB", $Size / 1MB); break}
- {$_ -gt 1KB} {[string]::Format("{0:0} KB", $Size / 1KB); break}
- {$_ -gt 0} {[string]::Format("{0} B", $Size); break}
- {$_ -eq 0} {"0 KB"; break}
- default {"0 KB"}
+ [int64]
+ $Size
+ )
+
+ $Unit = Switch ($Size) {
+ { $Size -gt 1PB } { 'PB' ; Break }
+ { $Size -gt 1TB } { 'TB' ; Break }
+ { $Size -gt 1GB } { 'GB' ; Break }
+ { $Size -gt 1Mb } { 'MB' ; Break }
+ Default { 'KB' }
}
-} # end >> function Format-FileSize
\ No newline at end of file
+ return "$([math]::Round(($Size / $("1" + $Unit)), 0)) $Unit"
+} # end
\ No newline at end of file
diff --git a/Src/Public/Invoke-AsBuiltReport.VMware.AppVolumes.ps1 b/Src/Public/Invoke-AsBuiltReport.VMware.AppVolumes.ps1
index ad81a8c..d2abab1 100644
--- a/Src/Public/Invoke-AsBuiltReport.VMware.AppVolumes.ps1
+++ b/Src/Public/Invoke-AsBuiltReport.VMware.AppVolumes.ps1
@@ -1,11 +1,11 @@
-function Invoke-AsBuiltReport.VMware.AppVolumes {
+function Invoke-AsBuiltReport.VMware.AppVolumes {
<#
.SYNOPSIS
PowerShell script which documents the configuration of VMware AppVolumes in Word/HTML/XML/Text formats
.DESCRIPTION
Documents the configuration of VMware AppVolumes in Word/HTML/XML/Text formats using PScribo.
.NOTES
- Version: 1.1.0
+ Version: 1.2.0
Author: Chris Hildebrandt, @childebrandt42
Editor: Jonathan Colon, @jcolonfzenpr
Twitter: @asbuiltreport
@@ -25,9 +25,14 @@
[String] $StylePath
)
+ if ($psISE) {
+ Write-Error -Message "You cannot run this script inside the PowerShell ISE. Please execute it from the PowerShell Command Window."
+ break
+ }
+
if ($PSVersionTable.PSEdition -ne 'Core') {
- add-type @"
+ Add-Type @"
using System.Net;
using System.Security.Cryptography.X509Certificates;
public class TrustAllCertsPolicy : ICertificatePolicy {
@@ -38,17 +43,18 @@
}
}
"@
-[System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
+ [System.Net.ServicePointManager]::CertificatePolicy = New-Object TrustAllCertsPolicy
}
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls12
- Write-PScriboMessage -IsWarning "Please refer to the AsBuiltReport.VMware.AppVolumes github website for more detailed information about this project."
- Write-PScriboMessage -IsWarning "Do not forget to update your report configuration file after each new version release."
- Write-PScriboMessage -IsWarning "Documentation: https://github.com/AsBuiltReport/AsBuiltReport.VMware.AppVolumes"
- Write-PScriboMessage -IsWarning "Issues or bug reporting: https://github.com/AsBuiltReport/AsBuiltReport.VMware.AppVolumes/issues"
+ Write-PScriboMessage -Plugin "Module" -IsWarning "Please refer to the AsBuiltReport.VMware.AppVolumes github website for more detailed information about this project."
+ Write-PScriboMessage -Plugin "Module" -IsWarning "Do not forget to update your report configuration file after each new version release."
+ Write-PScriboMessage -Plugin "Module" -IsWarning "Documentation: https://github.com/AsBuiltReport/AsBuiltReport.VMware.AppVolumes"
+ Write-PScriboMessage -Plugin "Module" -IsWarning "Issues or bug reporting: https://github.com/AsBuiltReport/AsBuiltReport.VMware.AppVolumes/issues"
+ Write-PScriboMessage -Plugin "Module" -IsWarning "This project is community maintained and has no sponsorship from VMware/Omnissa, its employees or any of its affiliates."
# Check the current AsBuiltReport.VMware.AppVolumes installed module
Try {
@@ -63,8 +69,8 @@
}
}
} Catch {
- Write-PscriboMessage -IsWarning $_.Exception.Message
- }
+ Write-PScriboMessage -IsWarning $_.Exception.Message
+ }
# Check if the required version of VMware PowerCLI is installed
Get-RequiredModule -Name 'VMware.PowerCLI' -Version '12.7'
@@ -87,7 +93,7 @@
Try {
if ($PSVersionTable.PSEdition -eq 'Core') {
$AppVolServerRest = Invoke-RestMethod -SkipCertificateCheck -SessionVariable SourceServerSession -Method Post -Uri "https://$AppVolServer/cv_api/sessions" -Body $AppVolRestCreds
- } else {$AppVolServerRest = Invoke-RestMethod -SessionVariable SourceServerSession -Method Post -Uri "https://$AppVolServer/cv_api/sessions" -Body $AppVolRestCreds}
+ } else { $AppVolServerRest = Invoke-RestMethod -SessionVariable SourceServerSession -Method Post -Uri "https://$AppVolServer/cv_api/sessions" -Body $AppVolRestCreds }
} Catch {
Write-Error $_
}
@@ -96,10 +102,10 @@
if ($AppVolServerRest.success -eq 'Ok') {
# Generate report if connection to AppVolumes Manager General Information is successful
if ($InfoLevel.AppVolumes.General -ge 1) {
- section -Style Heading1 $($AppVolServer) {
+ Section -Style Heading1 $($AppVolServer) {
Paragraph "The following section provides a summary of the implemented components on the VMware App Volumes infrastructure."
Get-AbrAPPVolGeneral
- section -Style Heading2 "Inventory" {
+ Section -Style Heading2 "Inventory" {
Get-AbrAPPVolApplication
Get-AbrAppVolPackage
Get-AbrAppVolProgram
@@ -107,23 +113,23 @@
Get-AbrAppVolWritable
#Get-AbrAppVolAppstack
}
- section -Style Heading2 "Directory" {
+ Section -Style Heading2 "Directory" {
Get-AbrAppVolADUser
Get-AbrAppVolComputer
Get-AbrAppVolADGroup
Get-AbrAppVolADOU
}
- section -Style Heading2 "Infrastructure" {
+ Section -Style Heading2 "Infrastructure" {
Get-AbrAppVolMachine
Get-AbrAppVolStorage
Get-AbrAppVolStorageGroup
Get-AbrAppVolInstance
}
- section -Style Heading2 "Activity" {
+ Section -Style Heading2 "Activity" {
Get-AbrAppVolJob
Get-AbrAppVolTSArchive
}
- section -Style Heading2 "Configuration" {
+ Section -Style Heading2 "Configuration" {
Get-AbrAppVolLicense
Get-AbrAppVolADDomain
Get-AbrAppVolAdminRole