Skip to main content

How to Upgrade OS Using Package Deployment?

Upgrade Windows OS on endpoints centrally using agent-based Package Management, no manual intervention required on target devices.

Motadata ServiceOps supports OS upgrades via Package Management using a ZIP package that contains the OS ISO file and the scripts provided by Motadata. The agent executes the upgrade silently on the endpoint, performs pre-deployment compatibility checks, runs the in-place upgrade, and validates the result post-deployment.

Example Used in This Guide

The steps and examples in this guide use a Windows 10 to Windows 11 upgrade as a reference. The overall procedure applies to any supported OS upgrade.

Before You Begin
  • OS Upgrade via Package Management is currently supported for Windows OS only.
  • Ensure the Windows Agent is version 8.7.405 or higher, the File Server is version 8.7.401 or higher, and ServiceOps is on the latest 8.7.4 release.
  • Ensure the device remains connected to a power source throughout the upgrade process.

Server Prerequisites

Before deploying OS upgrades via Package Management, the following server and infrastructure changes are required on the ServiceOps application server.

Application Server Configuration

Add the following properties to the application properties file at the path /opt/flotomate/main-server/config/application-custom.properties and restart the main server:

spring.servlet.multipart.max-file-size=10240MB
spring.servlet.multipart.max-request-size=10240MB

Nginx Configuration

Update two blocks in the Nginx configuration file:

  1. In the location /api/download block, add:

    proxy_buffering off;
  2. In the location /api/upload/bigdeliverable block, update:

    client_max_body_size 10G;
  3. Update /fileserver/api like this

    location /fileserver/api {
    proxy_pass http://localhost:6060/api;
    proxy_buffering off;
    proxy_max_temp_file_size 8192m;
    }
Server Restart Required

Restart the main server and nginx after updating the application properties file for the changes to take effect.

Prerequisite Compatibility Requirements

Before deploying the upgrade package, verify that each target endpoint meets the hardware and firmware requirements for the target OS.

Hardware & Firmware Requirements

RequirementMinimum Value
RAM4 GB or more
Disk Space64 GB free space
Processor1 GHz or faster, minimum 2 cores, 64-bit compatible
FirmwareUEFI with Secure Boot capability
TPMVersion 2.0 or above

Validation Commands

Run the following commands on target endpoints to confirm compatibility before deployment.

Check OS Version

winver

The result must indicate Windows 10. Devices already running Windows 11 must not be targeted.

Check RAM

Get-CimInstance Win32_ComputerSystem | Select TotalPhysicalMemory

Returned value must be ≥ 4 GB.

Check Disk Space

Get-PSDrive C

Available free space must be ≥ 64 GB.

Check Processor

Get-CimInstance Win32_Processor | Select Name, NumberOfCores, MaxClockSpeed

Result must show minimum 2 cores, clock speed ≥ 1 GHz, and a 64-bit compatible processor.

Check TPM Version

tpm.msc

TPM status must show TPM is ready for use with Specification Version 2.0 or above.

Check Secure Boot Status

Confirm-SecureBootUEFI

Result must return True. Secure Boot must be enabled.

Procedure

Step 1: Create a Package

  1. Navigate to Admin > Patch Management > Packages and click Add Package.

Add Package

  1. Enter the package details:
    • Name: Enter a descriptive name (e.g., OS Upgrade - Windows 11).
    • Package Type: Select ZIP.
    • Upload File: Upload the ZIP file you created containing the OS ISO and the scripts provided by Motadata.

Package Details

Package Contents

Both the Upgrade.bat and Post.bat scripts are provided by the Motadata Support team. Contact Motadata Support to obtain these scripts before proceeding. The Post.bat file is to be uploaded separately in the Post Deployment section.

Required ZIP contents (Windows 11 upgrade example):

  • windows.iso — Windows 11 ISO file (obtained separately). The ISO file must be named exactly windows.iso.
  • Upgrade.bat — provided by the Motadata Support team; mounts the ISO and initiates the silent upgrade.
  1. Configure the commands:

    • Installation Command: Enter the installation script name provided in the package (e.g., Upgrade.bat for Windows 11).

      This triggers pre-deployment compatibility checks, ISO mounting, the silent in-place OS upgrade, and automatic execution under agent context.

    • Uninstallation Command: cmd /c exit 0

      This is a no-operation command. OS upgrade rollback is not supported through package uninstallation.

  2. Under the Post Deployment section, upload the Post.bat file (provided by the Motadata support team) and set the command to:

    Post.bat

    This file validates whether the OS upgrade process is completed successfully.

  3. Click Add to save the package.

