Introduction

You’ve signed up for InventoryOS. You’ve got your organization set up and your enrollment key in hand. Now comes the real question: how do you get the agent onto hundreds—or thousands—of Windows machines without spending a week clicking through installers?

Manual installs don’t scale. If you’re managing a fleet of 500+ devices, you need a deployment strategy that runs silently, handles reboots, and doesn’t require users to do anything. In this guide, we cover three methods: Group Policy (GPO), SCCM/Intune, and a fallback PowerShell script for environments without enterprise management tools.

Prerequisites

Before you deploy, make sure you have:

If machines are behind a strict proxy or firewall, ensure they can reach the API. The agent uses standard HTTPS on port 443.

Method 1: Group Policy (GPO)

For most Windows-heavy environments, Group Policy is the go-to. It’s built into Active Directory, requires no extra licensing, and handles the MSI at machine startup so users never see the installer. Here’s the step-by-step.

Step 1: Create a network share for the MSI

Place the InventoryOS agent MSI on a file share that computers in your domain can read. For example:

\\contoso.com\NETLOGON\Software\InventoryOS\InventoryOS-Agent-1.2.3.msi

Ensure the share has Read access for Domain Computers (or Authenticated Users). The computer account needs to pull the MSI; users don’t need access.

Step 2: Open Group Policy Management Console

On a domain controller or a machine with the GPMC RSAT tools, open Group Policy Management (gpmc.msc). Drill down to the OU that contains the computers you want to target.

Step 3: Create and link a new GPO

Right-click the target OU → Create a GPO in this domain, and Link it here. Name it something like “InventoryOS Agent Deployment”.

Step 4: Add the MSI as a software installation

Edit the GPO. Navigate to:

Computer Configuration → Policies → Software Settings → Software installation

Right-click Software installationNewPackage. Browse to the UNC path of your MSI (e.g. \\contoso.com\NETLOGON\Software\InventoryOS\InventoryOS-Agent-1.2.3.msi).

Step 5: Configure as Assigned

Choose Assigned. This means the package will be installed automatically at the next boot (or policy refresh). Users don’t need to do anything.

Step 6: Pass the enrollment key via MSI properties

Right-click the package in Software installation → PropertiesDeployment tab → Advanced. In the Installation user interface options section, you can specify MSI properties. Add:

ENROLLMENT_KEY=your-enrollment-key-here

Replace your-enrollment-key-here with the actual key from your InventoryOS dashboard. The agent reads this at install time and auto-registers with your organization.

Step 7: Test on a single OU first

Before a broad rollout, link the GPO to a small test OU with a handful of machines. Force a policy update with gpupdate /force and reboot. Confirm agents show up in the InventoryOS dashboard within a few minutes.

Method 2: SCCM / Intune

If you’re using Microsoft Endpoint Configuration Manager (SCCM) or Intune, both support MSI deployment with install parameters.

SCCM

Create an Application, add the MSI as the deployment type, and target a device collection. In the Install Program field, you can pass the enrollment key:

msiexec /i "InventoryOS-Agent.msi" ENROLLMENT_KEY=your-key-here /quiet

Use your usual SCCM content distribution to push the MSI to DPs and deploy to collections. The same enrollment key parameter works for required deployments.

Intune

Add the agent as a Line of Business app. Upload the MSI and set the install command to include the enrollment key:

msiexec /i "InventoryOS-Agent.msi" ENROLLMENT_KEY=your-key-here /quiet

Assign to device groups. Intune will push the app to managed Windows devices; enrollment happens automatically after install.

Method 3: PowerShell script

For environments without GPO, SCCM, or Intune, you can use a PowerShell script that downloads the MSI from a share and runs msiexec silently. Push this via a login script, scheduled task, or RMM tool.

Example pattern (adapt paths and key to your environment):

# Deploy InventoryOS agent from network share
$sharePath = "\\contoso.com\NETLOGON\Software\InventoryOS"
$msiName = "InventoryOS-Agent-1.2.3.msi"
$enrollmentKey = "your-enrollment-key-here"

if (Test-Path $sharePath) {
    $msiPath = Join-Path $sharePath $msiName
    Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"$msiPath`" ENROLLMENT_KEY=$enrollmentKey /quiet" -Wait
}

Run the script in the system context (e.g. via a scheduled task or GPO startup script) so it installs per-machine. You can also wrap it in a check to avoid re-running if the agent is already installed.

Verifying deployment

Once deployment runs, agents should check in within minutes. In the InventoryOS dashboard:

  1. Go to the Agents (or Devices) page
  2. Filter by Last Seen in the last hour
  3. Confirm the device count matches your expectations

New machines appear as they boot and policy applies. If you deployed to 500 machines, expect a gradual ramp as they reboot or refresh policy; most should show up within 24 hours.

Troubleshooting common issues

Agent not appearing in the dashboard

MSI failing silently

Run the installer manually with verbose logging to capture the failure:

msiexec /i "InventoryOS-Agent.msi" ENROLLMENT_KEY=your-key /L*V "C:\Temp\inventoryos-install.log"

Open inventoryos-install.log and search for “return value 3” or other error codes. Common causes include missing prerequisites, permission issues, or an invalid enrollment key.

Conclusion

Deploying the InventoryOS agent at scale doesn’t have to be painful. For most Windows-heavy environments, Group Policy is the best fit: it’s built-in, requires no extra licenses, and handles machine-targeted MSI deployments cleanly. SCCM and Intune are excellent if you already use them. The PowerShell approach works when you don’t have GPO or EMM—push it via login scripts or your RMM of choice.

Test on a small OU or collection first. Once you confirm agents are checking in, broaden the rollout. Within a day or two, you should have full visibility across your fleet.