Skip to content

Commit

Permalink
Merge pull request #195 from AsBuiltReport/dev
Browse files Browse the repository at this point in the history
v0.8.13 public release
  • Loading branch information
rebelinux authored Dec 11, 2024
2 parents f11f4aa + 6803be2 commit 7f136b8
Show file tree
Hide file tree
Showing 30 changed files with 652 additions and 75 deletions.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ body:
label: Veeam Backup & Replication version
options:
- vNEXT
- 12.3
- 12.2
- 12.1
- 12
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/change_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ body:
label: Veeam Backup & Replication version
options:
- vNEXT
- 12.3
- 12.2
- 12.1
- 12
Expand Down
6 changes: 3 additions & 3 deletions 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.8.12'
ModuleVersion = '0.8.13'

# Supported PSEditions
# CompatiblePSEditions = @()
Expand Down Expand Up @@ -55,7 +55,7 @@
RequiredModules = @(
@{
ModuleName = 'AsBuiltReport.Core';
ModuleVersion = '1.4.0'
ModuleVersion = '1.4.1'
}
@{
ModuleName = 'PScriboCharts';
Expand All @@ -67,7 +67,7 @@
}
@{
ModuleName = 'Veeam.Diagrammer';
ModuleVersion = '0.6.16'
ModuleVersion = '0.6.18'
}
)

