GLPI and Microsoft SCCM inventory synchronization

Connect Microsoft System Center Configuration Manager to GLPI with the SCCM plugin, or choose GLPI Agent instead. This page covers the method, prerequisites, setup sequence, data mapping, security and failure points.

On this page

How the SCCM plugin brings SCCM computers into GLPI

A team that already runs System Center Configuration Manager for Windows device management and wants those computers in GLPI's asset inventory has one supported route: the GLPI SCCM plugin. The plugin adds two automatic actions. SCCMCollect queries the SCCM server with MsSQL queries and builds an XML file per computer in FusionInventory format, and SCCMPush injects those files into GLPI over HTTP or HTTPS. The plugin depends on the FusionInventory plugin for GLPI, so that dependency must be installed and kept compatible before any SCCM data flows.

This work applies only to self-hosted GLPI. The SCCM plugin is not available on GLPI Cloud, so a team using a hosted GLPI tenant cannot take this route and needs to plan a different inventory path or a self-hosted instance. Confirm this with the plugin's documentation and with your GLPI provider before you scope the project, because the answer determines whether the SCCM plugin is even an option.

Before you commit, confirm three things in your own environment: that your SCCM site runs version 1802 or later, that the Microsoft Drivers for PHP for SQL Server can be installed on the GLPI application server, and that the GLPI server can reach the SCCM database. The SCCM plugin documentation sets out these requirements in full. Treat the SCCMCollect account's read access to the SCCM database as a control to review with your database and security teams, since it is the link that exposes device data outside SCCM.

What the SCCM plugin needs before you start

The SCCM plugin depends on several components working together: a supported GLPI host, the FusionInventory plugin, a driver that lets PHP reach SQL Server, and a read path into the SCCM database. Check each one before you install anything, because a gap in any layer shows up later as empty or stale computer records.

FusionInventory plugin for GLPI

The SCCM plugin builds its output in FusionInventory format and relies on that plugin's data model to store what it receives. Install and activate FusionInventory on the GLPI instance first, and confirm the version you plan to run is compatible with your GLPI release. Also check that the team responsible for FusionInventory knows it is a dependency, since changes to it can break the SCCM data flow.

SCCM 1802 or later

The plugin documentation sets SCCM 1802 or later as a requirement. Confirm your site server and its database version before scoping the work, because an older branch means the queries the plugin expects may not match your schema. Record the exact build in the project file so the assumption can be checked during the design review.

Microsoft Drivers for PHP for SQL Server

SCCMCollect runs MsSQL queries from PHP, so the web server's PHP runtime needs the Microsoft driver for SQL Server installed and enabled. Verify the driver loads under the same PHP version and service account that GLPI uses, not only from a command line session. A missing driver usually appears as a failed automatic action rather than a clear install error.

Supported GLPI host stack

Self-hosted GLPI needs a PHP version and database that the installation docs currently support for your release. For GLPI 11.0 the docs list PHP 8.2 or later with MySQL 8.0 or MariaDB 10.6, and state that only MySQL and MariaDB are supported. Confirm the exact versions for your target release before you pick the host, since the requirements differ between GLPI branches.

Network path to the SCCM database

SCCMCollect opens a direct SQL connection from the GLPI server to the SCCM database, so firewall rules must allow that traffic on the SQL Server port your site uses. Map which host runs the query, which segment it crosses, and whether a database listener or replica is involved. Test the path with the same driver and credentials that the plugin will use, not with a generic client.

Read-only database account

Create a dedicated SQL login for the plugin and grant it only read access to the SCCM database objects the queries need. Avoid reusing an administrator account, since a compromised GLPI server would then hold rights over the site database. Confirm the exact object-level rights with the plugin documentation before you request them, because the required set depends on the plugin version.

Configuring the collect and push sequence

