This project is community maintained and has no sponsorship from Veeam, its employees or any of its affiliates.
Veeam VBR 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 Veeam VBR As Built Report HTML file: Sample Report
Sample Veeam VBR As Built Report Diagram file: Sample Diagram
Below are the instructions on how to install, configure and generate a Veeam VBR As Built report.
The Veeam VBR As Built Report supports the following Veeam Backup & Replication version;
- Veeam Backup & Replication v12+ (Standard, Enterprise & Enterprise Plus Edition)
❗Community Edition is not supported❗
The versions 10 and 11 are no longer supported by Veeam. So I will not be performing compatibility tests with those versions. The report may work on previous versions but I do not guarantee and will not address issues related to pre-v12.
Veeam Product Lifecycle Policy
This report is compatible with the following PowerShell versions;
Windows PowerShell 5.1 | PowerShell 7 |
---|---|
✅ | ❌ |
PowerShell 5.1 and the following PowerShell modules are required for generating a Veeam VBR As Built report.
- Veeam.Backup.PowerShell Module
- PScribo Module
- PScriboCharts Module
- PSGraph Module
- AsBuiltReport.Core Module
- Veeam.Diagrammer Module
- Diagrammer.Core Module
Only users with Veeam Backup Administrator role assigned can generate a Veeam VBR As Built Report.
Install-Module -Name AsBuiltReport.Veeam.VBR
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.
-
Download the code package / latest release zip from GitHub
-
Extract the zip file
-
Copy the folder
AsBuiltReport.Veeam.VBR
to a path that is set in$env:PSModulePath
. -
Open a PowerShell terminal window and unblock the downloaded files with
$path = (Get-Module -Name AsBuiltReport.Veeam.VBR -ListAvailable).ModuleBase; Unblock-File -Path $path\*.psd1; Unblock-File -Path $path\Src\Public\*.ps1; Unblock-File -Path $path\Src\Private\*.ps1
-
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.
The Veeam VBR As Built Report utilizes a JSON file to allow configuration of report information, options, detail and healthchecks.
A Veeam VBR report configuration file can be generated by executing the following command;
New-AsBuiltReportConfig -Report Veeam.VBR -FolderPath <User specified folder> -Filename <Optional>
Executing this command will copy the default Veeam VBR 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.
The Report schema provides configuration of the Veeam VBR report information.
Sub-Schema | Setting | Default | Description |
---|---|---|---|
Name | User defined | Veeam VBR 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 |
The Options schema allows certain options within the report to be toggled on or off.
Sub-Schema | Setting | Default | Description |
---|---|---|---|
BackupServerPort | TCP Port | 9392 | Set the backup server service's custom port. |
PSDefaultAuthentication | Negotiate/Kerberos | Default | Set the PSRemoting authentication method |
EnableHardwareInventory | true / false | false | Toggle to enable/disable of Hardware information |
ReportStyle | Veeam/AsBuiltReport | Veeam | Allow to set report style template. |
EnableDiagrams | true / false | false | Toggle to enable/disable of Infrastructure Diagrams |
EnableDiagramsDebug | true/false | false | Toggle to enable/disable diagram debug option. |
DiagramTheme | string | White | Used to set the diagram theme. (Black/White/Neon) |
DiagramWaterMark | string | empty | Used to set the diagram waterMark. |
ExportDiagrams | true/false | true | Toggle to enable/disable diagram export option. |
ExportDiagramsFormat | string array | png | Set the format used to export the infrastructure diagram. (dot, png, pdf, svg) |
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. |
The InfoLevel schema allows configuration of each section of the report at a granular level. The following sections can be set.
There are 4 levels (0-3) of detail granularity for each section as follows;
Setting | InfoLevel | Description |
---|---|---|
0 | Disabled | Does not collect or display any information |
1 | Enabled | Provides summarized information for a collection of objects |
2 | Adv Summary | Provides condensed, detailed information for a collection of objects |
3 | Detailed | Provides detailed information for individual objects |
The table below outlines the default and maximum InfoLevel settings for each Backup Infrastructure section.
Sub-Schema | Default Setting | Maximum Setting |
---|---|---|
BackupServe | 1 | 3 |
Proxy | 1 | 3 |
Settings | 1 | 2 |
BR | 1 | 2 |
Licenses | 1 | 1 |
SOBR | 1 | 2 |
WANAccel | 1 | 1 |
ServiceProvider | 1 | 2 |
SureBackup | 1 | 2 |
The table below outlines the default and maximum InfoLevel settings for each Tape Infrastructure section.
Sub-Schema | Default Setting | Maximum Setting |
---|---|---|
Server | 1 | 1 |
Library | 1 | 2 |
MediaPool | 1 | 2 |
Vault | 1 | 1 |
NDMP | 1 | 1 |
The table below outlines the default and maximum InfoLevel settings for each Inventory section.
Sub-Schema | Default Setting | Maximum Setting |
---|---|---|
VI | 1 | 1 |
PHY | 1 | 2 |
FileShare | 1 | 1 |
The table below outlines the default and maximum InfoLevel settings for each Storage Infrastructure section.
Sub-Schema | Default Setting | Maximum Setting |
---|---|---|
ONTAP | 1 | 2 |
ISILON | 1 | 2 |
The table below outlines the default and maximum InfoLevel settings for each Backup Jobs section.
Sub-Schema | Default Setting | Maximum Setting |
---|---|---|
Backup | 1 | 2 |
BackupCopy | 1 | 2 |
Tape | 1 | 2 |
Surebackup | 1 | 2 |
Agent | 1 | 2 |
FileShare | 1 | 2 |
Replication | 1 | 2 |
Restores | 0 | 1 |
The table below outlines the default and maximum InfoLevel settings for each Replication section.
Sub-Schema | Default Setting | Maximum Setting |
---|---|---|
Replica | 1 | 2 |
FailoverPlan | 1 | 1 |
The table below outlines the default and maximum InfoLevel settings for each Cloud Connect section.
Sub-Schema | Default Setting | Maximum Setting |
---|---|---|
Certificate | 1 | 1 |
PublicIP | 1 | 1 |
CloudGateway | 1 | 2 |
GatewayPools | 1 | 1 |
Tenants | 1 | 2 |
BackupStorage | 1 | 1 |
ReplicaResources | 1 | 2 |
The Healthcheck schema is used to toggle health checks on or off.
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 VBR As Built Report for Backup Server 'veeam-vbr.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.VBR -Target veeam-vbr.pharmax.local -Username 'Domain\veeam_admin' -Password 'P@ssw0rd' -Format Html,Word -OutputFolderPath 'C:\Users\Jon\Documents' -Timestamp
# Generate a Veeam VBR As Built Report for Backup Server veeam-vbr.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.VBR -Target veeam-vbr.pharmax.local -Username 'Domain\veeam_admin' -Password 'P@ssw0rd' -Format Text,Html,Word -OutputFolderPath 'C:\Users\Jon\Documents' -ReportConfigFilePath 'C:\Users\Jon\AsBuiltReport\AsBuiltReport.Veeam.VBR.json' -Verbose
# Generate a Veeam VBR As Built Report for Backup Server veeam-vbr.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.VBR -Target veeam-vbr.pharmax.local -Credential $Creds -Format Html,Text -OutputFolderPath 'C:\Users\Jon\Documents' -EnableHealthCheck
# Generate a Veeam VBR As Built Report for Backup Server veeam-vbr.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.VBR -Target veeam-vbr.pharmax.local -Username 'Domain\veeam_admin' -Password 'P@ssw0rd' -Format Html,Word -OutputFolderPath 'C:\Users\Jon\Documents' -SendEmail
- Since many of Veeam's features depend on the Standard+ license, the Community edition is not supported.
- If the Veeam Backup Server is not joined to an Active Directory domain (WorkGroup Auth), the PSDefaultAuthentication option must be set to Negotiate. If it is not, some of the report sections will be missing.
- This project uses the PScribo module to generate the report. It has been detected that the EvotecIT PSWriteWord module uses the same cmdlet names. For this report to be generated correctly it is required to uninstall the PSWriteWord module.