> 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/unigetui/for-it-teams/organization/standard-workstations.md).

# Standardize workstations

Give every workstation the same set of apps with a shared bundle, then keep them up to date and backed up on a schedule.

Define your standard set of apps once, in a bundle file, and use it on every new or reinstalled computer. Then let scheduled maintenance keep each machine up to date and backed up. It's a lightweight way to standardize small teams, labs or classrooms without a full management platform.

## The approach

<table><thead><tr><th width="220">BUILDING BLOCK</th><th>WHAT IT GIVES YOU</th></tr></thead><tbody><tr><td><strong>A reference bundle</strong></td><td>One file listing the standard apps, with their installation options. Installs everything in one go.</td></tr><tr><td><strong>Scheduled maintenance</strong></td><td>Each computer checks for and installs updates on its own, at times you choose.</td></tr><tr><td><strong>Backups</strong></td><td>Each computer saves its app list, so you can rebuild it or compare it to the standard.</td></tr></tbody></table>

{% stepper %}
{% step %}

### Build the reference bundle

On a reference computer that has the right apps:

1. Go to ***Installed Packages***, select the standard apps, and click ***Add selection to bundle***.
2. Add anything missing from ***Discover Packages*** the same way.
3. In ***Package Bundles***, right-click a package and choose ***Install options*** to set a version, scope or install location if needed.
4. Click ***Save as*** and store the `.ubundle` file on a share your technicians can reach.

Details are in [Create a bundle of your apps](/unigetui/guides/new-computer/create-a-bundle.md).

{% hint style="info" %}
Prefer apps from a single, well-known source such as the `winget` source. Make sure the package managers used in the bundle are installed and enabled on the target computers.
{% endhint %}
{% endstep %}

{% step %}

### Install the bundle on each computer

1. [Deploy UniGetUI](/unigetui/for-it-teams/organization/deploy.md) on the computer.
2. In ***Package Bundles***, click ***Open*** and select the reference bundle.
3. Click ***Select all***, then ***Install selection***. Apps that are already installed are skipped.

To script it instead, use the command-line interface while UniGetUI is running:

```powershell
unigetui bundle import --path "\\server\share\standard.ubundle"
unigetui bundle install
```

See [Command-line interface](/unigetui/reference/cli.md) for the options, including headless sessions.

{% hint style="danger" %}
By default, custom arguments and pre/post commands saved in a bundle are **not** imported, and UniGetUI shows a ***Bundle security report***. Keep it that way unless you control the bundle file and who can write to the share. See [Lock down risky settings](/unigetui/for-it-teams/organization/restrict-settings.md).
{% endhint %}
{% endstep %}

{% step %}

### Keep every computer up to date

On each computer, go to ***Settings*** – ***Scheduled maintenance*** and turn on:

* ***Check for package updates***, for example ***Every day***.
* ***Install available updates***, with ***Install*** set to ***All available updates*** or ***Only packages marked for automatic updates*** if you only want to auto-update a trusted subset.

Set ***If the scheduled time is missed*** to ***Run whenever UniGetUI next starts*** so laptops that were off still catch up. To avoid brand-new releases, set a ***Minimum age for updates*** (see [Update safely](/unigetui/guides/updates/update-safely.md)).

{% hint style="warning" %}
Scheduled tasks only run while UniGetUI is running, even minimized to the notification area. Make sure it starts when users sign in. See [Scheduled updates don't run](/unigetui/help/troubleshooting/scheduled-updates-dont-run.md).
{% endhint %}

Configured it once? Export the settings on that computer and import them on the others with `UniGetUI.exe --import-settings <file>`.
{% endstep %}

{% step %}

### Back up each computer's app list

In ***Settings*** – ***Package backup***, turn on ***Periodically perform a local backup of the installed packages***, and use ***Change backup output directory*** to save it where you collect them. Schedule it in ***Scheduled maintenance*** – ***Local package backup***.

A backup is a bundle file: open it in ***Package Bundles*** to rebuild the computer, or compare it with your reference bundle. See [Back up your app list automatically](/unigetui/guides/new-computer/backup.md).
{% endstep %}
{% endstepper %}

## Keep the standard current

When the standard changes, update the reference bundle on the share and re-import it on the computers. Apps that are already installed are skipped, so only the new ones are installed.

Need users to install extra approved apps on their own, without admin rights? Add [Devolutions Agent](/unigetui/for-it-teams/organization/devolutions-agent.md).

## If it doesn't work

* Some apps from the bundle fail: [An update or installation fails](/unigetui/help/troubleshooting/update-or-install-fails.md).
* WinGet apps aren't installed or listed: [WinGet is missing or broken](/unigetui/help/troubleshooting/winget-missing-or-broken.md).
* Updates don't install overnight: [Scheduled updates don't run](/unigetui/help/troubleshooting/scheduled-updates-dont-run.md).


---

# 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/unigetui/for-it-teams/organization/standard-workstations.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.