This sequence connects SCCM to GLPI in a fixed order: prerequisites first, then the SCCM connection, then SCCMCollect before SCCMPush. Each action runs manually once so you can check the output at every stage before the schedule takes over.

  1. Install and activate FusionInventory

    A GLPI administrator installs the FusionInventory plugin on the GLPI instance and activates it from the plugin list. The SCCM plugin depends on FusionInventory because SCCMCollect builds its XML files in the FusionInventory format. Done means FusionInventory shows as active and its pages load without errors for an administrator. After any GLPI update, check the plugin list again, because GLPI 11 suspends plugins when it detects a new version.

  2. Install the SQL Server driver for PHP

    A server administrator installs the Microsoft Drivers for PHP for SQL Server on the GLPI host, using the build that matches the PHP version and thread-safety mode in use. GLPI runs under the web server's PHP, so enable the extension there and confirm it loads in that context, not only from the command line. Done means a small test page or PHP check shows the SQL Server extension as loaded, and the GLPI host can reach the SCCM database server over the network.

  3. Enter the SCCM connection settings

    A GLPI administrator opens the SCCM plugin configuration and enters the connection details for the SCCM site database that the collect action will query. Confirm with your SCCM team that the SCCM version is 1802 or later and ask for a database account with read access limited to the inventory data the plugin needs. Done means the settings save, and any connection test the plugin offers succeeds from the GLPI host.

  4. Schedule SCCMCollect before SCCMPush

    In the GLPI automatic actions, a GLPI administrator sets SCCMCollect to run on a schedule. Collect must run before push because it creates the XML file for each computer, and push only sends what collect has already built. Agree the interval with your SCCM team, considering how often SCCM inventory changes and how much query load the SCCM database can carry. Done means SCCMCollect is listed as enabled with the chosen interval.

  5. Run SCCMCollect manually and inspect the XML

    Run SCCMCollect by hand from the automatic actions page and read its result. Check the output location for XML files, then confirm there is one file per computer returned by SCCM and that each file is in the FusionInventory format. Pick two or three computers you know are in SCCM and confirm their files exist. Done means the action reports success and the expected test computers each have a matching XML file.

  6. Schedule SCCMPush after a completed collect

    Schedule SCCMPush so it runs after SCCMCollect has finished, with enough spacing that the two never overlap. Push sends the XML files to GLPI over HTTP or HTTPS, so choose HTTPS for production and confirm with your network team that the GLPI host trusts the certificate for its own GLPI endpoint. Done means SCCMPush is enabled and its schedule follows a completed collect cycle.

  7. Run SCCMPush and verify test computers in GLPI

    Run SCCMPush manually, then search the GLPI computer list for the test computers from the collect check. Open one computer and compare its name, hardware and software details with the same device in SCCM. Review the action log for failed injections. Done means each test computer appears as a computer item with the expected data, and the log shows no failed pushes for them.

Choosing the route for your Windows estate

Some organizations keep Configuration Manager as the authoritative record of managed Windows devices, for example because software deployment, patching and compliance reporting already run from it. In this case the SCCM plugin reads from the site database and copies what SCCM knows into GLPI, so GLPI becomes a consumer of that data rather than the owner of it. The SQL connection is the critical dependency: the collect action queries the SCCM server with MsSQL queries, so the database account, network path and driver must stay healthy for as long as SCCM is authoritative.

  • SQL access: Plan a read-only database account scoped to the reporting views the plugin needs, and confirm this with your SCCM administrator and the plugin documentation.
  • FusionInventory dependency: The plugin depends on the FusionInventory plugin for GLPI, so its upgrade cycle becomes part of your GLPI upgrade plan.
  • Driver maintenance: The Microsoft Drivers for PHP for SQL Server must be kept compatible with your PHP version on every GLPI server.
  • Source conflicts: Decide which fields GLPI may overwrite and which it must leave to other agents, so two feeds do not fight over the same asset.
  • Ongoing work: Each SCCM upgrade, schema change or GLPI upgrade can break the collect step, so schedule checks after each change.

Before committing, confirm that your SCCM version meets the plugin's stated minimum and that your security team accepts a database connection from the GLPI host.

Which SCCM data lands in which GLPI fields

This table traces each kind of SCCM inventory from the source query through the per-computer FusionInventory file into GLPI computer, operating system, hardware and software records. Read each row as a path to check, since the final value depends on FusionInventory parsing and the SCCM data your site collects, so validate a sample of records against the SCCM console before go-live.

Data areaHow it reaches GLPIValidate before go-live
Computer name and serial numberQueried from the SCCM database by SCCMCollect, then written into the computer section of the FusionInventory fileCompare name, domain suffix and serial for sample machines against the SCCM console
Operating systemWritten to the operating system section and stored on the GLPI computer after FusionInventory parsingCompare version and build strings, since FusionInventory formatting can change their wording
Processor, memory and BIOSWritten to hardware sections and stored as GLPI component recordsConfirm core counts and memory totals, which depend on the SCCM hardware inventory enabled at your site
Disks and network adaptersMapped to storage and network components only when the source query returns themConfirm disks and MAC addresses appear, as virtual or filtered adapters may be absent
Installed softwareAdded as software and installation records, depending on the software query in the pluginCompare several titles and versions with the SCCM console, as the lists may not match exactly
Logged-on userMapped to the user on the computer when the source data includes oneConfirm the last user matches, because GLPI user matching depends on your authentication setup
Last inventory dateSet from the time of the collection or push run, which may differ from the SCCM client scan timeConfirm which timestamp GLPI shows and how it compares with SCCM client activity
Fields with no SCCM sourceLeft empty, or filled by GLPI rules or manual entryAgree who owns location, status and purchase data before the first sync runs

