Files
veeam/Veeam_AllBackups_Full.ps1

64 lines
2.5 KiB
PowerShell

# Подключаем модуль Veeam
Add-PSSnapIn -Name VeeamPSSnapIn -ErrorAction SilentlyContinue
$AllJobs = @()
# 1. Обычные задания резервного копирования
Get-VBRJob | ForEach-Object {
$Job = $_
$JobObjects = Get-VBRJobObject -Job $Job -ErrorAction SilentlyContinue
if ($JobObjects) {
$JobObjects | ForEach-Object {
$AllJobs += [PSCustomObject]@{
JobName = $Job.Name
JobCategory = "Classic Backup"
JobType = $Job.JobType
ObjectName = $_.Name
ObjectType = $_.Type
Enabled = $_.Enabled
}
}
} else {
$AllJobs += [PSCustomObject]@{
JobName = $Job.Name
JobCategory = "Classic Backup"
JobType = $Job.JobType
ObjectName = "No objects"
ObjectType = "N/A"
Enabled = $null
}
}
}
# 2. Политики приложений (Application Backup Policies)
Get-VBRApplicationBackupJob | ForEach-Object {
$AllJobs += [PSCustomObject]@{
JobName = $_.Name
JobCategory = "Application Policy"
JobType = $_.Type # OracleRMAN, SAPHANA, MSSQL и т.д.
ObjectName = "Application Policy"
ObjectType = "N/A"
Enabled = $_.Enabled
}
}
# 3. Автономные задания плагинов
Get-VBRPluginJob | ForEach-Object {
$AllJobs += [PSCustomObject]@{
JobName = $_.Name
JobCategory = "Plugin Job"
JobType = $_.JobType # Backup или BackupCopy
ObjectName = "Plugin Job"
ObjectType = "N/A"
Enabled = $_.Enabled
}
}
# Экспортируем всё в один CSV
$AllJobs | Export-Csv -Path "C:\Veeam_AllBackups_Full.csv" -NoTypeInformation -Encoding UTF8 -Delimiter ";"
Write-Host "✅ Полный отчет сохранен в C:\Veeam_AllBackups_Full.csv" -ForegroundColor Green
Write-Host " - Classic Backup: $(($AllJobs | Where-Object { $_.JobCategory -eq 'Classic Backup' }).Count) записей"
Write-Host " - Application Policies: $(($AllJobs | Where-Object { $_.JobCategory -eq 'Application Policy' }).Count) записей"
Write-Host " - Plugin Jobs: $(($AllJobs | Where-Object { $_.JobCategory -eq 'Plugin Job' }).Count) записей"