Step 2: Create a Deployment Policy

  1. Navigate to Admin > Patch Management > Deployment Management > Deployment Policies and create a deployment policy to control how the deployment request executes the upgrade.

Deployment Policy

Step 3: Add Computers to Endpoint Scope

  1. Navigate to Admin > Patch Management > Deployment Management > Endpoints and Groups and add the target computers.

Endpoint Scope

Step 4: Create Remote Offices (Optional)

  1. If you want to distribute the upgrade package through remote offices, navigate to Admin > Patch Management > Deployment Management > Remote Offices and click Create Remote Office. Add the computers you want to include in the remote office scope.
note

This step is optional. Remote Offices are useful when deploying to endpoints across different network locations to optimize bandwidth usage. If not required, skip to Step 5.

Remote Offices

Step 5: Create Package Deployment

  1. Navigate to Package Management > Package Deployment and click Create Package Deployment.

Create Package Deployment

  1. Fill in the following details:
  • Name: Enter a name for this deployment.
  • Configuration Type: Select Install.
  • Package: Select the OS upgrade package created in Step 1.
  • Remote Offices: Select the remote office configured in Step 4 (optional).
  • Computers: Select the target endpoints.
  • Deployment Policy: Select the policy created in Step 2.
  1. Click Publish to start the deployment.

  2. Monitor the deployment progress on the Installation tab of the Deployment Request Details page. The result message will appear as either Success or Fail.

Post-Deployment Validation

With Post.bat, validation will run after the upgrade completes. Once all validations are successful, the deployment is marked as Success or the error message is displayed in the result.

Best Practices

  • Pilot before rolling out. Deploy to a small group of non-critical endpoints first. Validate the result before targeting the full fleet.
  • Schedule during off-hours. OS upgrades require a device reboot. Use the Deployment Policy to schedule the deployment outside business hours to avoid disrupting end users.
  • Pre-check server disk space. The system validates available disk space before the upload begins. Ensure the application server has sufficient free space to store the ZIP package (typically 5 GB or more) before initiating the upload.
  • Do not retarget already-upgraded devices. Devices already running the target OS must be excluded from the endpoint scope. Running the upgrade package on an already-upgraded device may produce unexpected results.
  • Verify agent connectivity before publishing. Confirm that all target endpoints have an active agent connection before publishing the deployment. Offline endpoints will remain in Yet to Receive status until the agent reconnects.
  • Ensure uninterrupted power during deployment. The end machine must not be restarted or lose power while the deployment is in progress.

Troubleshooting

Upload fails or times out
  • Confirm the application properties file has been updated with the correct max-file-size and max-request-size values and that the main server has been restarted.
  • Confirm the Nginx client_max_body_size is set to 10G in the location /api/upload/bigdeliverable block.
  • Check available disk space on the application server. The system will reject the upload if there is insufficient space.
  • Check all the configurations of backend properties as mentioned above.
Deployment status remains "Failed" after upgrade
  • Open the Deployment Request Details page, go to the Installation tab, and check the result for the error message.
  • Check the agent logs on the endpoint for errors during the post-deployment script execution.
  • If the upgrade did complete successfully on the device despite the Failed status, check the result.

FAQs

Can I roll back the upgrade after it completes?

A: No. OS upgrade rollback is not supported through Package Management. The uninstallation command is a no-operation placeholder. Plan and validate the upgrade thoroughly using a pilot deployment before targeting production endpoints.

Will existing applications be preserved after the upgrade?

A: This depends on the upgrade method used by the package. For Windows in-place upgrades (such as Windows 10 to Windows 11), installed applications, user files, and settings are preserved.

Can I target multiple endpoints in a single deployment?

A: Yes. In Step 5, the Computers field accepts multiple endpoints. You can also use the Remote Offices field to distribute the package across different network locations, which optimizes bandwidth by avoiding repeated downloads from the central server.

What happens if an endpoint is offline when the deployment is published?

A: The deployment status for that endpoint remains Yet to Receive. Once the agent reconnects, it will pick up the deployment and execute it automatically, provided the deployment policy's schedule window has not expired.