How collect and push move data between the systems

The SCCM plugin splits the work into two automatic actions. SCCMCollect runs MsSQL queries against the SCCM site database and writes one XML file per computer in FusionInventory format. SCCMPush then reads those files and injects them into GLPI over HTTP or HTTPS. The two actions are independent, so a collect run can succeed while the push fails, and the reverse is also possible. Plan for them as two separate points of failure, each with its own schedule, logs and alerting. Confirm the frequency of each action in your GLPI automatic actions configuration, because the two schedules determine how stale an asset record can become relative to what SCCM knows.

Failed runs leave different traces depending on where they fail. If SCCMCollect cannot reach the SQL Server, the most recent XML files stay in place and GLPI keeps showing the previous inventory, which can look current for a long time. If SCCMPush fails, files accumulate on the GLPI host until a later run injects them. Ask whether the plugin deletes or archives files after a successful push, how long failed files are kept, and who owns disk space on that host. Track the age of the newest file per computer and the count of unprocessed files, and check both after any change to the SQL account, certificates or the GLPI URL.

The data crosses two trust boundaries. The first is between the SCCM database and the host running SCCMCollect, where a SQL login with read access must be reachable from that host and the connection is governed by your SQL Server encryption settings. The second is between the GLPI host and the GLPI endpoint that receives the pushed files, where HTTPS with a certificate that GLPI and the SCCM-side host both trust is the setting to insist on. The XML files contain hardware and software details for every managed computer, so restrict who can read the directory where they are written and treat it as sensitive data. Confirm the exact transport and file location with the plugin documentation before you set up network rules, since these details can differ by plugin version.

Securing the SQL connection and the push channel

The SCCM plugin moves inventory data across three boundaries: from the SCCM site database to the GLPI host, through a staging directory of XML files, and into GLPI over HTTP or HTTPS. Each boundary needs its own control, and the settings below should be confirmed against your SCCM and GLPI versions before go-live.

Read-only SQL account scoped to the site database

The SCCMCollect action queries the SCCM server with MsSQL queries, so it needs a database login that can read inventory views and nothing more. Create a dedicated SQL login mapped to the site database with read permissions only, and avoid reusing a domain administrator or a broad service account. Confirm which views and tables the plugin reads in your SCCM version, and check that the account cannot write, drop or read other databases on the same instance. Review the grant after each SCCM upgrade, since the schema the plugin depends on can change.

Encrypted SQL transport

The connection from the GLPI host to SQL Server carries hardware and user data, so it should use TLS. Confirm that the Microsoft Drivers for PHP for SQL Server version you install supports encryption with your SQL Server version, and that the server certificate is trusted by the GLPI host. Do not disable certificate validation to get a connection working. If the plugin's connection settings do not expose an encryption option, record that gap and decide whether the SQL listener and the network path between the two hosts are sufficient compensating controls.

HTTPS for the push channel

The SCCMPush action injects generated XML files into GLPI over HTTP or HTTPS. Use HTTPS with a certificate issued by an internal or public CA that the sending host trusts, and keep plain HTTP off the path entirely. Restrict which hosts can reach the GLPI inventory endpoint with network rules, and confirm that the push credentials, if any, are not stored in plain text in shared locations. Check the GLPI URL configuration after any change of hostname or certificate, because a mismatch often fails silently.

Restricting plugin configuration rights

Anyone who can edit the SCCM plugin configuration in GLPI can change the SQL connection target, the push destination and the schedule of automatic actions. Limit plugin configuration to a small administrator profile, and confirm that the standard profiles used by helpdesk and technicians cannot open the setup page. Enable GLPI's logging for configuration changes where available, and review who holds administrator rights in the entities that receive SCCM data. Document the change owner for the SQL and push settings so a change request is required before any edit.

Protecting the XML staging directory

Between collection and push, the plugin writes one XML file per computer, and those files contain hostnames, serial numbers, installed software and user associations. Place the staging directory outside the web root, grant write access only to the service account that runs the collection and read access only to the push process, and remove inherited permissions for other users. Confirm the directory location and file cleanup behavior in your plugin version, and decide how long files may remain on disk, since stale files are a common leak.

