You are not logged in.
Bonjour,
Je voudrais faire un import automatique, sans avoir à y penser des utilisateurs créés dans mon LDAP sur GLPI.
Cependant, en suivant le tuto suivant (cf WIKI) :
Le script a besoin d'arguments pour fonctionner (le server id et l'action qu’il doit exécuter). Le serveur ID, pour trouver notre ID, allez dans:
## CONFIGURATION =⇒ AUTENTIFICATION =⇒ ouvrez votre server LDAP
Votre ID se trouve dans l'adresse URL, pour nous 2 :
## http://192.X.X.X/glpi/front/setup.auth. … _ldap&ID=2
Pour l'action nous avons deux choix :
## 1 Pour Synchroniser
## 0 Pour importer.
Tache planifiée Windows
## Créez un fichier BAT et collez y les lignes :
REM Placer vous dans le dossier ou se trouve le script
REM Go to the folder where is the script.
cd “C:\Program Files\OCS Inventory NG\xampp\htdocs\glpi\scripts”
REM Exécuter php.exe avec le script
REM Run php.exe and launch script
“C:\Program Files\OCS Inventory NG\xampp\php\php.exe” ldap_mass_sync.php –server_id=2 action=0
Des zones d'ombres obscures perdures. Je souhaite donc savoir si des âmes charitables auraient :
1 - un script qui marche bien
2 - le contenu concret du fameux fichier .bat
3 - Un exemple de tâche planifiée qui marche pour Windows
Je suis conscient que c'est trop demandé mais croyez moi, avant de venir vous voir, j'ai bel et bien fait un tour chez notre ami à tous : GOOGLE mais sans succès.
D'avance, je vous remercie.
Offline
Bonjour
Voilà comment j'ai fait, sous linux et avec un annuaire Active Directory. Le script est situé dans le dossier scripts de GLPI.
Les comptes sont importés par petits lots pour éviter les ennuis liés au dépassement de 1000 comptes. Pour le moment, ça fonctionne.
Si tu as besoin d'aide pour convertir cela en .bat, fais la demande.
#!/bin/bash
# samaccountname commençant pa la lettre a à z ou 0 à 9
for a in a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9
do
samaccountname=$a*
echo Processing samaccountname=$samaccountname
/path/to/php -q -f ldap_mass_sync.php action=0 ldapservers_id=2 ldap_filter="(samaccountname=$samaccountname)"
/path/to/php -q -f ldap_mass_sync.php action=1 ldapservers_id=2 ldap_filter="(samaccountname=$samaccountname)"
done
Offline
Voilà ce que j'ai sur mon serveur Windows 2012:
Script "Script_GLPI_Liaison_AD.bat"
REM Placer vous dans le dossier ou se trouve le script
cd "C:\xampp\htdocs\glpi\scripts"
REM Exécuter php.exe avec le script
"C:\xampp\php\php.exe" ldap_mass_sync.php –server_id=1 action=2
Tâche planifiée:
GLPI 0.84.7-Operating system : Windows 2012 Server- XAMPP 1.7.7 - Apache/2.2.21MySQL-5.0.8-dev
Offline
@Erwan35
un petit truc qui peut rendre ton script un poil plus robuste :
en début de script batch je place toujours ces commandes :
@echo off
set curdir=%~dp0
la variable d'environnement "curdir" contiendra le chemin où se trouve ton script, avec l'antislash final, et ça fonctionne aussi si tu exécutes ton script depuis un partage réseau (peu probable pour ce cas précis, mais bon).
Offline
Bonjour,
Existe-t-il une possibilité d'importer seulement les comptes nouveaux et/ou les comptes qui ont été modifié dans Active Directory ?
Glpi 0.85.4
Offline
@yacine31 :
http://www.glpi-project.org/DOC/FR/glpi … _sync.html
php ldap_mass_sync.php action=2 ldapservers_id=1 before-days=1
avec un cron qui tourne toutes les 24 heures, ça limite la mise à jour aux utilisateurs modifiés depuis 1 jour.
attention, les autres utilisateurs seront considérés comme supprimés du LDAP : retirer les règles qui désactivent le compte GLPI si pas dans ldap
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
préprod : glpi10.0.15
Offline
Bonjour,
Je déterre ce message car je tente d'automatiser l'importation des utilisateurs.
J'y arrive en saisissant la commande directement sur mon serveur linux par contre ca ne fonctionne pas avec cron. Pour être honnête je découvre cron...
j'ai donc créé un script synchro_ldap.sh dans lequel j'ai ajouté la commande :
php ldap_mass_sync.php action=2 ldapservers_id=1
lorsque je fais ./synchro_ldap.sh, cela fonctionne.
Dans cron (crontab -e)
j'ai ajouté cette ligne
1 * * * * synchro_ldap.sh qui ne fonctionne pas (je suppose qu'il n'y a pas le chemin donc impossible de fonctionner)
1 * * * * /var/www/html/glpi/scripts/synchro_ldap.sh qui ne fonctionne pas non plus.
J'ai mis exprès une minute pour m'assurer que cela fonctionne.
Merci pour votre aide
Last edited by Trickybeans (2016-06-12 14:30:50)
Offline
bonjour,
1 * * * * /var/www/html/glpi/scripts/synchro_ldap.sh
votre commande ne correspond pas à 1 minute mais une fois par heure à hh:01
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
préprod : glpi10.0.15
Offline
Merci pour ce retour ais malgré cette erreur, la synchro ne se fait pas, mon utilisateur n'est pas importé.
Est-ce la bonne syntaxe concernant l'utilisation du script synchro_ldap ?
Offline
il vous manque peut être l'utilisateur dans la ligne de commande.
pour une synchro toutes les minutes ( c'est beaucoup...) j'aurais écrit ça :
*/1 * * * * root cd /var/www/glpi/scripts/ && php ldap_mass_sync.php -server_id=2 action=2
Trouver la panne avant de réparer...
GLPI10.0.10 (ubuntu 22.04 PHP8.1 Mariadb10.6 ) plugins : comportements 2.7.2 reports 1.16.0 formcreator 2.13.8, datainjection 2.13.4 fields 1.21.6
préprod : glpi10.0.15
Offline
Je déterre ce post pour avoir une petite précision.
J'ai utilisé le script suivant :
#!/bin/bash
# samaccountname commençant pa la lettre a à z ou 0 à 9
for a in a b c d e f g h i j k l m n o p q r s t u v w x y z 0 1 2 3 4 5 6 7 8 9;
do
samaccountname=$a*
echo Processing samaccountname=$samaccountname
cd /var/www/glpi-dev/scripts/
php -q -f ldap_mass_sync.php action=0 ldapservers_id=8 ldap_filter="(samaccountname=$samaccountname)"
cd /var/www/glpi-dev/scripts/
php -q -f ldap_mass_sync.php action=1 ldapservers_id=8 ldap_filter="(samaccountname=$samaccountname)"
done
Ma question est concernant la notion du filtre LDAP, lequel est réellement utilisé ?
J'ai dans la configuration de mon DC, le filtre suivant : (&(objectClass=person)(sn=*)(mail=*MonDomaineMail.*)(!(objectClass=computer))(!(userAccountControl:1.2.840.113556.1.4.803:=2)))
Du coup, est ce que ce filtre est malgré tout utilisé par le script cité ci-dessus ou ce contente-t-il d'utiliser "samaccountname=$samaccountname" pour importer les utilisateurs ?
Si c'est le cas, comment faire en sorte que mon filtre AD soit utilisé dans la boucle du script ?
Merci de votre aide
Plateforme : Linux...
Version GLPI : 9.5.6 (PROD) / 9.5.7 (TEST)
Plugins activés : Dashboard
Offline
Bonjour à tous
Je relance le sujet concernant ma précédente question, est ce que quelqu'un aurait l'info ?
Merci
Plateforme : Linux...
Version GLPI : 9.5.6 (PROD) / 9.5.7 (TEST)
Plugins activés : Dashboard
Offline
Erwan35
Bonjour,
Petite chose amical pour toi évite de posté des copies écran avec le nom de ton domaine véritable
tu as bien pensé a un endroit et tu fait l'impasse sur un autre.
merci de ton poste avec tes copie écran
a+
Virtual Box \ Ubuntu 20.4 \ GLPI 9.5.3
Offline