Expand Down
4 changes: 3 additions & 1 deletion AsBuiltreport.Veeam.VBR.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@
"Inventory": {
"FileShare": 1,
"PHY": 1,
"VI": 1
"VI": 1,
"EntraID": 1
},
"Storage": {
"ISILON": 1,
Expand All @@ -71,6 +72,7 @@
"Agent": 1,
"Backup": 1,
"BackupCopy": 1,
"EntraID": 3,
"FileShare": 1,
"Surebackup": 1,
"Replication": 1,
Expand Down
23 changes: 23 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

##### This project is community maintained and has no sponsorship from Veeam, its employees or any of its affiliates.

## [0.8.13] - 2024-12-11

### Added

- Add EntraID Tenant configuration
- Add Objects Backup Job information
- Update Malware detection setting
- Add Signature Detection
- Update Security & Compliance Best Practice content
- Add Syslog Event Filter information
- Add Google Cloud Storage repository information

### Changed

- Increase Veeam.Diagrammer minimum requirement to v0.6.18
- Change the infrastructure diagram default save location to $OutputFolderPath
- Increase AsBuiltReport.Core to v1.4.1

### Fixed

- Fix error "A positional parameter cannot be found that accepts argument '-'" at Get-AbrVbrConfigurationBackupSetting cmdlet
- Fix ConvertTo-HashToYN cmdlet not generating an ordereddictionary output

## [0.8.12] - 2024-11-22

### Changed
Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,7 @@ The table below outlines the default and maximum **InfoLevel** settings for each
| VI | 1 | 1 |
| PHY | 1 | 2 |
| FileShare | 1 | 1 |
| EntraID | 1 | 1 |

The table below outlines the default and maximum **InfoLevel** settings for each Storage Infrastructure section.

Expand All @@ -232,6 +233,7 @@ The table below outlines the default and maximum **InfoLevel** settings for each
| FileShare | 1 | 2 |
| Replication | 1 | 2 |
| Restores | 0 | 1 |
| EntraID | 1 | 2 |

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

Expand Down
5 changes: 2 additions & 3 deletions Src/Private/Get-AbrVbrAgentBackupjobConf.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ function Get-AbrVbrAgentBackupjobConf {
$OutObj = [pscustomobject](ConvertTo-HashToYN $inObj)

if ($HealthCheck.Jobs.BestPractice) {
$OutObj | Where-Object { $Null -like $_.'Description' } | Set-Style -Style Warning -Property 'Description'
$OutObj | Where-Object { $_.'Description' -eq "--" } | Set-Style -Style Warning -Property 'Description'
$OutObj | Where-Object { $_.'Description' -match "Created by" } | Set-Style -Style Warning -Property 'Description'
}

Expand All @@ -70,8 +70,7 @@ 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:" -Bold -Underline
if ($OutObj | Where-Object { $_.'Description' -match 'Created by' -or $_.'Description' -eq '--' }) { Paragraph "Health Check:" -Bold -Underline
BlankLine
Paragraph {
Text "Best Practice:" -Bold
Expand Down
17 changes: 14 additions & 3 deletions Src/Private/Get-AbrVbrBackupRepository.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ function Get-AbrVbrBackupRepository {
.DESCRIPTION
Documents the configuration of Veeam VBR in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.8.12
Version: 0.8.13
Author: Jonathan Colon
Twitter: @jcolonfzenpr
Github: rebelinux
Expand Down Expand Up @@ -226,11 +226,22 @@ function Get-AbrVbrBackupRepository {
$inObj.Remove('Extent of ScaleOut Backup Repository')
}

if ($BackupRepo.Type -in @('AmazonS3Compatible', 'WasabiS3')) {
if ($BackupRepo.Type -in @('GoogleCloudStorage')) {
$inObj.Add('Region Id', ($BackupRepos.GoogleCloudOptions.RegionId))
$inObj.Add('Region Type', ( $BackupRepos.GoogleCloudOptions.RegionType))
$inObj.Add('Bucket Name', ( $BackupRepos.GoogleCloudOptions.BucketName))
$inObj.Add('Folder Name', ( $BackupRepos.GoogleCloudOptions.FolderName))
$inObj.Add('Storage Class', ( $BackupRepos.GoogleCloudOptions.StorageClass))
$inObj.Add('Enable Nearline Storage Class', ( $BackupRepos.GoogleCloudOptions.EnableNearlineStorageClass))
$inObj.Add('Enable Coldline Storage Class', ( $BackupRepos.GoogleCloudOptions.EnableColdlineStorageClass))
$inObj.Remove('Path')
}

if ($BackupRepo.Type -in @('AmazonS3Compatible', 'WasabiS3', 'GoogleCloudStorage')) {
$inObj.Add('Object Lock Enabled', ($BackupRepo.ObjectLockEnabled))
}

if ($BackupRepo.Type -in @('AmazonS3Compatible', 'WasabiS3')) {
if ($BackupRepo.Type -in @('AmazonS3Compatible', 'WasabiS3', 'GoogleCloudStorage')) {
$inObj.Add('Mount Server', (Get-VBRServer | Where-Object { $_.id -eq $BackupRepo.MountHostId.Guid }).Name)
}

Expand Down
9 changes: 7 additions & 2 deletions Src/Private/Get-AbrVbrBackupServerInfo.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ function Get-AbrVbrBackupServerInfo {
.DESCRIPTION
Documents the configuration of Veeam VBR in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.8.12
Version: 0.8.13
Author: Jonathan Colon
Twitter: @jcolonfzenpr
Github: rebelinux
Expand Down Expand Up @@ -425,6 +425,12 @@ function Get-AbrVbrBackupServerInfo {
"ProviderCredentialsId" = ""
"ProviderInfo" = ""
"ProviderId" = ""
"EntraIdSqlHostName" = "localhost"
"EntraIdSqlHostPort" = "5432"
"EntraIdSqlPassword" = ""
"EntraIdSqlServiceName" = "postgresql-x64-15"
"EntraIdSqlUserName" = "postgres"
"HighestDetectedVMCVersion" = ""
}
if ($VeeamInfo) {
$OutObj = @()
Expand All @@ -444,7 +450,6 @@ function Get-AbrVbrBackupServerInfo {
0 { '--' }
1 { $Registry.Value }
default { $Registry.Value -Join ', ' }

}
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
Expand Down
7 changes: 3 additions & 4 deletions Src/Private/Get-AbrVbrCloudConnectCG.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ function Get-AbrVbrCloudConnectCG {
.DESCRIPTION
Documents the configuration of Veeam VBR in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.8.12
Version: 0.8.13
Author: Jonathan Colon
Twitter: @jcolonfzenpr
Github: rebelinux
Expand Down Expand Up @@ -66,7 +66,7 @@ function Get-AbrVbrCloudConnectCG {

$OutObj = [pscustomobject](ConvertTo-HashToYN $inObj)
if ($HealthCheck.Jobs.BestPractice) {
$OutObj | Where-Object { $Null -like $_.'Description' } | Set-Style -Style Warning -Property 'Description'
$OutObj | Where-Object { $_.'Description' -eq "--" } | Set-Style -Style Warning -Property 'Description'
$OutObj | Where-Object { $_.'Description' -match "Created by" } | Set-Style -Style Warning -Property 'Description'
}

Expand All @@ -81,8 +81,7 @@ function Get-AbrVbrCloudConnectCG {
}
$OutObj | Sort-Object -Property 'Name' | Table @TableParams
if ($HealthCheck.Jobs.BestPractice) {
if ($OutObj | Where-Object { $_.'Description' -match 'Created by' -or $Null -like $_.'Description' }) {
Paragraph "Health Check:" -Bold -Underline
if ($OutObj | Where-Object { $_.'Description' -match 'Created by' -or $_.'Description' -eq '--' }) { Paragraph "Health Check:" -Bold -Underline
BlankLine
Paragraph {
Text "Best Practice:" -Bold
Expand Down
7 changes: 3 additions & 4 deletions Src/Private/Get-AbrVbrCloudConnectGP.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ function Get-AbrVbrCloudConnectGP {
.DESCRIPTION
Documents the configuration of Veeam VBR in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.8.12
Version: 0.8.13
Author: Jonathan Colon
Twitter: @jcolonfzenpr
Github: rebelinux
Expand Down Expand Up @@ -50,7 +50,7 @@ function Get-AbrVbrCloudConnectGP {
}

if ($HealthCheck.Jobs.BestPractice) {
$OutObj | Where-Object { $Null -like $_.'Description' } | Set-Style -Style Warning -Property 'Description'
$OutObj | Where-Object { $_.'Description' -eq "--" } | Set-Style -Style Warning -Property 'Description'
$OutObj | Where-Object { $_.'Description' -match "Created by" } | Set-Style -Style Warning -Property 'Description'
}

Expand All @@ -65,8 +65,7 @@ function Get-AbrVbrCloudConnectGP {
}
$OutObj | Sort-Object -Property 'Name' | Table @TableParams
if ($HealthCheck.Jobs.BestPractice) {
if ($OutObj | Where-Object { $_.'Description' -match 'Created by' -or $Null -like $_.'Description' }) {
Paragraph "Health Check:" -Bold -Underline
if ($OutObj | Where-Object { $_.'Description' -match 'Created by' -or $_.'Description' -eq '--' }) { Paragraph "Health Check:" -Bold -Underline
BlankLine
Paragraph {
Text "Best Practice:" -Bold
Expand Down
7 changes: 3 additions & 4 deletions Src/Private/Get-AbrVbrCloudConnectTenant.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ function Get-AbrVbrCloudConnectTenant {
.DESCRIPTION
Documents the configuration of Veeam VBR in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.8.12
Version: 0.8.13
Author: Jonathan Colon
Twitter: @jcolonfzenpr
Github: rebelinux
Expand Down Expand Up @@ -134,7 +134,7 @@ function Get-AbrVbrCloudConnectTenant {
$OutObj = [pscustomobject](ConvertTo-HashToYN $inObj)

if ($HealthCheck.CloudConnect.BestPractice) {
$OutObj | Where-Object { $Null -like $_.'Description' } | Set-Style -Style Warning -Property 'Description'
$OutObj | Where-Object { $_.'Description' -eq "--" } | Set-Style -Style Warning -Property 'Description'
$OutObj | Where-Object { $_.'Description' -match "Created by" } | Set-Style -Style Warning -Property 'Description'
$OutObj | Where-Object { $_.'Expiration Date' -match '(Expired)' } | Set-Style -Style Warning -Property 'Expiration Date'
}
Expand All @@ -150,8 +150,7 @@ function Get-AbrVbrCloudConnectTenant {
}
$OutObj | Sort-Object -Property 'Name' | Table @TableParams
if ($HealthCheck.Jobs.BestPractice) {
if ($OutObj | Where-Object { $_.'Description' -match 'Created by' -or $Null -like $_.'Description' }) {
Paragraph "Health Check:" -Bold -Underline
if ($OutObj | Where-Object { $_.'Description' -match 'Created by' -or $_.'Description' -eq '--' }) { Paragraph "Health Check:" -Bold -Underline
BlankLine
Paragraph {
Text "Best Practice:" -Bold
Expand Down
6 changes: 3 additions & 3 deletions Src/Private/Get-AbrVbrConfigurationBackupSetting.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ function Get-AbrVbrConfigurationBackupSetting {
.DESCRIPTION
Documents the configuration of Veeam VBR in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.8.12
Version: 0.8.13
Author: Jonathan Colon
Twitter: @jcolonfzenpr
Github: rebelinux
Expand Down Expand Up @@ -83,14 +83,14 @@ function Get-AbrVbrConfigurationBackupSetting {
BlankLine
if ($OutObj | Where-Object { $_.'Encryption Enabled' -like 'No' } ) {
Paragraph {
Text "Best Practice:" - Bold
Text "Best Practice:" -Bold
Text "Whenever possible, enable configuration backup encryption."
}
BlankLine
}
if ($OutObj | Where-Object { $_.'Run Job Automatically' -like 'No' }) {
Paragraph {
Text "Best Practice:" - Bold
Text "Best Practice:" -Bold
Text "It's a recommended best practice to activate the 'Run job automatically' option of the Backup Configuration job."
}
BlankLine
Expand Down
67 changes: 67 additions & 0 deletions Src/Private/Get-AbrVbrEntraIDBackupjob.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@

function Get-AbrVbrEntraIDBackupjob {
<#
.SYNOPSIS
Used by As Built Report to returns entraid jobs created in Veeam Backup & Replication.
.DESCRIPTION
Documents the configuration of Veeam VBR in Word/HTML/Text formats using PScribo.
.NOTES
Version: 0.8.13
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 EntraID Tenant Backup jobs information from $System."
}

process {
try {
if ($Bkjobs = Get-VBREntraIDTenantBackupJob | Sort-Object -Property 'Name') {
Section -Style Heading3 'EntraID Tenant Backup Jobs' {
Paragraph "The following section list entraid tenant jobs created in Veeam Backup & Replication."
BlankLine
$OutObj = @()
foreach ($Bkjob in $Bkjobs) {
try {
Write-PScriboMessage "Discovered $($Bkjob.Name) Backup Job."
$inObj = [ordered] @{
'Name' = $Bkjob.Name
'Tenant' = $Bkjob.Tenant.Name
'Schedule Status' = Switch ($Bkjob.EnableSchedule) {
'False' { 'Not Scheduled' }
'True' { 'Scheduled' }
}
}
$OutObj += [pscustomobject](ConvertTo-HashToYN $inObj)
} catch {
Write-PScriboMessage -IsWarning "EntraID Tenant Backup Jobs $($SBkjob.Name) Section: $($_.Exception.Message)"
}
}

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

0 comments on commit 7f136b8

Please sign in to comment.