Skip to content

AsBuiltReport/AsBuiltReport.Veeam.VB365

Repository files navigation

Veeam VB365 As Built Report

Veeam VB365 As Built Report is a PowerShell module which works in conjunction with AsBuiltReport.Core.

AsBuiltReport is an open-sourced community project which utilises PowerShell to produce as-built documentation in multiple document formats for multiple vendors and technologies.

Please refer to the AsBuiltReport website for more detailed information about this project.

πŸ“š Sample Reports

Sample Report - Veeam Style with EnableHealthCheck

Sample Veeam VB365 As Built report HTML file: Sample Veeam VB365 As Built Report.html

Sample Diagram

Sample Veeam VB365 As Built report diagram file: Sample Veeam VB365 As Built Report Diagram

Sample Diagram

πŸ”° Getting Started

Below are the instructions on how to install, configure and generate a Veeam VB365 As Built report.

πŸ’Ύ Supported Versions

The Veeam VB365 As Built Report supports the following Veeam Backup for Microsoft 365 version;

  • Veeam Backup for Microsoft 365 v6+

PowerShell

This report is compatible with the following PowerShell versions;

Windows PowerShell 5.1 PowerShell 7
βœ… ❌

πŸ”§ System Requirements

PowerShell 5.1, and the following PowerShell modules are required for generating a Veeam VB365 As Built Report.

πŸ” Required Privileges

Only users with Local Administrator group permissions can generate a Veeam VB365 As Built Report.

πŸ“¦ Module Installation

PowerShell

install-module AsBuiltReport.Veeam.VB365

GitHub

If you are unable to use the PowerShell Gallery, you can still install the module manually. Ensure you repeat the following steps for the system requirements also.

  1. Download the code package / latest release zip from GitHub
  2. Extract the zip file
  3. Copy the folder AsBuiltReport.Veeam.VB365 to a path that is set in $env:PSModulePath.
  4. Open a PowerShell terminal window and unblock the downloaded files with
    $path = (Get-Module -Name AsBuiltReport.Veeam.VB365 -ListAvailable).ModuleBase; Unblock-File -Path $path\*.psd1; Unblock-File -Path $path\Src\Public\*.ps1; Unblock-File -Path $path\Src\Private\*.ps1
  5. Close and reopen the PowerShell terminal window.

Note: You are not limited to installing the module to those example paths, you can add a new entry to the environment variable PSModulePath if you want to use another path.

✏️ Configuration

The Veeam VB365 As Built Report utilizes a JSON file to allow configuration of report information, options, detail and healthchecks.

A Veeam VB365 report configuration file can be generated by executing the following command;

New-AsBuiltReportConfig -Report Veeam.VB365 -FolderPath <User specified folder> -Filename <Optional>

Executing this command will copy the default Veeam VB365 report JSON configuration to a user specified folder.

All report settings can then be configured via the JSON file.

The following provides information of how to configure each schema within the report's JSON file.

Report

The Report schema provides configuration of the Veeam VB365 report information.

Sub-Schema Setting Default Description
Name User defined Veeam VB365 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

Options

The Options schema allows certain options within the report to be toggled on or off.

Sub-Schema Setting Default Description
BackupServerPort TCP Port 9191 Used to specify the backup service's custom port.
ReportStyle Veeam/AsBuiltReport Veeam Allow to set report style template.
EnableDiagrams true/false true Toggle to enable/disable the creation of infrastructure diagram.
EnableDiagramsDebug true/false false Toggle to enable/disable diagram debug option.
DiagramWaterMark string empty Used to set the diagram waterMark.
DiagramTheme string White Used to set the diagram theme. (Black/White/Neon)
ExportDiagrams true/false false Toggle to enable/disable diagram export option.
ExportDiagramsFormat string array png Set the format used to export the infrastructure diagram. (dot, png, pdf, svg)
EnableDiagramSignature true/false false Toggle to enable/disable diagram signature (button right corner)
SignatureAuthorName string empty Toggle to set signature author name.
SignatureCompanyName string empty Toggle to set signature company name.

InfoLevel

The InfoLevel schema allows configuration of each section of the report at a granular level. The following sections can be set.

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 summarized 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 Infrastructure section.

Sub-Schema Default Setting Maximum Setting
ServerConfig 1 1
License 1 2
Proxy 1 2
Repository 1 2
Organization 1 2
EncryptionKey 1 2
CloudCredential 1 2

The table below outlines the default and maximum InfoLevel settings for each Jobs section.

Sub-Schema Default Setting Maximum Setting
BackupJob 1 2
BackupCopyJob 1 2

The table below outlines the default and maximum InfoLevel settings for each Restore Session section.

Sub-Schema Default Setting Maximum Setting
RestoreSession 1 2
RestorePoint 1 1

Healthcheck

The Healthcheck schema is used to toggle health checks on or off.

πŸ’» Examples

There are a few examples listed below on running the AsBuiltReport script against a Veeam Backup Server. Refer to the README.md file in the main AsBuiltReport project repository for more examples.

# Generate a Veeam VB365 As Built Report for Backup Server 'veeam-vbr365.pharmax.local' using specified credentials. Export report to HTML & DOCX formats. Use default report style. Append timestamp to report filename. Save reports to 'C:\Users\Jon\Documents'
PS C:\> New-AsBuiltReport -Report Veeam.VB365 -Target veeam-vbr365.pharmax.local -Username 'Domain\veeam_admin' -Password 'P@ssw0rd' -Format Html,Word -OutputFolderPath 'C:\Users\Jon\Documents' -Timestamp

# Generate a Veeam VB365 As Built Report for Backup Server veeam-vbr365.pharmax.local using specified credentials and report configuration file. Export report to Text, HTML & DOCX formats. Use default report style. Save reports to 'C:\Users\Jon\Documents'. Display verbose messages to the console.
PS C:\> New-AsBuiltReport -Report Veeam.VB365 -Target veeam-vbr365.pharmax.local -Username 'Domain\veeam_admin' -Password 'P@ssw0rd' -Format Html,Word -OutputFolderPath 'C:\Users\Jon\Documents' -ReportConfigFilePath 'C:\Users\Jon\AsBuiltReport\AsBuiltReport.Veeam.VB365.json' -Verbose

# Generate a Veeam VB365 As Built Report for Backup Server veeam-vbr365.pharmax.local using stored credentials. Export report to HTML & Text formats. Use default report style. Highlight environment issues within the report. Save reports to 'C:\Users\Jon\Documents'.
PS C:\> $Creds = Get-Credential
PS C:\> New-AsBuiltReport -Report Veeam.VB365 -Target veeam-vbr365.pharmax.local -Credential $Creds -Format Html,Text -OutputFolderPath 'C:\Users\Jon\Documents' -EnableHealthCheck

# Generate a Veeam VB365 As Built Report for Backup Server veeam-vbr365.pharmax.local using stored credentials. Export report to HTML & DOCX formats. Use default report style. Reports are saved to the user profile folder by default. Attach and send reports via e-mail.
PS C:\> New-AsBuiltReport -Report Veeam.VB365 -Target veeam-vbr365.pharmax.local -Username 'Domain\veeam_admin' -Password 'P@ssw0rd' -Format Html,Word -OutputFolderPath 'C:\Users\Jon\Documents' -SendEmail

❌ Known Issues

  • Error when generating a report in Word format.
    • Error Message: New-AsBuiltReport : The variable '$Images' cannot be retrieved because it has not been set
    • Fix: Disable the generation of the cover page image. Set ShowCoverPageImage to false