Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 58 additions & 31 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,53 +1,80 @@
# Data synchronization with Microsoft SCCM tool
# SCCM Plugin For GLPI

[![License](https://img.shields.io/github/license/pluginsGLPI/sccm.svg?&label=License)](https://github.com/pluginsGLPI/sccm/blob/develop/LICENSE)
[![Follow twitter](https://img.shields.io/twitter/follow/Teclib.svg?style=social&label=Twitter&style=flat-square)](https://twitter.com/teclib)
[![Telegram Group](https://img.shields.io/badge/Telegram-Group-blue.svg)](https://t.me/glpien)
[![Project Status: Active](http://www.repostatus.org/badges/latest/active.svg)](http://www.repostatus.org/#active)
[![GitHub release](https://img.shields.io/github/release/pluginsGLPI/sccm.svg)](https://github.com/pluginsGLPI/sccm/releases)
[![GitHub build](https://travis-ci.org/pluginsGLPI/sccm.svg?)](https://travis-ci.org/pluginsGLPI/sccm/)
[![License](https://img.shields.io/github/license/pluginsGLPI/sccm.svg?&label=License&style=for-the-badge)](https://github.com/pluginsGLPI/sccm/blob/main/LICENSE)
![Static Badge](https://img.shields.io/badge/Project_Status-Active-green?style=for-the-badge)
![GitHub Actions Status](https://img.shields.io/github/actions/workflow/status/pluginsGLPI/sccm/continuous-integration.yml?style=for-the-badge)
[![GitHub release](https://img.shields.io/github/release/pluginsGLPI/sccm.svg?&style=for-the-badge)](https://github.com/pluginsGLPI/sccm/releases)
![Github Download](https://img.shields.io/github/downloads/pluginsGLPI/sccm/total?style=for-the-badge)


![GLPISCCMPluginSchema](screenshots/sccm.png "sccm")
<p align="center">
<img width="126" height="126" src="https://raw.githubusercontent.com/pluginsGLPI/sccm/refs/heads/main/screenshots/logo.png">
</p>

Plugin to synchronize computers from SCCM (version 1802) to GLPI.
## 📌 Overview

### Workflow
The **SCCM** plugin allows you to automatically synchronize computers managed by Microsoft System Center Configuration Manager (SCCM) with your **GLPI** inventory.

* The plugin integrates two automatic actions : "SCCMCollect" et "SCCMPush".
* The automatic action "SCCMCollect" queries the SCCM server with MsSQL queries.
* This same action builds an XML file for each computer.
* The automatic action "SCCMPush" injects XML files into the GLPI native inventory over HTTP(s) (via cURL) to display computers in GLPI.
It operates in two phases:

1. **Collection**: Reading information from the SCCM database (via the `sqlsrv` PHP extension) and generating an XML file for each workstation.
2. **Injection**: Sending these XML files to the GLPI inventory (`front/inventory.php`) via `cURL`.

## ✅ Prerequisites


* PHP extension `sqlsrv` (Microsoft Drivers for PHP for SQL Server [installation guide](https://learn.microsoft.com/fr-fr/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver17))
* PHP extension `curl`


## ▶️ How It Works

The plugin automatically creates two GLPI cron tasks (Automatic Actions) during installation:

* **SCCMCollect** (Data collection and XML generation) — Scheduled by default between 04:00 and 05:00.
* **SCCMPush** (Sending XMLs to `front/inventory.php`) — Scheduled by default between 06:00 and 07:00.

These tasks can be managed in **Setup > Automatic actions**.

![GLPISCCMPluginSchema](screenshots/schema.png "GLPISCCMPluginSchema")

## 🧩 Synchronized Data

The SCCM collection retrieves the following data:

## Documentation
* System information (Machine, BIOS, CPU, RAM, Disks)
* IP / MAC addresses and network interfaces
* Installed software
* Users / Sessions
* Hardware status (LastHWScan)

We maintain a detailed documentation here -> [Documentation](https://glpi-plugins.readthedocs.io/en/latest/sccm/index.html)

## Contact
## 📚 Documentation

For notices about major changes and general discussion of sccm, subscribe to the [/r/glpi](https://www.reddit.com/r/glpi/) subreddit.
You can also chat with us via [@glpi on Telegram](https://t.me/glpien).
Full technical and user guide: [GLPI Plugins - SCCM](https://help.glpi-project.org/doc-plugins/plugins-glpi/sccm)

## Professional Services
## 💼 Professional Services

![GLPI Network](./glpi_network.png "GLPI network")
GLPI Network services are available through our [Partner Network](http://www.teclib-edition.com/en/partners/).
We offer specialized training, bug fixes with an editor subscription, contributions for new features, and much more.

The GLPI Network services are available through our [Partner's Network](http://www.teclib-edition.com/en/partners/). We provide special training, bug fixes with editor subscription, contributions for new features, and more.
Benefit from a personalized service experience, complete with exclusive advantages and opportunities.

Obtain a personalized service experience, associated with benefits and opportunities.
## 🤝 Contributing

## Contributing
* Bug reports and feature requests are welcome! Please open an issue or submit a PR to start a discussion
* Follow the [development guidelines](http://glpi-developer-documentation.readthedocs.io/en/latest/plugins/index.html).
* Refer to the [GitFlow](http://git-flow.readthedocs.io/) process for branching.
* Work on a new branch within your own fork.
* Open a Pull Request (PR) to be reviewed by a developer.

* Open a ticket for each bug/feature so it can be discussed
* Follow [development guidelines](http://glpi-developer-documentation.readthedocs.io/en/latest/plugins/index.html)
* Refer to [GitFlow](http://git-flow.readthedocs.io/) process for branching
* Work on a new branch on your own fork
* Open a PR that will be reviewed by a developer
## 🚀 About

## Copying
![Teclib Branding](screenshots/teclib_branding.png "Teclib Branding")

* **Code**: you can redistribute it and/or modify
[![X](https://img.shields.io/badge/X-%23000000.svg?style=flat&logo=X&logoColor=white)](https://x.com/GLPI_PROJECT)
[![Facebook](https://img.shields.io/badge/Facebook-%231877F2.svg?style=flat&logo=Facebook&logoColor=white)](https://www.facebook.com/glpiproject)
[![LinkedIn](https://img.shields.io/badge/linkedin-%230077B5.svg?style=flat&logo=linkedin&logoColor=white)](https://www.linkedin.com/company/teclib/)
[![Reddit](https://img.shields.io/badge/Reddit-%23FF4500.svg?style=flat&logo=Reddit&logoColor=white)](https://www.reddit.com/r/glpi/)
[![Telegram](https://img.shields.io/badge/Telegram-2CA5E0?style=flat&logo=telegram&logoColor=white)](https://t.me/glpien)
[![YouTube](https://img.shields.io/badge/YouTube-%23FF0000.svg?style=flat&logo=YouTube&logoColor=white)](https://www.youtube.com/@glpi-network/featured)
6 changes: 3 additions & 3 deletions front/config.form.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
* You should have received a copy of the GNU General Public License
* along with SCCM. If not, see <http://www.gnu.org/licenses/>.
* -------------------------------------------------------------------------
* @author François Legastelois
* @copyright Copyright (C) 2014-2023 by SCCM plugin team.
* @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html
* @author Teclib
* @copyright Copyright (C) 2014-2026 by SCCM plugin team.
* @license GPLv3+ https://www.gnu.org/licenses/gpl-3.0.html
* @link https://github.com/pluginsGLPI/sccm
* -------------------------------------------------------------------------
*/
Expand Down
5 changes: 3 additions & 2 deletions hook.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@
* You should have received a copy of the GNU General Public License
* along with SCCM. If not, see <http://www.gnu.org/licenses/>.
* -------------------------------------------------------------------------
* @author François Legastelois
* @copyright Copyright (C) 2014-2023 by SCCM plugin team.
* @author Teclib
* @copyright Copyright (C) 2014-2026 by SCCM plugin team.
* @license GPLv3+ https://www.gnu.org/licenses/gpl-3.0.html
* @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html
* @link https://github.com/pluginsGLPI/sccm
* -------------------------------------------------------------------------
Expand Down
35 changes: 3 additions & 32 deletions inc/config.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,44 +22,15 @@
* You should have received a copy of the GNU General Public License
* along with SCCM. If not, see <http://www.gnu.org/licenses/>.
* -------------------------------------------------------------------------
* @author François Legastelois
* @copyright Copyright (C) 2014-2023 by SCCM plugin team.
* @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html
* @author Teclib
* @copyright Copyright (C) 2014-2026 by SCCM plugin team.
* @license GPLv3+ https://www.gnu.org/licenses/gpl-3.0.html
* @link https://github.com/pluginsGLPI/sccm
* -------------------------------------------------------------------------
*/

use Glpi\Application\View\TemplateRenderer;

/**
* -------------------------------------------------------------------------
* SCCM plugin for GLPI
* -------------------------------------------------------------------------
*
* LICENSE
*
* This file is part of SCCM.
*
* SCCM is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* SCCM is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with SCCM. If not, see <http://www.gnu.org/licenses/>.
* -------------------------------------------------------------------------
* @author François Legastelois
* @copyright Copyright (C) 2014-2023 by SCCM plugin team.
* @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html
* @link https://github.com/pluginsGLPI/sccm
* -------------------------------------------------------------------------
*/

class PluginSccmConfig extends CommonDBTM
{
private static $_instance;
Expand Down
6 changes: 3 additions & 3 deletions inc/menu.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
* You should have received a copy of the GNU General Public License
* along with SCCM. If not, see <http://www.gnu.org/licenses/>.
* -------------------------------------------------------------------------
* @author François Legastelois
* @copyright Copyright (C) 2014-2023 by SCCM plugin team.
* @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html
* @author Teclib
* @copyright Copyright (C) 2014-2026 by SCCM plugin team.
* @license GPLv3+ https://www.gnu.org/licenses/gpl-3.0.html
* @link https://github.com/pluginsGLPI/sccm
* -------------------------------------------------------------------------
*/
Expand Down
6 changes: 3 additions & 3 deletions inc/sccm.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
* You should have received a copy of the GNU General Public License
* along with SCCM. If not, see <http://www.gnu.org/licenses/>.
* -------------------------------------------------------------------------
* @author François Legastelois
* @copyright Copyright (C) 2014-2023 by SCCM plugin team.
* @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html
* @author Teclib
* @copyright Copyright (C) 2014-2026 by SCCM plugin team.
* @license GPLv3+ https://www.gnu.org/licenses/gpl-3.0.html
* @link https://github.com/pluginsGLPI/sccm
* -------------------------------------------------------------------------
*/
Expand Down
35 changes: 3 additions & 32 deletions inc/sccmdb.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,44 +22,15 @@
* You should have received a copy of the GNU General Public License
* along with SCCM. If not, see <http://www.gnu.org/licenses/>.
* -------------------------------------------------------------------------
* @author François Legastelois
* @copyright Copyright (C) 2014-2023 by SCCM plugin team.
* @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html
* @author Teclib
* @copyright Copyright (C) 2014-2026 by SCCM plugin team.
* @license GPLv3+ https://www.gnu.org/licenses/gpl-3.0.html
* @link https://github.com/pluginsGLPI/sccm
* -------------------------------------------------------------------------
*/

use Glpi\Exception\Http\BadRequestHttpException;

/**
* -------------------------------------------------------------------------
* SCCM plugin for GLPI
* -------------------------------------------------------------------------
*
* LICENSE
*
* This file is part of SCCM.
*
* SCCM is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* SCCM is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with SCCM. If not, see <http://www.gnu.org/licenses/>.
* -------------------------------------------------------------------------
* @author François Legastelois
* @copyright Copyright (C) 2014-2023 by SCCM plugin team.
* @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html
* @link https://github.com/pluginsGLPI/sccm
* -------------------------------------------------------------------------
*/

class PluginSccmSccmdb
{
public $dbconn;
Expand Down
7 changes: 3 additions & 4 deletions inc/sccmxml.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,13 @@
* You should have received a copy of the GNU General Public License
* along with SCCM. If not, see <http://www.gnu.org/licenses/>.
* -------------------------------------------------------------------------
* @author François Legastelois
* @copyright Copyright (C) 2014-2023 by SCCM plugin team.
* @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html
* @author Teclib
* @copyright Copyright (C) 2014-2026 by SCCM plugin team.
* @license GPLv3+ https://www.gnu.org/licenses/gpl-3.0.html
* @link https://github.com/pluginsGLPI/sccm
* -------------------------------------------------------------------------
*/


class PluginSccmSccmxml
{
public $device_id;
Expand Down
6 changes: 3 additions & 3 deletions rector.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,9 @@
* You should have received a copy of the GNU General Public License
* along with SCCM. If not, see <http://www.gnu.org/licenses/>.
* -------------------------------------------------------------------------
* @author François Legastelois
* @copyright Copyright (C) 2014-2023 by SCCM plugin team.
* @license GPLv3 https://www.gnu.org/licenses/gpl-3.0.html
* @author Teclib
* @copyright Copyright (C) 2014-2026 by SCCM plugin team.
* @license GPLv3+ https://www.gnu.org/licenses/gpl-3.0.html
* @link https://github.com/pluginsGLPI/sccm
* -------------------------------------------------------------------------
*/
Expand Down
69 changes: 37 additions & 32 deletions sccm.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,43 @@
<name>SCCM</name>
<key>sccm</key>
<state>stable</state>
<logo>https://raw.githubusercontent.com/TECLIB/sccm/master/screenshots/iconmonstr-database-10-icon-128.png</logo>
<logo>https://raw.githubusercontent.com/TECLIB/sccm/master/screenshots/logo.png</logo>
<description>
<short>
<fr>Synchronisation des données avec l'outil Microsoft SCCM</fr>
<en>Data synchronization with Microsoft SCCM</en>
</short>
<long>
<fr>Synchronisation des données avec l'outil Microsoft SCCM
<long>
<fr>
Ce plugin permet d'intégrer automatiquement les ordinateurs gérés par SCCM dans l'inventaire GLPI :

Plugin permettant de synchroniser les ordinateurs présents dans SCCM avec GLPI.
* Extraction des données SCCM via des requêtes MsSQL;
* Génération de fichiers XML au format standard GLPI;
* Injection automatisée dans l'inventaire natif (via cURL).

* Le plugin interroge le serveur SCCM au moyen de requêtes MsSQL ;
* il construit un XML au format GLPI ;
* et l'injecte directement dans l'inventaire natif GLPI en HTTP (via cURL).
Prérequis :
* Extension PHP cURL
* Extension PHP sqlsrv (Microsoft Drivers for PHP)
* Accès au serveur Microsoft System Center Configuration Manager (MSSQL)
</fr>
<en>
This plugin enables automated synchronization of SCCM-managed computers into your GLPI inventory:

* Queries the SCCM server using MsSQL requests;
* Generates inventory XML files in the native GLPI format;
* Direct injection into the GLPI inventory via cURL.

Pré-requis :

* PHP curl_init : http://php.net/manual/fr/function.curl-init.php
* PHP mssql_connect : http://php.net/manual/fr/function.mssql-connect.php
* Microsoft System Center Configuration Manager</fr>
<en>Data synchronization with Microsoft SCCM

Plugin to synchronize computers from SCCM to GLPI.

* The plugin ask the SCCM server with MsSQL queries ;
* it builds an XML file for each computer
* and injects it directly into the GLPI native inventory over HTTP(s) (via cURL).


Prerequisite :

* PHP curl_init : http://php.net/manual/en/function.curl-init.php
* PHP mssql_connect : http://php.net/manual/en/function.mssql-connect.php
* Microsoft System Center Configuration Manager</en>
</long>
Prerequisites:
* PHP cURL extension
* PHP sqlsrv extension (Microsoft Drivers for PHP)
* Access to Microsoft System Center Configuration Manager (MSSQL server)
</en>
</long>
</description>
<homepage>https://pluginsglpi.github.io/sccm/</homepage>
<homepage>https://github.com/pluginsGLPI/sccm/</homepage>
<download>https://github.com/pluginsGLPI/sccm/releases</download>
<issues>https://github.com/pluginsGLPI/sccm/issues</issues>
<readme>https://github.com/pluginsGLPI/sccm/blob/develop/README.md</readme>
<readme>https://github.com/pluginsGLPI/sccm/blob/main/README.md</readme>
<authors>
<author>TECLIB'</author>
</authors>
Expand Down Expand Up @@ -150,10 +146,17 @@ Prerequisite :
</version>
</versions>
<langs>
<lang>cs_CZ</lang>
<lang>en_GB</lang>
<lang>es_EC</lang>
<lang>fi_FI</lang>
<lang>fr_FR</lang>
<lang>hr_HR</lang>
<lang>it_IT</lang>
<lang>pt_PT</lang>
<lang>tr_TR</lang>
</langs>
<license>GPL v2+</license>
<license>GPLv3+</license>
<tags>
<fr>
<tag>inventaire</tag>
Expand All @@ -171,7 +174,9 @@ Prerequisite :
</en>
</tags>
<screenshots>
<screenshot>https://raw.githubusercontent.com/pluginsGLPI/sccm/develop/screenshots/schema.png</screenshot>
<screenshot>https://raw.githubusercontent.com/pluginsGLPI/sccm/develop/screenshots/sccm.png</screenshot>
<screenshot>https://raw.githubusercontent.com/pluginsGLPI/sccm/main/screenshots/schema.png</screenshot>
<screenshot>https://raw.githubusercontent.com/pluginsGLPI/sccm/main/screenshots/sccm.jpg</screenshot>
<screenshot>https://raw.githubusercontent.com/pluginsGLPI/sccm/main/screenshots/config.png</screenshot>
<screenshot>https://raw.githubusercontent.com/pluginsGLPI/sccm/main/screenshots/task.png</screenshot>
</screenshots>
</root>
Binary file removed screenshots/Config_SCCM.png
Binary file not shown.
Binary file removed screenshots/auto_task.png
Binary file not shown.
Binary file added screenshots/config.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
File renamed without changes
File renamed without changes
Binary file removed screenshots/sccm.png
Binary file not shown.
Binary file modified screenshots/schema.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/task.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added screenshots/teclib_branding.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading