Getting Started¶
Requirements¶
- Windows system with VBR Console or VB365 installed
- Run as an elevated user with Backup Administrator role
- 500 MB free disk space on
C:\(default output:C:\temp\vHC) - Veeam Cloud Service Provider servers are not supported
Supported Versions¶
| Product | Supported Versions | Notes |
|---|---|---|
| Veeam Backup & Replication | v12.3, v13 (Windows & Linux) | For v11/v12 pre-12.3, use Health Check v2 |
| Veeam Backup for Microsoft 365 | v6, v7, v8 |
Installation¶
- Download the latest
VeeamHealthCheck.zip - Extract the archive on your Veeam server
- Run
VeeamHealthCheck.exeas Administrator
No installer. No dependencies to install. Single executable.
Running a Health Check¶
- Launch
VeeamHealthCheck.exeas Administrator - Configure options (reporting window, export format, output path)
- Accept the terms and click RUN
- Review the generated report
CLI Reference¶
| Option | Description |
|---|---|
/run |
Execute health check via CLI |
/gui |
Launch graphical interface |
/help |
Show full help menu |
/days:<N> |
Reporting window: 7, 12, 30, or 90 days (default: 7) |
/outdir=<path> |
Output directory (default: C:\temp\vHC) |
/pdf |
Also export as PDF |
/pptx |
Also export as PowerPoint |
/scrub:true |
Anonymize sensitive data |
/lite |
Skip per-job HTML exports (faster) |
/show:report |
Open report in browser when done |
/show:files |
Open output folder in Explorer |
/remote |
Enable remote execution |
/host=<hostname> |
Target remote Veeam server |
/security |
Run security-focused assessment only |
/import[:<path>] |
Generate report from existing CSV data |
/clearcreds |
Clear stored credentials |
/debug |
Enable debug logging |
Remote Execution¶
Run against a remote Veeam server without being locally logged into it:
Credentials are prompted and stored securely in Windows Credential Manager.
Unattended / fleet execution (scripting many servers)¶
For non-interactive runs (CI, scripts, running across many VBR servers) supply credentials
with a credfile instead of an interactive prompt. A credfile is a JSON map of
host → { Username, PasswordBase64 }, where PasswordBase64 is the base64 of the
UTF‑8 plaintext password. One file can hold credentials for an entire fleet:
{
"vbr01.corp.local": { "Username": "svc-vhc", "PasswordBase64": "<base64-pw>" },
"vbr02.corp.local": { "Username": "svc-vhc", "PasswordBase64": "<base64-pw>" },
"vbr15.corp.local": { "Username": "svc-vhc", "PasswordBase64": "<base64-pw>" }
}
# generate a PasswordBase64 value
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes($plaintextPassword))
# run unattended against one host using the credfile
VeeamHealthCheck.exe /run /remote /host=vbr01.corp.local /credfile=C:\creds\fleet.json /silent
# loop a fleet
foreach ($h in 'vbr01.corp.local','vbr02.corp.local') {
VeeamHealthCheck.exe /run /remote /host=$h /credfile=C:\creds\fleet.json /silent /outdir=D:\Reports\$h
}
/silent makes the run fail fast (exit code) instead of prompting. Prefer /credfile=
over passing a password inline — inline passwords leak into process arguments, shell
history, and CI logs. Treat the credfile as a secret and delete it after use.
Troubleshooting¶
| Problem | Solution |
|---|---|
| "Access Denied" | Run as Administrator with Backup Administrator role |
| "No Veeam installation detected" | Tool must run on a system with VBR Console or VB365 installed |
| Low disk space errors | Ensure C:\ has at least 500 MB free |
| PowerShell errors | Verify PowerShell 7+ is installed |
| Credentials not working | Run /clearcreds then re-authenticate |
Sample Report¶
View a sample anonymized report to see what output looks like before running.