Skip to content

Commit

Permalink
Merge pull request AsBuiltReport#105 from rebelinux/dev
Browse files Browse the repository at this point in the history
v0.8.0
  • Loading branch information
rebelinux authored Jul 13, 2023
2 parents c7994b7 + 96464b7 commit 7378ea5
Show file tree
Hide file tree
Showing 36 changed files with 1,260 additions and 224 deletions.
2 changes: 1 addition & 1 deletion AsBuiltReport.Veeam.VBR.psd1
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
RootModule = 'AsBuiltReport.Veeam.VBR.psm1'

# Version number of this module.
ModuleVersion = '0.7.2'
ModuleVersion = '0.8.0'

# Supported PSEditions
# CompatiblePSEditions = @()
Expand Down
1 change: 1 addition & 0 deletions AsBuiltreport.Veeam.VBR.json
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@
},
"Jobs": {
"Backup": 1,
"BackupCopy": 1,
"Tape": 1,
"Surebackup": 1,
"Agent": 1,
Expand Down
21 changes: 21 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,26 @@
# :arrows_clockwise: Veeam VBR As Built Report Changelog

## [0.8.0] - 2023-07-13

### Added

- Added a separated Backup Copy Job section for v12 edition

### Changed

- Improved Health Check recommendations

### Fixed

- Fix [#104](https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VBR/issues/104)

## [0.7.3] - 2023-06-13

### Added

- Added Network Traffic Rules - Throttling Windows Time Period information
- Added Backup Server Domain Joined health check

## [0.7.2] - 2023-06-04

### Added
Expand Down
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ The Veeam VBR As Built Report supports the following Veeam Backup & Replication
- Veeam Backup & Replication V11 (Standard, Enterprise & Enterprise Plus Edition)
- Veeam Backup & Replication V12 (Standard, Enterprise & Enterprise Plus Edition)

:exclamation: Community Edition is not supported :exclamation:

### PowerShell

This report is compatible with the following PowerShell versions;
Expand Down Expand Up @@ -197,6 +199,7 @@ The table below outlines the default and maximum **InfoLevel** settings for each
| Sub-Schema | Default Setting | Maximum Setting |
|--------------|:---------------:|:---------------:|
| Backup | 1 | 2 |
| BackupCopy | 1 | 2 |
| Tape | 1 | 2 |
| Surebackup | 1 | 2 |
| Agent | 1 | 2 |
Expand Down Expand Up @@ -254,5 +257,5 @@ PS C:\> New-AsBuiltReport -Report Veeam.VBR -Target veeam-vbr.pharmax.local -Use

## :x: Known Issues

- Since many of Veeam's features depend on the Standard+ license, the Community edition will not be 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
- 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.
26 changes: 19 additions & 7 deletions Src/Private/Get-AbrVbrAgentBackupjobConf.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ function Get-AbrVbrAgentBackupjobConf {
.DESCRIPTION
Documents the configuration of Veeam VBR in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.7.2
Version: 0.8.0
Author: Jonathan Colon
Twitter: @jcolonfzenpr
Github: rebelinux
Expand Down Expand Up @@ -72,8 +72,12 @@ function Get-AbrVbrAgentBackupjobConf {
$OutObj | Table @TableParams
if ($HealthCheck.Jobs.BestPractice) {
if ($OutObj | Where-Object { $_.'Description' -match 'Created by' -or $Null -like $_.'Description'}) {
Paragraph "Health Check:" -Italic -Bold -Underline
Paragraph "Best Practice: It is a general rule of good practice to establish well-defined descriptions. This helps to speed up the fault identification process, as well as enabling better documentation of the environment." -Italic -Bold
Paragraph "Health Check:" -Bold -Underline
BlankLine
Paragraph {
Text "Best Practice:" -Bold
Text "It is a general rule of good practice to establish well-defined descriptions. This helps to speed up the fault identification process, as well as enabling better documentation of the environment."
}
}
}
}
Expand Down Expand Up @@ -494,8 +498,12 @@ function Get-AbrVbrAgentBackupjobConf {
$OutObj | Table @TableParams
if ($HealthCheck.Jobs.BestPractice) {
if ($OutObj | Where-Object { $_.'Storage-Level Corruption Guard (SLCG)' -eq 'No' }) {
Paragraph "Health Check:" -Italic -Bold -Underline
Paragraph "Best Practice: It is recommended to use storage-level corruption guard for any backup job with no active full backups scheduled. Synthetic full backups are still 'incremental forever' and may suffer from corruption over time. Storage-level corruption guard was introduced to provide a greater level of confidence in integrity of the backups." -Italic -Bold
Paragraph "Health Check:" -Bold -Underline
BlankLine
Paragraph {
Text "Best Practice:" -Bold
Text "It is recommended to use storage-level corruption guard for any backup job with no active full backups scheduled. Synthetic full backups are still 'incremental forever' and may suffer from corruption over time. Storage-level corruption guard was introduced to provide a greater level of confidence in integrity of the backups."
}
}
}
}
Expand Down Expand Up @@ -537,8 +545,12 @@ function Get-AbrVbrAgentBackupjobConf {
$OutObj | Table @TableParams
if ($HealthCheck.Jobs.BestPractice) {
if ($OutObj | Where-Object { $_.'Enabled Backup File Encryption' -eq 'No'}) {
Paragraph "Health Check:" -Italic -Bold -Underline
Paragraph "Best Practice: Backup and replica data is a high potential source of vulnerability. To secure data stored in backups and replicas, use Veeam Backup & Replication inbuilt encryption to protect data in backups" -Italic -Bold
Paragraph "Health Check:" -Bold -Underline
Blankline
Paragraph {
Text "Best Practice:" -Bold
Text "Backup and replica data is a high potential source of vulnerability. To secure data stored in backups and replicas, use Veeam Backup & Replication inbuilt encryption to protect data in backups"
}
}
}
}
Expand Down
79 changes: 79 additions & 0 deletions Src/Private/Get-AbrVbrBackupCopyjob .ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@

function Get-AbrVbrBackupCopyjob {
<#
.SYNOPSIS
Used by As Built Report to returns backup copy jobs created in Veeam Backup & Replication.
.DESCRIPTION
Documents the configuration of Veeam VBR in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.8.0
Author: Jonathan Colon
Twitter: @jcolonfzenpr
Github: rebelinux
Credits: Iain Brighton (@iainbrighton) - PScribo module
.LINK
https://github.com/AsBuiltReport/AsBuiltReport.Veeam.VBR
#>
[CmdletBinding()]
param (

)

begin {
Write-PscriboMessage "Discovering Veeam VBR Backup Copy jobs information from $System."
}

process {
try {
$BkCopyjobs = Get-VBRBackupCopyJob -WarningAction SilentlyContinue
if ($BkCopyjobs) {
Section -Style Heading3 'Backup Copy Jobs' {
Paragraph "The following section list backup copy jobs created within Veeam Backup & Replication."
BlankLine
$OutObj = @()
foreach ($BkCopyjob in $BkCopyjobs) {
try {
Write-PscriboMessage "Discovered $($BkCopyjob.Name) backup copy."
$inObj = [ordered] @{
'Name' = $BkCopyjob.Name
'Copy Mode' = $BkCopyjob.Mode
'Status' = Switch ($BkCopyjob.JobEnabled) {
'False' {'Disabled'}
'True' {'Enabled'}
}
'Latest Result' = $BkCopyjob.LastResult
'Scheduled?' = $BkCopyjob.ScheduleOptions.Type
}
$OutObj += [pscustomobject]$inobj
}
catch {
Write-PscriboMessage -IsWarning "Backup Copy Jobs $($BkCopyjob.Name) Section: $($_.Exception.Message)"
}
}

if ($HealthCheck.Jobs.Status) {
$OutObj | Where-Object { $_.'Latest Result' -eq 'Failed' } | Set-Style -Style Critical -Property 'Latest Result'
$OutObj | Where-Object { $_.'Latest Result' -eq 'Warning' } | Set-Style -Style Warning -Property 'Latest Result'
$OutObj | Where-Object { $_.'Status' -eq 'Disabled' } | Set-Style -Style Warning -Property 'Status'
}

$TableParams = @{
Name = "Backup Copy Jobs - $VeeamBackupServer"
List = $false
ColumnWidths = 40, 15, 15, 15, 15
}
if ($Report.ShowTableCaptions) {
$TableParams['Caption'] = "- $($TableParams.Name)"
}
$OutObj | Sort-Object -Property 'Name' |Table @TableParams
}
}
}
catch {
Write-PscriboMessage -IsWarning "Backup Copy Jobs Section: $($_.Exception.Message)"
}
}
end {}

}
Loading

0 comments on commit 7378ea5

Please sign in to comment.