Find Which Veeam M365 Jobs Use a Specific Repository (PowerShell)

Veeam | Published 2026-04-07 | By NetCollege Team

Summary: Use PowerShell in Veeam Backup for Microsoft 365 to list jobs that target a specific repository by name and repository ID.

Introduction

When planning maintenance, migrations, or capacity checks in Veeam Backup for Microsoft 365, you often need to answer one question quickly:

Which backup jobs are writing to this repository?

This guide shows a practical PowerShell method using Get-VBORepository and Get-VBOJob to find those job-to-repository mappings.


Prerequisites

  • Run commands from a Veeam Backup for Microsoft 365 server (or management host with console and PowerShell module available).
  • Use an account with permission to read Veeam configuration.
  • Open PowerShell as administrator.

Load Veeam PowerShell (if not already loaded in your session):

Import-Module Veeam.Archiver.PowerShell

Method 1: Find jobs by repository name (tested script)

If you know the repository name, this script is a solid approach:

# Get all repos by name
Get-VBORepository

# Create var with repo name
$repositoryName = "Veeam365-02"

# Get all repo
$repository = Get-VBORepository | Where-Object { $_.Name -eq $repositoryName }

if ($repository) {
    # List all jobs using the specified repository
    $jobs = Get-VBOJob | Where-Object { $_.RepositoryId -eq $repository.Id }
    
    if ($jobs.Count -gt 0) {
        # Output the job names that use the repository
        $jobs | Select-Object Name, Organization, RepositoryName
    } else {
        Write-Host "No jobs are using the repository '$repositoryName'."
    }
} else {
    Write-Host "Repository '$repositoryName' not found."
}

Method 2: Include repository ID and export-ready output

For change control/reporting, output job and repository identifiers:

$repositoryName = "Veeam365-02"
$repository = Get-VBORepository | Where-Object { $_.Name -eq $repositoryName }

if (-not $repository) {
    throw "Repository '$repositoryName' not found."
}

Get-VBOJob | Where-Object {
    $_.RepositoryId -eq $repository.Id
} | Select-Object Name, Organization, RepositoryName, RepositoryId

Export results to CSV

For change windows or documentation:

$repositoryName = "Veeam365-02"
$outFile  = "C:\Temp\VBO-Jobs-Using-$repositoryName.csv"
$repository = Get-VBORepository | Where-Object { $_.Name -eq $repositoryName }

if (-not $repository) {
    throw "Repository '$repositoryName' not found."
}

Get-VBOJob | Where-Object {
    $_.RepositoryId -eq $repository.Id
} | Export-Csv -Path $outFile -NoTypeInformation

Write-Host "Exported: $outFile"

Troubleshooting

No jobs returned

  • Confirm exact repository name.
  • Verify jobs are enabled and visible to your account.
  • Confirm the repository is the active target for those jobs.

Module/snap-in not loading

  • Confirm Veeam console/components are installed on the host.
  • Run PowerShell as administrator.

Conclusion

This Get-VBORepository + Get-VBOJob approach is simple and reliable for Veeam Backup for Microsoft 365.
For production changes, export results to CSV so you have a clear audit trail before repository maintenance or migration.

Frequently asked questions

Why would I need to map Veeam jobs to a repository?

It helps with capacity planning, maintenance windows, migration tasks, and impact analysis before changing repository settings.

Which PowerShell module is needed for these commands?

Use the Veeam Backup for Microsoft 365 PowerShell module, typically Veeam.Archiver.PowerShell on the management server.

Can I identify jobs by repository ID instead of name?

Yes. Querying by repository ID is often more reliable in environments where repository names are similar.

← Back to category