You are not logged in.
Bonjour,
Suite à ma migration vers GLPI 10, je me suis vu dans l'obligation de désinstaller FusionInventory pour utiliser GLPI-Agent.
Au paravent, le plugin fusionInventory était installer sur les postes de mon réseau via une GPO qui exécutait un script vbs. Tout fonctionnait parfaitement.
Je souhaite donc pouvoir poursuivre dans ce sens avec le nouvel agent.
J'ai récupérer un script ici : https://glpi-agent.readthedocs.io/en/la … index.html
celui-ci permet bien de procéder à la désinstallation de mon plugin FusionInventory sur tous mes postes mais ne lance pas l'installation de GLPI-Agent.
Quelqu'un aurait une idée et pourrais me dire ce qui fait que l'installation ne se fait pas ??
En vous remerciant.
Offline
Bonjour,
J'ai exactement le même souci, la désinstalation du plugin FusionInventory se déroule bien via le script mais rien ne se passe pour installer le GLPI-Agent.
Une idée ou quelqu'un à t'il déjà réussi à faire fonctionner le script?
Offline
Mettez le rapport d'erreur c'est plus facile pour trouver le problème
Et j'ai personnellement préféré un script batch pour faire l'installation et la désinstallation.
Last edited by deer (2022-05-19 09:22:04)
GLPI 10
GLPI Agent 1.2
Debian 11
Offline
Apparement probleme de droits de mon coté, pourtant mes utilisateurs sont admin de leur poste.
"Product: GLPI Agent 1.2 -- Error 1925. You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation."
Une idée pour définir un compte "administrateur" dans le script pour que l'install se fasse correctement ?
Offline
Apparement probleme de droits de mon coté, pourtant mes utilisateurs sont admin de leur poste.
"Product: GLPI Agent 1.2 -- Error 1925. You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation."
Une idée pour définir un compte "administrateur" dans le script pour que l'install se fasse correctement ?
Utilise tu le script fourni par l'équipe GLPI ou un script fait par toi? Si oui malheureusement je n'ai pas trop d'idée ne l'ayant pas utilisé
Personnellement ayant un parc avec les utilisateur non admin de leur postes j'ai contourné le soucis en utilisant un script qui se lance depuis ma machine ou la machine que je souhaite utiliser et déploie le script d'installation sur les postes souhaité avec les droit qui convienne que je fournis soit directement dans le script si je le souhaite soit par une saisie au moment de lancer le script c'est au choix de chacun à ce niveau la.
Je passe par du PowerShell pour faire cela.
Last edited by deer (2022-05-19 13:32:21)
GLPI 10
GLPI Agent 1.2
Debian 11
Offline
nico28400 wrote:Apparement probleme de droits de mon coté, pourtant mes utilisateurs sont admin de leur poste.
"Product: GLPI Agent 1.2 -- Error 1925. You do not have sufficient privileges to complete this installation for all users of the machine. Log on as administrator and then retry this installation."
Une idée pour définir un compte "administrateur" dans le script pour que l'install se fasse correctement ?
Utilise tu le script fourni par l'équipe GLPI ou un script fait par toi? Si oui malheureusement je n'ai pas trop d'idée ne l'ayant pas utilisé
Personnellement ayant un parc avec les utilisateur non admin de leur postes j'ai contourné le soucis en utilisant un script qui se lance depuis ma machine ou la machine que je souhaite utiliser et déploie le script d'installation sur les postes souhaité avec les droit qui convienne que je fournis soit directement dans le script si je le souhaite soit par une saisie au moment de lancer le script c'est au choix de chacun à ce niveau la.
Je passe par du PowerShell pour faire cela.
J'utilise le script fournis par GLPI.
Sur mes serveurs le script s'execute bien mais pas sur les postes clients.
Comment as tu fait ton script ?? Car moi j'aimerai qu'il se lance sur les postes avec les droits admin sans que le user n'est à intervenir, ni moi d'ailleurs !
Offline
J'utilise 2 Script PowerShell l'un qui sert a déployer l'agent sur les postes ( il permet aussi de désinstaller Fusion avant si il est présent)
Et un autre script qui fera diverse vérification sur chaque poste listé sur un .txt et exécute le script d'installation mentionné avant avec les droit admin via la commande Invoke-command soit par l'outils Psexec
Ayant utilisé Invoke-command et Psexec je préfère d'ailleurs Invoke-command qui est beaucoup plus simple d'utilisation
Last edited by deer (2022-05-19 13:40:20)
GLPI 10
GLPI Agent 1.2
Debian 11
Offline
ok donc si je comprends bien tu as un script qui fait l'install de l'agent et la désinstallation de Fusion
ce script est appelé par un second (qui te permet de faire des vérifs) puis de lancer l'install en admin !
Dis moi si je ne me trompe pas ??
Tu as moyen de partager tes scripts ?
Offline
ok donc si je comprends bien tu as un script qui fait l'install de l'agent et la désinstallation de Fusion
ce script est appelé par un second (qui te permet de faire des vérifs) puis de lancer l'install en admin !
Dis moi si je ne me trompe pas ??
Tu as moyen de partager tes scripts ?
Voila tu as tout compris
Enfait j'ai 3 script car j'utilise un batch pour la partie install mais je compte passé en PowerShell pour uniformisé tout ça , un Powershell principale qui vérifie et lance le script qui convient et un script de mise à jour de l'agent GLPI
Oui je peux tout à fait partager mes script je vais te préparer cela il faudra simplement faire des modifications car adapté à mon cas précis
GLPI 10
GLPI Agent 1.2
Debian 11
Offline
Super merci ..
J'adapterai par la suite pour mon environnement.
Offline
Voila les script
PowerShell Principale :
#####################################
###### Génération des logs ########
#####################################
#Déclaration variable pour création de nom de log
#Format du datetime jour-mois-annee-heure-minute-seconde
#Les - sont fait pour évité que la création de logs créer de multiple dossier à la place d'un fichier .log
$datetime=(Get-Date).ToString("dd-MM-yyyy-HH-mm-ss")
#Création d'un fichier Log en .log si l'ont préfere une autre extention simplement la changer en .txt ou autre
start-transcript -path "UnChemin\log-$datetime.log"
#####################################
######Declaration des variables######
#####################################
# Recupere la liste des postes ou déployer le ou les fichiers
$ListePoste=Get-Content "UnChemin\ListePosteTest.txt"
#Choix de la destination ou copier le fichier sur le poste Cible
$Destination = "C$\Windows\temp"
#Définition des variable de nom de fichier pour la supréssion
#$FileName = "GLPI-Agent-1.2-git98475ac7-x64.msi"
#$FileName2 = "GLPI-Agent-1.2-git98475ac7-x86.msi"
$FileName = "GLPI-Agent-1.3-gitd32af0ff-x64.msi"
$FileName2 = "GLPI-Agent-1.3-gitd32af0ff-x86.msi"
# Declaration du chemin ou se trouve le fichier a copier
#$SourceFileLocation="UnChemin\GLPI-Agent-1.2-git98475ac7-x64.msi"
#$SourceFileLocation2="UnChemin\GLPI-Agent-1.2-git98475ac7-x86.msi"
$SourceFileLocation="UnChemin\GLPI-Agent-1.3-gitd32af0ff-x64.msi"
$SourceFileLocation2="UnChemin\GLPI-Agent-1.3-gitd32af0ff-x86.msi"
#Variable du lieux où se trouve le script batch
$ScriptLocation="UnChemin\Install.bat"
#Version de l'agent qu'on install
$VersionInstall=$FileName.Substring(11,3)
$PWD=ConvertTo-SecureString "UnMotDePasse" -AsPlainText -Force
$creds = new-object System.Management.Automation.PSCredential ("domaine\admin", $PWD)
#############
###Debut#####
#############
#CD pour se placer sur le répertoire PSTools pour executer le PsExec sans erreur
#Peut être changé si on utilise Invoke-command ou si on inclus le chemin directement dans l'appel de la commande
cd unChemin\PSTools
#Copie des .msi sur le tmp des postes cible de la liste ListePoste.txt
#Execution du script d'install pour chaque ip de la liste ListePoste.txt avec PsExec
foreach ($_ in $ListePoste)
{
If ((Test-Path "\\$_\$Destination\$FileName") -eq $True)
{
echo "*************************"
echo "/!\ .msi déjà présent /!\"
}
else
{
echo "*************************"
echo "Copie du msi x64 sur $_"
Copy-Item $SourceFileLocation -Destination \\$_\$Destination
}
If ((Test-Path "\\$_\$Destination\$FileName2") -eq $True)
{
echo "*************************"
echo "/!\ .msi déjà présent /!\"
}
else
{
echo "*************************"
echo "Copie du msi x86 sur $_"
Copy-Item $SourceFileLocation2 -Destination \\$_\$Destination
}
echo "*************************"
#Vérification si GLPI-Agent est installé
If ((Test-Path "\\$_\c$\Program Files\GLPI-Agent\glpi-agent.bat") -eq $True)
{
#Variable pour obtenir le hostname via l'IP cible
$Nomcible= [System.Net.Dns]::GetHostEntry("$_").HostName
#Vérifie si l'agent est à jour par rapport à la version souhaitée
echo "Vérification si des mises à jour sont nécessaire pour GLPI-Agent sur le $_ En cours..."
#Execution du script powershell /!\ Ne surtout pas oublier de lancer le script avec les droit admin au risque que cette commande et les suivante
#Ne fonctionne pas correctement
Invoke-command -Credential $creds -FilePath unChemin\checkversion.ps1 -ComputerName $Nomcible -ArgumentList $VersionInstall
}
#Lance l'installation
else
{
echo "Lancement de l'installation en cours sur le $_"
#Supprimer le commentaire si l'execution du script se fait via le script .bat mis en local sur la machine hôte
#Mettre en commentaire si le cas cité n'est pas le bon
#.\PsExec \\$_ -accepteula -i -h -u domaine\admin -p "Unmotdepasse" -c $ScriptLocation
#Supprimer le commentaire de la ligne suivante si l'execution doit se faire sur un .bat sur un lecteur réseaux accéssible par les machines distantes
#Mettre en commentaire si le cas cité n'est pas le bon
.\PsExec \\$_ -accepteula -i -h -u domaine\admin -p "Unmotdepasse" /c $ScriptLocation
}
#Vérifie si l'agent GLPI est correctement installé sinon echo le message correspondant
If ((Test-Path "\\$_\c$\Program Files\GLPI-Agent\glpi-agent.bat") -eq $True)
{
echo "*************************"
echo "Installation de l'agent GLPI terminée sur le $_"
}
else
{
echo "*************************"
echo " /!\ Installation echouee ou incomplete sur le $_ /!\"
}
echo "*************************"
#Delete des .msi devenu inutile
echo "Delete du .msi x64"
remove-item \\$_\$Destination\$FileName
#Controle si le delete se fait correctement si non envoie le bon echo
If ((Test-Path "\\$_\$Destination\$FileName") -eq $True)
{
echo "*************************"
echo "/!\ .msi encore present /!\"
}
else
{
echo "*************************"
echo "Delete reussi"
}
echo "*************************"
echo "Delete du .msi x32"
remove-item \\$_\$Destination\$FileName2
#Controle si le delete se fait correctement si non envoie le bon echo
If ((Test-Path "\\$_\$Destination\$FileName2") -eq $True)
{
echo "*************************"
echo " /!\ .msi encore present /!\"
}
else
{
echo "*************************"
echo "Delete reussi"
}
echo "*************************"
}
cd ..
Stop-Transcript
Script de mise à jour GLPI agent :
echo "*************************"
Echo "Script PowerShell en cours d'execution..."
echo "*************************"
cd C:\Windows\Temp
#Récupération de la version de GLPI-Agent dans un fichier texte
Get-WmiObject -Class Win32_Product | where vendor -eq "Teclib'" |Select-Object -Property version > version.txt
#Tri des données reçus afin de ne garder que la version dans le tableau que sort la commande précédente
$version=Get-Content "C:\Windows\Temp\version.txt" | Select-Object -Index 3
#Suppréssion des espaces et saut de ligne
(gc C:\Windows\Temp\version.txt) | ? {$_.trim() -ne "" } | set-content C:\Windows\Temp\version.txt
#Version souhaité
$versionInstall = $args[0]
#Argument pour le .msi Pour x64
$MSIArguments = @(
"/i"
"C:\Windows\Temp\GLPI-Agent-1.3-gitd32af0ff-x64.msi"
"/quiet"
"ADD_FIREWALL_EXCEPTION=1"
"RUNNOW=1"
"SERVER='http://IPGLPI/glpi/front/inventory.php'"
"ADD_FIREWALL_EXCEPTION=1"
"DEBUG=1"
"RUNNOW=1"
"TASK_FREQUENCY=daily"
)
#Argument pour le .msi Pour x32
$MSIArguments2 = @(
"/i"
"C:\Windows\Temp\GLPI-Agent-1.3-gitd32af0ff-x32.msi"
"/quiet"
"ADD_FIREWALL_EXCEPTION=1"
"RUNNOW=1"
"SERVER='http://IPGLPI/glpi/front/inventory.php'"
"ADD_FIREWALL_EXCEPTION=1"
"DEBUG=1"
"RUNNOW=1"
"TASK_FREQUENCY=daily"
)
echo "La version souhaitée est $versionInstall"
echo "*************************"
#Si la version installée est plus veille que la version souhaité alors lancement de la procédure
if ($version -lt $versionInstall)
{
Echo "Version présente plus ancienne que la version souhaitée"
remove-item C:\Windows\Temp\version.txt
echo "*************************"
#Trouve le package du GLPI-Agent et le désinstalle
#Si plusieurs package contenait glpi dans le nom la recherche devrait se faire comme suit *glpi*agent*
#Echo "Supression de l'ancienne version..."
#echo "*************************"
#Get-Package *glpi* | Uninstall-Package -Force
Echo "Lancement installation de la nouvelle version..."
echo "*************************"
if ((Get-WmiObject win32_operatingsystem).osarchitecture -like "64*")
{
echo "Installation pour x64"
echo "*************************"
Start-Process "msiexec.exe" -ArgumentList $MSIArguments -Wait -NoNewWindow
echo "Mise à jour terminée"
echo "*************************"
}
else
{
echo "Installation pour x32"
echo "*************************"
Start-Process "msiexec.exe" -ArgumentList $MSIArguments2 -Wait -NoNewWindow
echo "Mise à jour terminée"
echo "*************************"
}
Echo "Fin de la procédure"
Exit
}
#Si la version est égale ou plus grande aucune actions
elseif($version -ge $versionInstall)
{
Echo "Version installée déjà la plus récente ou identique"
echo "*************************"
Echo "Fin de la procédure..."
remove-item C:\Windows\Temp\version.txt
Exit
}
script installation ( en batch peut facilement passer en powershell)
@echo off
echo ******************************
echo Script Batch en cours d'execution
echo ******************************
if exist "%PROGRAMFILES%\FusionInventory-Agent" (echo Desinstallation de Fusion Inventory) else ( echo Fusion Inventory non present)
::Vérifie si fusion inventory est installé si oui le désinstalle
if exist "%PROGRAMFILES%\FusionInventory-Agent" "%PROGRAMFILES%\FusionInventory-Agent\Uninstall.exe" /S
echo ******************************
:: Vérifie si l'agent GLPI est déjà installé si oui se termine sinon l'installe
if exist "%PROGRAMFILES%\GLPI-Agent\glpi-agent.bat" (echo /!\ Agent GLPI deja present ) else (
echo Installation Agent GLPI
echo ******************************
if "%PROCESSOR_ARCHITECTURE%"=="AMD64" msiexec /i C:\Windows\Temp\GLPI-Agent-1.2-git98475ac7-x64.msi /quiet ADD_FIREWALL_EXCEPTION=1 RUNNOW=1 SERVER='http://uneip/glpi/front/inventory.php' ADD_FIREWALL_EXCEPTION=1 DEBUG=1 RUNNOW=1 TASK_FREQUENCY=daily
if "%PROCESSOR_ARCHITECTURE%"=="x86" msiexec /i C:\Windows\Temp\GLPI-Agent-1.2-git98475ac7-x86.msi /quiet ADD_FIREWALL_EXCEPTION=1 RUNNOW=1 SERVER='http://uneip/glpi/front/inventory.php' ADD_FIREWALL_EXCEPTION=1 DEBUG=1 RUNNOW=1 TASK_FREQUENCY=daily
)
echo ******************************
echo Fin du Batch
echo ******************************
exit
GLPI 10
GLPI Agent 1.2
Debian 11
Offline
Merci je regarde ca ..
Offline
le problème vient de l'option /quiet qui ne fonctionne pas même avec un user admin... sans /quiet dans la commande, pas de souci pour l'installer depuis le vbs
@deer même sur ton script batch ça ne fonctionne pas..
Offline
le problème vient de l'option /quiet qui ne fonctionne pas même avec un user admin... sans /quiet dans la commande, pas de souci pour l'installer depuis le vbs
@deer même sur ton script batch ça ne fonctionne pas..
L'option /quiet fonctionne sans soucis je ne sais pas d'où tu tien l'information comme quoi elle ne fonctionne pas mais elle fonctionne belle et bien
GLPI 10
GLPI Agent 1.2
Debian 11
Offline
De mon coté j'ai effectué un petit test rapide : si je supprime l'option /quiet dans le fichier vbs, l'installe peux se faire par l'utilisateur sauf qu'il faut qu'il valide toute l'installation.
Avec l'option activé, l'install ne se fait pas ....
Il y a donc quelque chose qui "bloque" dans le vbs avec cette option.
@deer, je n'ai pas regardé la totalité des tes scripts, je regarde ca semaine prochaine au calme
Offline
De mon coté j'ai effectué un petit test rapide : si je supprime l'option /quiet dans le fichier vbs, l'installe peux se faire par l'utilisateur sauf qu'il faut qu'il valide toute l'installation.
Avec l'option activé, l'install ne se fait pas ....Il y a donc quelque chose qui "bloque" dans le vbs avec cette option.
@deer, je n'ai pas regardé la totalité des tes scripts, je regarde ca semaine prochaine au calme
Ce n'est pas forcement le /quiet de l'install qui pose soucis il faudrait regardé les log lors de l'exécution du .msi pour savoir d'où viens le problème
on peut par exemple dans la commande de l'appel du msi rajouter à la fin des arguments :
/l*v "C:\Windows\Temp\msi.log"
Afin d'avoir des détails sur ce qu'il se passe j'ai quand même de fort doute qu'une simple option d'installation silencieuse cause cela , le fait que cela marche en manuel ne veut pas forcement dire que c'est le /quiet qui est en cause pour moi.
Last edited by deer (2022-05-19 15:35:35)
GLPI 10
GLPI Agent 1.2
Debian 11
Offline
Bonjour
J'utilise glpiAgent.vbs en GPO de demarrage sur Ordinateur ...
pas de problème
Merci
GLPI 10.0.16/ Plugins GlpiInventory / AgentGlpi : 1.10 < Serveur Debian 64 Bits>
Offline
Bonjour,
De mon coté en GPO il me remonte toujours une erreur de droits !
Je suis donc obligé de demander à mes users de lancer le script manuellement mais pas en mode silencieux car sinon "erreur de droits".
Ils sont donc obligé de faire suivant, suivant et sélectionner le type d'installation.
Last edited by nico28400 (2022-05-25 10:54:34)
Offline
C'est une GPO sur la configuration Ordinateur au démarrage du poste ?
Merci
GLPI 10.0.16/ Plugins GlpiInventory / AgentGlpi : 1.10 < Serveur Debian 64 Bits>
Offline
Oui c'est une GPO sur mon domaine qui lance le script au démarrage de l'ordinateur
Offline
As tu essayer le script que j'ai noté il devrais sans aucun doute lever ses soucis la
GLPI 10
GLPI Agent 1.2
Debian 11
Offline
Bonjour,
Pareil ici le .vbs n'installe pas l'agent. (sauf si je retirer le /quiet)
Offline
ca fonctionne en appliquant ca dans le .vbs
If Not WScript.Arguments.Named.Exists("elevate") Then
CreateObject("Shell.Application").ShellExecute WScript.FullName _
, """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1
WScript.Quit
End If
gttps://forum.glpi-project.org/viewtopic.php?id=283264
Offline
ca fonctionne en appliquant ca dans le .vbs
If Not WScript.Arguments.Named.Exists("elevate") Then CreateObject("Shell.Application").ShellExecute WScript.FullName _ , """" & WScript.ScriptFullName & """ /elevate", "", "runas", 1 WScript.Quit End If
gttps://forum.glpi-project.org/viewtopic.php?id=283264
J'ai ajouté ce If dans mon script entre le Dim et le USER SETTINGS comme dit dans le thread initial mais ça ne fonctionne toujours pas pour moi..
Offline
Bonjour à tous,
je me permet de poser ma question ici vu qu'elle concerne le déploiement de l'agent GLPI sur le parc.
Mon souci actuellement est que je n'arrive pas à renseigner le TAG au moment de l'installation en ligne de commande. Pourtant, je le renseigne correctement dans ma commande :
"msiexec /i GLPI-Agent-1.4-x64.msi /quiet /TAG=POSTE_TRAVAIL SERVER='http://MON_SERVEUR_GLPI/front/inventory.php'"
Merci à la communauté
Offline