# Подключаем модуль 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) записей"