> For the complete documentation index, see [llms.txt](https://docs.devolutions.net/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.devolutions.net/agent/deploy-devolutions-agent-silently.md).

# Deploy Devolutions Agent silently

Deploy Devolutions Agent silently with msiexec or PowerShell, and choose which components to install with the ADDLOCAL property for mass deployment.

The Devolutions Agent installer is a standard Windows Installer (MSI) package. It can be installed silently from the command line, through PowerShell, or through any software deployment tool (Microsoft Intune, Configuration Manager, Group Policy, RMM platforms, and so on).

During a silent installation, choose which Devolutions Agent components are installed with the standard `ADDLOCAL` MSI property. This is useful when deploying Devolutions Agent to many machines, for example to replace the deprecated [RDM Jump agent](https://docs.devolutions.net/rdm/ribbon-menu-bar/tools/all-tools/rdm-jump-deprecated) with Devolutions Agent on [jump hosts](/agent/jump-host.md), or to leave out components that are not needed in a given environment.

## Prerequisites

* A Windows machine with local administrator rights (or a deployment tool running as SYSTEM).
* .NET Framework 4.8 or later.
* The Devolutions Agent MSI for the target architecture, x64 or arm64 (for example `DevolutionsAgent-2026.3.0-x64.msi`).

{% hint style="warning" %}
The installer does not allow downgrades. If a newer version is already installed, the installation fails with exit code `1603`.
{% endhint %}

## Installer components

Each component in the installer maps to a feature ID. Use these IDs in `ADDLOCAL` (to install) or `REMOVE` (to remove). Feature IDs are case sensitive. The same features, as displayed in the interactive installer, are described in [Devolutions Agent](/agent/readme.md#installation).

| FEATURE ID   | NAME IN THE INSTALLER       | DEFAULT              | DESCRIPTION                                                                                                                                                                                                                                                                                                                                       |
| ------------ | --------------------------- | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `F.Agent`    | Devolutions Agent           | Installed (required) | Installs the Devolutions Agent service. Always required. Parent of `F.Updater`, `F.Tunnel`, and `F.PsuAgent`.                                                                                                                                                                                                                                     |
| `F.Session`  | RDP Extension               | Installed            | Enables RDP session features such as remote execution, jump sessions, and remote logoff. Installs the component that opens the RDP virtual channel used by Remote Desktop Manager to communicate with Devolutions Agent. Required for Jump connections from Remote Desktop Manager through Devolutions Agent, and therefore on every jump host.   |
| `F.Updater`  | Devolutions Gateway Updater | Installed            | The update module of Devolutions Agent. It handles updates of Devolutions Gateway and Devolutions Cloud Services, as well as the self-update of Devolutions Agent. Without it, Devolutions Agent cannot update itself.                                                                                                                            |
| `F.Tunnel`   | Agent Tunnel                | Not installed        | Connects Devolutions Agent to a Devolutions Gateway. A silent installation with this component fails unless additional properties are passed, such as the enrollment string from the gateway operator. Not covered in this article. See [Agent tunnel](https://docs.devolutions.net/gateway/knowledge-base/knowledge-base-articles/agent-tunnel). |
| `F.PsuAgent` | PowerShell Universal Agent  | Not installed        | Enables the PowerShell Universal remote agent. A silent installation with this component fails unless additional properties are passed, such as the PowerShell Universal URL and token. Not covered in this article.                                                                                                                              |
| `F.Pedm`     | Devolutions PEDM            | Not installed        | Enables PEDM features and installs the shell extension. Experimental.                                                                                                                                                                                                                                                                             |

{% hint style="info" %}
If you run a silent installation without `ADDLOCAL`, the default components are installed: Devolutions Agent, RDP Extension, and Devolutions Gateway Updater.
{% endhint %}

## Silent installation

### Default components

To install Devolutions Agent with its default components, run the following command from an elevated prompt:

```
msiexec /i "DevolutionsAgent-2026.3.0-x64.msi" /qn /norestart /l*v "C:\Windows\Temp\DevolutionsAgent_install.log"
```

| SWITCH        | PURPOSE                                                            |
| ------------- | ------------------------------------------------------------------ |
| `/i`          | Install or update the package.                                     |
| `/qn`         | No user interface (silent).                                        |
| `/norestart`  | Do not restart the machine automatically.                          |
| `/l*v <path>` | Write a verbose installation log. Recommended for troubleshooting. |

### Selected components

To choose the components, pass `ADDLOCAL` with a comma-separated list of feature IDs. `F.Agent` must always be included. Any component that is not listed is not installed.

The following example is a typical setup for a jump host. It installs Devolutions Agent with the RDP Extension and the update module.

```
msiexec /i "DevolutionsAgent-2026.3.0-x64.msi" /qn /norestart ADDLOCAL="F.Agent,F.Updater,F.Session" /l*v "C:\Windows\Temp\DevolutionsAgent_install.log"
```

The following example installs Devolutions Agent with the RDP Extension, without the update module. Use it only if your organization does not want Devolutions Agent to update itself or other Devolutions components.

```
msiexec /i "DevolutionsAgent-2026.3.0-x64.msi" /qn /norestart ADDLOCAL="F.Agent,F.Session" /l*v "C:\Windows\Temp\DevolutionsAgent_install.log"
```

{% hint style="warning" %}
Without `F.Updater`, Devolutions Agent cannot update itself. Updates must then be deployed with your own tooling.
{% endhint %}

{% hint style="info" %}
Do not add `F.Tunnel` or `F.PsuAgent` to `ADDLOCAL` without their required properties. Otherwise, the silent installation fails.
{% endhint %}

### Update an existing installation

When you install a newer version over an existing one without `ADDLOCAL`, the installer keeps the components that were already installed.

When you pass `ADDLOCAL`, the installer uses your list instead of the previous one. The same command can therefore be used for new installations and for updates. For example, updating with `ADDLOCAL="F.Agent,F.Session"` removes the update module (`F.Updater`) if it was installed before.

{% hint style="success" %}
Always pass `ADDLOCAL` in your deployment package. This way, every machine ends up with the same components, whatever was installed on it before.
{% endhint %}

### Remove a component from an installed Devolutions Agent

To remove a component from an installed Devolutions Agent, run the MSI of the installed version. List the components you keep in `ADDLOCAL` and the ones you drop in `REMOVE`:

```
msiexec /i "DevolutionsAgent-2026.3.0-x64.msi" /qn /norestart ADDLOCAL="F.Agent,F.Session" REMOVE="F.Updater"
```

{% hint style="warning" %}
Do not use `REMOVE` on its own. For example, `REMOVE="F.Updater"` alone also turns off the RDP Extension. This only takes effect after the next service restart or reboot, so the problem is not visible right away.
{% endhint %}

## PowerShell deployment script

The following script can be used as is, or as the install command of a deployment tool. It installs or updates Devolutions Agent, checks the exit code, and reports which components are enabled.

```powershell
# Deploy-DevolutionsAgent.ps1
# Installs or updates Devolutions Agent silently with the selected components.
# Run as administrator (or as SYSTEM through your deployment tool).

$msi      = "\\fileserver\share\DevolutionsAgent-2026.3.0-x64.msi"
$features = "F.Agent,F.Updater,F.Session"   # Agent service + update module + RDP Extension
$log      = "C:\Windows\Temp\DevolutionsAgent_install.log"

$arguments = "/i `"$msi`" /qn /norestart ADDLOCAL=`"$features`" /l*v `"$log`""
$process = Start-Process -FilePath "msiexec.exe" -ArgumentList $arguments -Wait -PassThru

if ($process.ExitCode -notin 0, 1641, 3010) {
    Write-Error "Devolutions Agent installation failed (exit code $($process.ExitCode)). See $log"
    exit $process.ExitCode
}

# Verify which components are enabled
$config = Get-Content "C:\ProgramData\Devolutions\Agent\agent.json" -Raw | ConvertFrom-Json
Write-Output "Service status          : $((Get-Service DevolutionsAgent).Status)"
Write-Output "RDP Extension enabled   : $($config.Session.Enabled)"
Write-Output "Update module enabled   : $($config.Updater.Enabled)"

exit $process.ExitCode
```

To deploy to several machines from a management workstation with PowerShell remoting enabled:

```powershell
$computers = Get-Content "C:\Deploy\computers.txt"
$msiShare  = "\\fileserver\share\DevolutionsAgent-2026.3.0-x64.msi"

Invoke-Command -ComputerName $computers -ArgumentList $msiShare -ScriptBlock {
    param($source)
    $local = "C:\Windows\Temp\DevolutionsAgent.msi"
    Copy-Item $source $local -Force
    $arguments = "/i `"$local`" /qn /norestart ADDLOCAL=`"F.Agent,F.Updater,F.Session`" /l*v C:\Windows\Temp\DevolutionsAgent_install.log"
    $p = Start-Process msiexec.exe -ArgumentList $arguments -Wait -PassThru
    [pscustomobject]@{ Computer = $env:COMPUTERNAME; ExitCode = $p.ExitCode }
}
```

{% hint style="info" %}
Copying from a network share inside a remote session can fail because of credential delegation (double hop). If that happens, copy the MSI to the target machines first, or let your deployment tool distribute it.
{% endhint %}

## Exit codes

| EXIT CODE | MEANING                                                                                                                                                                                                   |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `0`       | Installation succeeded.                                                                                                                                                                                   |
| `3010`    | Installation succeeded. A restart is required to complete it.                                                                                                                                             |
| `1641`    | Installation succeeded and a restart was started.                                                                                                                                                         |
| `1603`    | Fatal error during installation. Check the verbose log. This is also the code returned when a newer version is already installed (the log shows "A newer version of this product is already installed."). |
| `1618`    | Another installation is in progress. Retry later.                                                                                                                                                         |

## Verify the installation

* Check that the Devolutions Agent service is running with `Get-Service DevolutionsAgent`.
* Open `C:\ProgramData\Devolutions\Agent\agent.json`. The installer writes an `Enabled` value for each optional component. For example, with `ADDLOCAL="F.Agent,F.Session"`, `Session` shows `"Enabled": true` and `Updater` shows `"Enabled": false`.
* If something does not look right, open the verbose installation log (the `/l*v` file). It lists every feature and its install state.

## After the installation

No restart or sign-out is needed after installing Devolutions Agent.

Communication between Remote Desktop Manager and Devolutions Agent goes through the RDP connection, and this channel is set up when the RDP connection is established. If Devolutions Agent is installed while an RDP session to that machine is open, close that RDP session and open it again. New RDP connections made after the installation work right away.

{% hint style="warning" %}
Jump sessions, remote logoff, and remote execution need the RDP Extension (`F.Session`). Include it in `ADDLOCAL` on every machine where these features are used.
{% endhint %}

## Silent uninstallation

To uninstall Devolutions Agent silently, look up its product code and run `msiexec /x`:

```powershell
$app = Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*" |
    Where-Object { $_.DisplayName -eq "Devolutions Agent" }

$arguments = "/x $($app.PSChildName) /qn /norestart /l*v C:\Windows\Temp\DevolutionsAgent_uninstall.log"
Start-Process msiexec.exe -ArgumentList $arguments -Wait
```

{% hint style="info" %}
Uninstalling does not remove `C:\ProgramData\Devolutions\Agent` (including `agent.json`) or the registry key `HKLM\SOFTWARE\Devolutions\Agent`. Delete them manually if you need a clean state, for example before a fresh reinstallation.
{% endhint %}

## See also

* [Jump host](/agent/jump-host.md)
* [Devolutions Blog – Replacing RDM Agent with Devolutions Agent](https://devolutions.net/blog/replacing-rdm-agent-with-devolutions-agent/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.devolutions.net/agent/deploy-devolutions-agent-silently.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
