How to Apply Custom Settings in Veeam Backup for Microsoft 365 Using Set-VBOConfigurationParameter

KB ID: 4888
Product: Veeam Backup for Microsoft 365 | 8 | 8.1 | 8.2 | 8.3 | 8.4 | 8.5
Published: 2026-08-07
Last Modified: 2026-08-07
mailbox
Get weekly article updates
By subscribing, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.

Cheers for trusting us with the spot in your mailbox!

Now you’re less likely to miss what’s been brewing in our knowledge base with this weekly digest

error icon

Oops! Something went wrong.

Please, try again later.

Purpose

This article explains how to use the Set-VBOConfigurationParameter cmdlet to apply a custom configuration setting within a Veeam Backup for Microsoft 365 deployment.

Solution

How the Scripts in This Article Are Used

Every script in this article begins with the same three variables, which together identify the setting being changed and the value assigned to it:

$xpath = "<XML/Path>"       # location of the setting within the configuration file
$key = "<SettingName>"      # name of the setting
$value = "<SettingValue>"   # value assigned to the setting

When a custom setting is supplied as a block of these three variables, those values replace the placeholder values at the top of the example scripts provided in this article.

Starting a Veeam Backup for Microsoft 365 PowerShell Session

All commands in this article are run from the Veeam Backup for Microsoft 365 server (controller), including the commands that configure remote backup proxies.

  1. Open the Veeam Backup for Microsoft 365 console.
  2. In the main menu ( ☰ ), expand Console and select PowerShell.
    Note: Launching PowerShell from outside the Veeam Backup for Microsoft 365 console may require manual loading of the PowerShell modules.
Applying a Setting to the Controller

Controller settings are stored in the Config.xml file on the Veeam Backup for Microsoft 365 server. The script example below is used to update the settings in that file.

Update the three variables at the top of the script, then run it.

# Set the following variables
$xpath = "<XML/Path>"
$key = "<SettingName>"
$value = "<SettingValue>"

# No changes needed below
Set-VBOConfigurationParameter -XPath $xpath -Key $key -Value $value -Controller
Note: After a controller-level setting is changed, the Veeam Backup for Microsoft 365 Service may have to be restarted for the change to take effect.
Applying a Setting to a Windows Backup Proxy

Backup proxy settings are stored in the Proxy.xml file on each backup proxy, therefore the setting must be applied to every backup proxy the new setting is relevant to.

The backup proxy script requires a hostname. Run the following command to list the Windows-based backup proxies in the deployment.

Get-VBOProxy | Where-Object {$_.OperatingSystemKind -eq "Windows"} | ft Hostname

Update the variables at the top of the script, then run it. When prompted, enter the Windows credentials used to connect to the specified backup proxy.

Note: The Veeam Backup for Microsoft 365 server (controller) also hosts a backup proxy. When a setting applies to backup proxies, remember to apply it to the backup proxy on the controller as well.

# Set the following variables
$xpath = "<XML/Path>"
$key = "<SettingName>"
$value = "<SettingValue>"
$proxyHostname = "<hostname or IP address>"

# No changes needed below
$vboproxy = Get-VBOProxy -Hostname $proxyHostname
$winserverCredentials = Get-Credential
Set-VBOConfigurationParameter -XPath $xpath -Key $key -Value $value -Proxy $vboproxy -WindowsCredential $winserverCredentials -Restart
The deprecation warning for the -WindowsCredential parameter can be safely ignored; the configuration change is still applied.
Applying a Setting to a Linux Backup Proxy

The setting is written to the Proxy.xml file on the specified backup proxy and must be applied to every backup proxy the new setting is relevant to.

The backup proxy script requires a hostname. Run the following command to list the Linux-based backup proxies in the deployment.

Get-VBOProxy | Where-Object {$_.OperatingSystemKind -eq "Linux"} | ft Hostname

Linux credentials are supplied as a credentials record created by the New-VBOLinuxCredential cmdlet, and are passed using the -LinuxCredential.

Update the variables at the top of the script, then run it. When prompted, enter the password for the specified Linux account.