Patching the GLPI host and its dependencies

The GLPI host runs the web server, PHP, the database client, the FusionInventory dependency and the SCCM plugin, so every layer adds to its exposure. Keep the operating system, PHP and the Microsoft driver on supported, patched releases, and check the GLPI version you run against the release notes before applying an update. Plugin compatibility is a common blocker for GLPI upgrades, so test the SCCM plugin on a staging copy first and keep a tested rollback that includes the configuration and key files.

Why SCCM sync fails and how to fix it

This table lists the failures most often seen when the GLPI SCCM plugin is set up, with the cause and fix for each. Read it top to bottom during a first setup or when a sync stops, and check the causes in order because several failures share the same symptom: no computers appear in GLPI.

FailureLikely causeFix
Plugin does not work at allThe FusionInventory plugin for GLPI is not installed or not active, and the SCCM plugin depends on itInstall and activate FusionInventory first, then confirm the SCCM plugin is active before enabling its automatic actions
PHP cannot reach SQL ServerMicrosoft Drivers for PHP for SQL Server are missing, or the driver version does not match the PHP version and thread-safety build in useInstall the driver build that matches the PHP version and web server runtime, then restart the web server and check the PHP extensions loaded
SQL connection or login errorsWrong SQL Server host, instance name, port, database name or service account, or the database is not reachable from the GLPI serverTest the connection from the GLPI server using the same account, confirm the SCCM site database name, and open the required network path and port
Unsupported SCCM versionThe SCCM site is older than version 1802, which is the minimum the plugin documentation listsConfirm the SCCM version in the console before troubleshooting further, and plan an SCCM upgrade if the site is older
Push fails with endpoint errorsThe SCCMPush action cannot reach the GLPI inventory endpoint over HTTP or HTTPS, often because of a wrong URL, a proxy, or a firewall ruleCheck the GLPI URL configured for the push, test reachability from the machine running cron, and confirm the web server accepts the inventory requests
Certificate errors on HTTPS pushThe GLPI certificate is self-signed, expired, or issued by an authority the GLPI host does not trustInstall a certificate the GLPI host trusts, including the internal certificate authority chain, and confirm the expiry date
Automatic actions never runThe GLPI cron task is not configured on the server, or the SCCMCollect and SCCMPush actions are not enabled in the automatic actions listConfigure the GLPI cron job on the host, enable both automatic actions, and review the task history after the next scheduled run
Collected files exist but no computers appearSCCMPush runs before SCCMCollect has produced files, or the push target rejects the filesRun SCCMCollect first, confirm the XML files are created, then run SCCMPush and check the GLPI logs for rejected items

Questions buyers ask before hiring help with SCCM sync

What drives the cost of an SCCM to GLPI sync project?

The cost follows the size and shape of your SCCM environment and how much of the plugin chain you must build yourself. The main drivers are the number of SCCM sites and managed computers the collect action will query, the SQL Server connection and driver work on the GLPI host, the FusionInventory plugin setup and its own configuration, the testing you need against real SCCM data, and the ongoing maintenance you want after go-live. One-time work covers the build and first validation. Recurring work covers plugin updates, GLPI version upgrades that touch the plugin chain, and checking that collection still matches your SCCM schema. Ask for a written, fixed-scope quote that lists each of these items separately, with the environments you expect to cover and the test data you will provide.

How long does an SCCM inventory sync take to set up?

The duration depends on your environment, so no fixed timeline applies here. The work moves faster when there is one SCCM site, a clean SQL Server read account, a GLPI instance that already runs and a FusionInventory setup that follows its documentation. It slows down with several SCCM sites, network paths that need firewall changes, database access that requires new approvals, or a large number of computers that must be checked for duplicates against existing GLPI records. Request a schedule in the written scope that shows the discovery, build, test and handover phases, and name the dependencies that could move each one.

Can our internal team build the SCCM sync without outside help?

Yes, a capable internal team can build it, provided it has the skills and access the work requires. The build touches four areas: the SQL Server connection from the GLPI host using Microsoft Drivers for PHP, the FusionInventory plugin dependency, the SCCMCollect and SCCMPush automatic actions, and the import results inside GLPI. Your team needs someone who can read the SCCM database schema, someone who runs the GLPI web server and PHP stack, and someone who can test the results against known computers. Many teams find the testing and the upgrade planning take more time than the first build. Outside help is most useful when the internal team lacks SQL or PHP driver experience, has no test window, or wants a documented handover.

