diff --git a/README.md b/README.md index f6fefa3..46d685e 100644 --- a/README.md +++ b/README.md @@ -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") +

+ +

-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) 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 -------------------------------------------------------------------------