Note: If the connection fails because the SSH host fingerprint of the backup proxy cannot be verified, the expected fingerprint can be supplied using the -Fingerprint parameter, or the check can be skipped by adding the -IgnoreFingerprintCheck switch to the New-VBOLinuxCredential command on line 11 of the script.

# Set the following variables
$xpath = "<XML/Path>"
$key = "<SettingName>"
$value = "<SettingValue>"
$proxyHostname = "<hostname or IP address>"
$linuxAccount = "<user name>"

# No changes needed below
$vboproxy = Get-VBOProxy -Hostname $proxyHostname
$linuxPassword = Read-Host -Prompt "Password for $linuxAccount" -AsSecureString
$linuxCredential = New-VBOLinuxCredential -Account $linuxAccount -Password $linuxPassword -ElevateAccountToRoot
Set-VBOConfigurationParameter -XPath $xpath -Key $key -Value $value -Proxy $vboproxy -LinuxCredential $linuxCredential -Restart
Applying a Setting to a Backup Proxy Pool
The backup proxy pool script requires a pool name to be supplied. Run the following commands to list the backup proxies and backup proxy pools in the deployment. The PoolId column of the first command corresponds to the Id column of the second, and the OperatingSystemKind column indicates which operating systems are present in the pool, which determines the credentials the script must supply.
Get-VBOProxy | ft Hostname, OperatingSystemKind, PoolId
Get-VBOProxyPool | ft Name, Proxies, Id

When a backup proxy pool is specified, the setting is applied to every backup proxy in that pool. Credentials must be supplied for each operating system present in the pool, therefore the script example below supplies both Windows and Linux credentials. If the pool contains backup proxies of only one type, you may remove the lines for the other type and its matching parameter from the final command.

Update the variables at the top of the script, then run it. When prompted, enter the credentials for each operating system present in the pool.

# Set the following variables
$xpath = "<XML/Path>"
$key = "<SettingName>"
$value = "<SettingValue>"
$poolName = "<backup proxy pool name>"
$linuxAccount = "<user name>"

# No changes needed below
$vboproxypool = Get-VBOProxyPool -Name $poolName
$winserverCredentials = Get-Credential
$linuxPassword = Read-Host -Prompt "Password for $linuxAccount" -AsSecureString
$linuxCredential = New-VBOLinuxCredential -Account $linuxAccount -Password $linuxPassword -ElevateAccountToRoot
Set-VBOConfigurationParameter -XPath $xpath -Key $key -Value $value -ProxyPool $vboproxypool -WindowsCredential $winserverCredentials -LinuxCredential $linuxCredential -Restart
The deprecation warning for the -WindowsCredential parameter can be safely ignored; the configuration change is still applied.

More Information

Custom settings for Veeam Backup for Microsoft 365 are stored in XML configuration files: Config.xml on the controller, and Proxy.xml on each backup proxy. Applying a custom setting previously required that each of those files be edited by hand in a text editor on every machine.

The Set-VBOConfigurationParameter cmdlet was introduced to eliminate the need for manual changes to configuration files. The cmdlet writes the value to the correct location in the file, which removes the risk of a typing or formatting error invalidating the file, and applies settings to remote backup proxies without requiring the user to connect directly to those machines.

If this KB article did not resolve your issue or you need further assistance with Veeam software, please create a Veeam Support Case.

To submit feedback regarding this article, please click this link: Send Article Feedback
To report a typo on this page, highlight the typo with your mouse and press CTRL + Enter.

Spelling error in text

Thank you!

Thank you!

Your feedback has been received and will be reviewed.

Oops! Something went wrong.

Please, try again later.

You have selected too large block!

Please try select less.

KB Feedback/Suggestion

This form is only for KB Feedback/Suggestions, if you need help with the software open a support case

By submitting, you are agreeing to have your personal information managed in accordance with the terms of Veeam's Privacy Notice.
Verify your email to continue your product download
We've sent a verification code to:
  • Incorrect verification code. Please try again.
An email with a verification code was just sent to
Didn't receive the code? Click to resend in sec
Didn't receive the code? Click to resend
Thank you!

Thank you!

Your feedback has been received and will be reviewed.

error icon

Oops! Something went wrong.

Please, try again later.