Hi everyone đź‘‹,
I have been using VBR 13.1 in production since release day, including several Windows-based VBR installations and Veeam Cloud Connect environments.
Starting with VBR 13.1, the built-in Veeam Updater is also available for Windows-based backup servers. This is the new part: Windows VBR can now automatically download and install supported Veeam product updates.
I have already enabled automatic update installation in a few environments with predictable schedules. So far, it has worked exactly as expected: updates are installed within a week of release and I no longer need to return to every backup server just to apply a patch manually.
That is a real improvement. âś…
After configuring it across several environments, however, I do not think installing the update is the difficult part. The difficult part is proving that this is actually a safe moment to install it.
⏱️ A maintenance window is still based on the clock
The current maintenance window lets us define when Veeam Updater should start. The documentation also contains an important warning: a scheduled installation or reaching the compliance deadline can trigger the update even when jobs are still running. The affected backup or recovery operations may then fail.
That makes the current window schedule-based, not state-aware.
Sunday at 14:00 may be a quiet period in one environment. In another, this is exactly when SureBackup, health checks, CRC checks, merges, malware scans, tape jobs or long-running Backup Copy jobs are active.
An active restore, Instant Recovery session, failover or provider-side recovery operation is an even clearer blocker.
I would not want the updater to stop these operations or rewrite their schedules automatically. I would rather have it postpone its own work and look for the next sufficiently long window.
One additional distinction is worth making: on a Windows-based backup server, Veeam Updater updates the Veeam product. It does not patch the Windows operating system. Remote component distribution and appliance operating system updates also have their own stages and dependencies.
⚙️ The workflow I would like to automate
At a high level, I see the process like this:
Update detected
→ Verify readiness
→ Wait for protected and recovery operations to finish
→ Check the next scheduled jobs
→ Reserve time for update, restart and validation
→ Update the pilot environment
→ Run post-update checks
→ Release or block the next wave
Before starting, the readiness check could confirm:
- there is a recent, successful and encrypted configuration backup;
- the configuration backup is available outside the server being updated;
- no backup, Backup Copy, replication, restore, Instant Recovery, SureBackup or tape session is active;
- no repository maintenance or infrastructure operation is in progress;
- critical proxies, repositories and other components are available;
- there is enough free disk space for the update;
- there is enough time before the next scheduled job;
- the available window includes a safety margin for a possible restart and post-update validation.
I treat a hypervisor snapshot, where it is appropriate for the particular design, only as a short-lived additional checkpoint. It does not replace the VBR configuration backup and should not be the only recovery plan.
If the preferred window is no longer available, the update should move to the next suitable period. If no safe period can be found before the compliance deadline, the administrator should receive an early warning and make the decision explicitly.
Some individual checks can already be scripted by querying VBR state. What I have not found yet is one clean, supported interface that orchestrates the complete workflow for a Windows-based VBR server.
I am therefore interested in how much of this process other people are already automating with supported PowerShell or REST interfaces.
🌊 One server is simple. A group of VBR servers is different
For a single installation, a fixed window with a reasonable buffer may be enough.
For multiple managed VBR environments, and particularly for Cloud Connect, I would not deploy the same update everywhere at once. I would divide the environments into groups based on architecture, criticality and installed roles.
A possible sequence could be:
- A lab or representative pilot environment
- A small production group
- Standard production environments
- VCC and other environments requiring additional validation
- Exceptions requiring manual approval
The next group should start only after the previous one has passed its assigned validation.
A failed update, an unavailable repository, an outdated infrastructure component or a failed smoke test should stop the rollout before the same problem reaches the remaining environments.
I do not expect an automatic rollback to be the default response. Reverting a configuration database schema, remote components or appliance operating system changes may be riskier than stopping. The safer default would be to block the remaining waves, preserve the exact state, collect diagnostics and request a decision.
It is also worth separating the VBR server update from remote component distribution. Automatic Component Upgrade Distribution helps with managed servers, proxies and repositories, but the final validation still needs to confirm that every required component has returned online and that nothing remains in the Out of Date state.
During my VCC upgrades to 13.1, the main VBR servers upgraded without problems. A few VIA appliances used as WAN Accelerators or Cloud Gateways required additional attention. In one case, I had to restart the VIA upgrade manually from Host Management.
This is why I would keep the provider server, appliances, remote components and managed customer environments in separate stages.
đź§Ş What should count as successful validation?
I do not think every environment needs the same post-update test.
The basic checks could cover:
- Veeam services and configuration database connectivity;
- access through the console or Web UI;
- availability of repositories and proxies;
- Cloud Gateways and WAN Accelerators in VCC;
- versions and status of remote components;
- new critical warnings or infrastructure errors.
The operational test should depend on the environment. It could be a selected backup, Backup Copy, file-level restore, SureBackup job, Instant Recovery test or another known workload.
I would not require a complete VM restore after every patch in every environment, but it should be available as a validation gate for selected critical systems.
📊 Could historical data help?
Checking only the current session list is not enough. Before starting, the workflow should also know when the next scheduled task is expected and whether the remaining time covers the update, a possible restart, remote component upgrades and validation.
Historical durations could help estimate both the end of current jobs and the time needed for the update. The estimate could consider previous updates in the same environment, configuration database size, server performance, number and type of managed components and earlier restart times.
This does not need to become an uncontrolled AI decision. A recommendation with a confidence level and safety margin would already be useful:
Estimated update time:Â 50 minutes
Recommended window:Â 90 minutes
Next conflicting job:Â 17:00
Confidence:Â high
đź§ Where should central orchestration live?
There are several possible places, and I am not convinced that one product should do everything:
- VBRÂ could perform local readiness checks and the update itself;
- Veeam ONEÂ already has historical job and infrastructure data that could help identify likely free periods and estimate the required time;
- Enterprise Manager could coordinate update groups and approvals across multiple VBR servers in one organization;
- VSPCÂ would be the natural place for service providers managing policies, exceptions and deployment waves across separate customer environments.
The current Veeam Updater PowerShell reference is also an interesting boundary: the documented updater cmdlets focus on Linux-based backup servers and Veeam Infrastructure Appliances. That is another reason I would like to understand how others are orchestrating the complete Windows-based VBR workflow without relying on unsupported shortcuts.
đź’¬ How are you handling this today?
I am posting this in Automation Desk because I would like to separate two things:
- what we can already build safely with supported interfaces;
- what still requires additional product capabilities.
I would be particularly interested in your experience:
- Are you already wrapping Veeam Updater in your own PowerShell or REST workflow?
- Which sessions do you treat as hard blockers?
- Do you inspect only active sessions, or also upcoming schedules and historical durations?
- What must pass before you release the next update wave?
- Where do you place central orchestration: Veeam ONE, Enterprise Manager, VSPC or an external platform?
- Have you found a supported interface that covers the complete process for Windows-based VBR?
Veeam Updater already solves an important problem: updates no longer have to wait until someone manually returns to every server.
The next challenge is making sure that automation understands not only the configured time, but also what the backup environment is doing at that moment.
I would be happy to compare approaches and turn the useful parts of this discussion into a more precise feature request.
References
- KB4840 - Veeam Updater:Â https://www.veeam.com/kb4840
- VBR 13 Upgrade Checklist:Â https://helpcenter.veeam.com/docs/vbr/userguide/upgrade_vbr_byb.html?ver=13
- Creating Configuration Backups:Â https://helpcenter.veeam.com/docs/vbr/userguide/export_vbr_config.html?ver=13
- Managing Configuration Database:Â https://helpcenter.veeam.com/docs/vbr/userguide/vbr_config.html?ver=13
- Veeam Updater PowerShell Reference:Â https://helpcenter.veeam.com/docs/vbr/powershell/veeam_updater.html?ver=13
