diff --git a/README.md b/README.md index f6fefa3..cc89c4f 100644 --- a/README.md +++ b/README.md @@ -1,53 +1,100 @@ -# 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/) +![GLPI Banner](https://user-images.githubusercontent.com/29282308/31666160-8ad74b1a-b34b-11e7-839b-043255af4f58.png) +[![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 Downloads](https://img.shields.io/github/downloads/pluginsGLPI/sccm/total?style=for-the-badge) -![GLPISCCMPluginSchema](screenshots/sccm.png "sccm") +

+ +

-Plugin to synchronize computers from SCCM (version 1802) to GLPI. -### Workflow +## 📌 Overview -* 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. +The **SCCM** plugin for GLPI allows automatic synchronization of computers managed by **Microsoft System Center Configuration Manager (SCCM)** with your GLPI inventory. +It works in **two main phases**: -![GLPISCCMPluginSchema](screenshots/schema.png "GLPISCCMPluginSchema") +1. **Collection**: Reads information from the SCCM database (via the `sqlsrv` PHP extension) and generates an XML file for each asset. +2. **Injection**: Sends these XML files to GLPI native inventory via `cURL`. -## Documentation +## ✅ Prerequisites -We maintain a detailed documentation here -> [Documentation](https://glpi-plugins.readthedocs.io/en/latest/sccm/index.html) +Before installing, ensure the following: -## Contact +- PHP extension `sqlsrv` + [Installation guide for Microsoft Drivers for PHP for SQL Server](https://learn.microsoft.com/fr-fr/sql/connect/php/installation-tutorial-linux-mac?view=sql-server-ver17) +- PHP extension `curl` -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). -## Professional Services +## ▶️ How It Works -![GLPI Network](./glpi_network.png "GLPI network") +The plugin automatically creates **two GLPI cron tasks** (Automatic Actions) during installation: -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. +- **SCCMCollect** – Collects data and generates XMLs (default schedule: 04:00–05:00) +- **SCCMPush** – Sends XMLs to GLPI (`front/inventory.php`) (default schedule: 06:00–07:00) -Obtain a personalized service experience, associated with benefits and opportunities. +You can manage these tasks under **Setup > Automatic actions**. -## Contributing +![GLPI SCCM Plugin Schema](screenshots/schema.png "GLPISCCMPluginSchema") -* 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 -## Copying +## 🧩 Synchronized Data -* **Code**: you can redistribute it and/or modify +The plugin collects the following information from SCCM: + +- System information: Machine, BIOS, CPU, RAM, Disks +- Network interfaces: IP / MAC addresses +- Installed software +- Users and sessions +- Hardware + + +## 📚 Documentation + +Full plugin documentation is available [here](https://help.glpi-project.org/doc-plugins/plugins-glpi/sccm). + + +## 💼 Professional Services + +GLPI professional services are offered through the [Partner Network](http://www.teclib-edition.com/en/partners/): + +- Specialized training +- Bug fixes with an editor subscription +- Contributions for new features +- Personalized support and consulting + +Experience a tailored service with exclusive advantages and opportunities. + + +## 🤝 Contributing + +We welcome contributions! Here's how you can help: + +- Report bugs or request features via [Issues](https://github.com/pluginsGLPI/sccm/issues) +- Follow the [development guidelines](http://glpi-developer-documentation.readthedocs.io/en/latest/plugins/index.html) +- Use [GitFlow](http://git-flow.readthedocs.io/) for branching +- Work on a new branch in your fork +- Submit a Pull Request (PR) for review + + +## 🚀 About + +![GLPI Banner](https://user-images.githubusercontent.com/29282308/31666160-8ad74b1a-b34b-11e7-839b-043255af4f58.png) + +![Teclib Banner](screenshots/teclib_branding.png) + + +## 📣 Social Media + +[![Facebook GLPI](https://img.shields.io/badge/Facebook-GLPI-1877F2.svg?style=for-the-badge)](https://www.facebook.com/glpiproject/) +[![X (formerly Twitter)](https://img.shields.io/badge/Twitter-GLPI%20Project-26A2FA.svg?style=for-the-badge)](https://x.com/GLPI_PROJECT) +[![YouTube GLPI](https://img.shields.io/badge/YouTube-GLPI-FF0033.svg?style=for-the-badge)](https://www.youtube.com/channel/UCoIMi7aKeIvQRxi7ggd6VNA) +[![Instagram GLPI](https://img.shields.io/badge/Instagram-GLPI-E1306C.svg?style=for-the-badge)](https://www.instagram.com/glpi_project/) +[![LinkedIn GLPI](https://img.shields.io/badge/LinkedIn-GLPI-0A66C2.svg?style=for-the-badge)](https://www.linkedin.com/products/teclib-glpi/) +[![Telegram GLPI](https://img.shields.io/badge/Telegram-GLPI-blue.svg?style=for-the-badge)](https://t.me/glpien) diff --git a/front/config.form.php b/front/config.form.php index 84cc52a..b06a230 100644 --- a/front/config.form.php +++ b/front/config.form.php @@ -22,9 +22,9 @@ * You should have received a copy of the GNU General Public License * along with SCCM. If not, see . * ------------------------------------------------------------------------- - * @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 * ------------------------------------------------------------------------- */ diff --git a/hook.php b/hook.php index 457ef3b..31bafd5 100644 --- a/hook.php +++ b/hook.php @@ -22,8 +22,9 @@ * You should have received a copy of the GNU General Public License * along with SCCM. If not, see . * ------------------------------------------------------------------------- - * @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 * ------------------------------------------------------------------------- diff --git a/inc/config.class.php b/inc/config.class.php index b4617ab..4d69ec7 100644 --- a/inc/config.class.php +++ b/inc/config.class.php @@ -22,44 +22,15 @@ * You should have received a copy of the GNU General Public License * along with SCCM. If not, see . * ------------------------------------------------------------------------- - * @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 . - * ------------------------------------------------------------------------- - * @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; diff --git a/inc/menu.class.php b/inc/menu.class.php index 032f7cf..66bf427 100644 --- a/inc/menu.class.php +++ b/inc/menu.class.php @@ -22,9 +22,9 @@ * You should have received a copy of the GNU General Public License * along with SCCM. If not, see . * ------------------------------------------------------------------------- - * @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 * ------------------------------------------------------------------------- */ diff --git a/inc/sccm.class.php b/inc/sccm.class.php index 8498dc4..7a501e9 100644 --- a/inc/sccm.class.php +++ b/inc/sccm.class.php @@ -22,9 +22,9 @@ * You should have received a copy of the GNU General Public License * along with SCCM. If not, see . * ------------------------------------------------------------------------- - * @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 * ------------------------------------------------------------------------- */ diff --git a/inc/sccmdb.class.php b/inc/sccmdb.class.php index 1648faa..0365c5a 100644 --- a/inc/sccmdb.class.php +++ b/inc/sccmdb.class.php @@ -22,44 +22,15 @@ * You should have received a copy of the GNU General Public License * along with SCCM. If not, see . * ------------------------------------------------------------------------- - * @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 . - * ------------------------------------------------------------------------- - * @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; diff --git a/inc/sccmxml.class.php b/inc/sccmxml.class.php index 2b9510e..309f899 100644 --- a/inc/sccmxml.class.php +++ b/inc/sccmxml.class.php @@ -22,14 +22,13 @@ * You should have received a copy of the GNU General Public License * along with SCCM. If not, see . * ------------------------------------------------------------------------- - * @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; diff --git a/rector.php b/rector.php index a58505d..e5cb47d 100644 --- a/rector.php +++ b/rector.php @@ -22,9 +22,9 @@ * You should have received a copy of the GNU General Public License * along with SCCM. If not, see . * ------------------------------------------------------------------------- - * @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 * ------------------------------------------------------------------------- */ diff --git a/sccm.xml b/sccm.xml index ea9f5bd..4295edd 100644 --- a/sccm.xml +++ b/sccm.xml @@ -2,47 +2,43 @@ SCCM sccm stable - https://raw.githubusercontent.com/TECLIB/sccm/master/screenshots/iconmonstr-database-10-icon-128.png + https://raw.githubusercontent.com/TECLIB/sccm/master/screenshots/logo.png Synchronisation des données avec l'outil Microsoft SCCM Data synchronization with Microsoft SCCM - - Synchronisation des données avec l'outil Microsoft SCCM + + +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) + + +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 - 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 - +Prerequisites: +* PHP cURL extension +* PHP sqlsrv extension (Microsoft Drivers for PHP) +* Access to Microsoft System Center Configuration Manager (MSSQL server) + + - https://pluginsglpi.github.io/sccm/ + https://github.com/pluginsGLPI/sccm/ https://github.com/pluginsGLPI/sccm/releases https://github.com/pluginsGLPI/sccm/issues - https://github.com/pluginsGLPI/sccm/blob/develop/README.md + https://github.com/pluginsGLPI/sccm/blob/main/README.md TECLIB' @@ -150,10 +146,17 @@ Prerequisite : + cs_CZ en_GB + es_EC + fi_FI fr_FR + hr_HR + it_IT + pt_PT + tr_TR - GPL v2+ + GPLv3+ inventaire @@ -171,7 +174,9 @@ Prerequisite : - https://raw.githubusercontent.com/pluginsGLPI/sccm/develop/screenshots/schema.png - https://raw.githubusercontent.com/pluginsGLPI/sccm/develop/screenshots/sccm.png + https://raw.githubusercontent.com/pluginsGLPI/sccm/main/screenshots/schema.png + https://raw.githubusercontent.com/pluginsGLPI/sccm/main/screenshots/sccm.jpg + https://raw.githubusercontent.com/pluginsGLPI/sccm/main/screenshots/config.png + https://raw.githubusercontent.com/pluginsGLPI/sccm/main/screenshots/task.png diff --git a/screenshots/Config_SCCM.png b/screenshots/Config_SCCM.png deleted file mode 100644 index 4da0438..0000000 Binary files a/screenshots/Config_SCCM.png and /dev/null differ diff --git a/screenshots/auto_task.png b/screenshots/auto_task.png deleted file mode 100644 index 07202a8..0000000 Binary files a/screenshots/auto_task.png and /dev/null differ diff --git a/screenshots/config.png b/screenshots/config.png new file mode 100644 index 0000000..a6013fa Binary files /dev/null and b/screenshots/config.png differ diff --git a/screenshots/iconmonstr-database-10-icon-128.png b/screenshots/logo.png similarity index 100% rename from screenshots/iconmonstr-database-10-icon-128.png rename to screenshots/logo.png diff --git a/screenshots/maxresdefault.jpg b/screenshots/sccm.jpg similarity index 100% rename from screenshots/maxresdefault.jpg rename to screenshots/sccm.jpg diff --git a/screenshots/sccm.png b/screenshots/sccm.png deleted file mode 100644 index 6452505..0000000 Binary files a/screenshots/sccm.png and /dev/null differ diff --git a/screenshots/schema.png b/screenshots/schema.png index 155a755..5a5bfd3 100644 Binary files a/screenshots/schema.png and b/screenshots/schema.png differ diff --git a/screenshots/task.png b/screenshots/task.png new file mode 100644 index 0000000..3f40e35 Binary files /dev/null and b/screenshots/task.png differ diff --git a/screenshots/teclib_branding.png b/screenshots/teclib_branding.png new file mode 100644 index 0000000..b1bea8d Binary files /dev/null and b/screenshots/teclib_branding.png differ diff --git a/setup.php b/setup.php index d50bde4..b89b014 100644 --- a/setup.php +++ b/setup.php @@ -22,9 +22,9 @@ * You should have received a copy of the GNU General Public License * along with SCCM. If not, see . * ------------------------------------------------------------------------- - * @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 * ------------------------------------------------------------------------- */ @@ -59,26 +59,26 @@ function plugin_init_sccm() function plugin_version_sccm() { return [ - 'name' => __s("SCCM", "sccm"), + 'name' => "SCCM", 'version' => PLUGIN_SCCM_VERSION, - 'author' => "TECLIB'", - 'license' => 'GPLv3', + 'author' => "Teclib", + 'license' => 'GPLv3+', 'homepage' => 'https://github.com/pluginsGLPI/sccm', 'requirements' => [ 'glpi' => [ 'min' => PLUGIN_SCCM_MIN_GLPI, 'max' => PLUGIN_SCCM_MAX_GLPI, ], - 'php' => [ - 'exts' => [ - 'sqlsrv' => [ - 'required' => true, - 'function' => 'sqlsrv_connect', - ], - 'curl' => [ - 'required' => true, - 'function' => 'curl_init', - ], + ], + 'php' => [ + 'exts' => [ + 'sqlsrv' => [ + 'required' => true, + 'function' => 'sqlsrv_connect', + ], + 'curl' => [ + 'required' => true, + 'function' => 'curl_init', ], ], ], diff --git a/templates/config.html.twig b/templates/config.html.twig index 4920e95..413ce44 100644 --- a/templates/config.html.twig +++ b/templates/config.html.twig @@ -20,9 +20,9 @@ # You should have received a copy of the GNU General Public License # along with SCCM. If not, see . # ------------------------------------------------------------------------- - # @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 # ------------------------------------------------------------------------- #} diff --git a/tools/HEADER b/tools/HEADER index 772cf13..bfe467c 100644 --- a/tools/HEADER +++ b/tools/HEADER @@ -19,8 +19,8 @@ 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 . ------------------------------------------------------------------------- -@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 -------------------------------------------------------------------------