What do we need to provide before the SCCM sync work starts?

You need to provide four things. First, read access to the SCCM site database or the query path the collect action will use, along with the list of sites in scope. Second, a test window on both the GLPI instance and the SCCM side, so the collect and push actions can run against a limited set of computers before a full run. Third, administrator rights on the GLPI host to install the Microsoft Drivers for PHP for SQL Server, enable the plugins and configure the automatic actions. Fourth, a named contact who can approve firewall changes between the SCCM server and GLPI over HTTP or HTTPS. Put these in the scope document so the quote reflects what is available on day one.

Does the SCCM plugin work on GLPI Cloud or only self-hosted GLPI?

The SCCM plugin is not available on GLPI Cloud, according to the plugin documentation. It needs a self-hosted GLPI instance where you can install the FusionInventory plugin, the Microsoft Drivers for PHP for SQL Server and the plugin itself, and where you can reach the SCCM database from the GLPI host. If your organization uses a managed GLPI service, confirm with the provider whether it allows custom PHP extensions and plugins before you plan the sync. The plugin documentation also lists SCCM 1802 or later as a requirement, so confirm your SCCM version before you start.

What data does the SCCM plugin bring into GLPI, and what should we check?

The SCCMCollect action queries the SCCM server with MsSQL queries and builds an XML file per computer in FusionInventory format. The SCCMPush action then injects those files into GLPI over HTTP or HTTPS. Engineers should check that hardware fields, operating system values, software lists and computer names arrive in the expected GLPI fields after each run. Compare a sample of computers against the SCCM console. Check for duplicate computer records, especially when GLPI already holds devices from another inventory source, and confirm that the automatic actions run on the schedule you set, with their logs reviewed after each run.

When is GLPI Agent a better choice than the SCCM plugin?

GLPI Agent is usually the better choice when you want inventory from each device directly rather than through SCCM, or when you are moving away from SCCM as the source of truth. According to the GLPI Agent documentation, the agent collects hardware and software inventory, runs on Windows, macOS and Linux, and is the successor of FusionInventory Agent. It removes the SQL Server driver and the SCCM database dependency from the GLPI host. Keep the SCCM plugin when SCCM is the system of record for your fleet, your processes depend on its data model, and a direct SQL read is approved. Many organizations decide with a short comparison of coverage, approval paths and the data each option must carry.

How do we keep the SCCM sync working after GLPI and SCCM upgrades?

Plan for upgrades from the start. Each GLPI major release can change plugin compatibility, and the update procedure requires backups of the database, files and configuration keys, followed by the console database update. Since GLPI 11.0, plugins are suspended after a new version is detected and must be reactivated after major updates, so the SCCM and FusionInventory plugins need a retest after every major move. SCCM changes its database schema over time, so the collect queries should be reviewed when you upgrade SCCM. Ask any provider for a written maintenance scope that covers version testing, query review, and how the work is billed, whether as a retainer or as a separate change request.

How DeployOpen scopes and delivers SCCM inventory sync

DeployOpen plans and implements GLPI and Microsoft SCCM inventory synchronization inside infrastructure you control, starting from a written scope. The work covers the SCCM plugin, its SQL Server and FusionInventory prerequisites, and the verification and handover that let your team run the sync after go-live.

How we scope

  • Confirm which SCCM site servers, databases and collections feed GLPI, and which computer attributes you need.
  • Check the SCCM version, the GLPI version and PHP and SQL Server driver prerequisites against your environment before work starts.
  • Agree scope, deliverables and timelines in writing, since most engagements are fixed-scope.

How we build

  • Install and configure the FusionInventory dependency and the SCCM plugin on your GLPI instance.
  • Set up the SCCMCollect and SCCMPush automatic actions with database access and HTTP or HTTPS transfer tested end to end.
  • Test sample computers and compare collected hardware and software fields in GLPI against SCCM records.

How we hand over

  • Document the configuration, service accounts, automatic action schedules and the data mapping used for each asset field.
  • Walk your team through troubleshooting for failed MsSQL queries, driver errors and rejected pushes.
  • Record a clear decision on whether the SCCM plugin or GLPI Agent should remain the long-term inventory route.

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer that covers GLPI and plugin changes.
  • Plan re-testing whenever GLPI, the FusionInventory plugin, SCCM or the SQL Server driver is upgraded.
  • Confirm with your team who owns the sync after handover, including monitoring of the automatic actions.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.