Topic: Deploiement agent FusionInventory 2.3.16 GPO sans être admin du pc

Bonjour,
Cela fait plusieurs jours que je parcours votre forum a la recherche d'infos précieuse..
J'essaye actuellement de mettre à jour notre infra GLPI, je souhaitait commencer par la mise à jour de l'agent FusionInventory (2.2-7 vers 2.2.16)
J'utilise le script vbs ci dessous qui fonctionne lorsque l'utilisateur est admin du poste et l'exécute manuellement, mais comme ils ne le sont pas, l'installation de fonctionne pas et me renvoi une erreur d'ouverture sur le fichier en écriture.C:\Program Files\.. due au manque de droit sur le poste.
La GPO est une GPO ordinateur avec le script au démarrage.
La GPO utilisant l'ancien script pour la version 2.2-7 fonctionne très bien.
(J'ai enlevé le /S volontairement afin de voir le comportement de l'installation et changer par discrétion le nom du serveur.)
Merci (au passage) au créateur de ce script.

Merci beaucoup pour l'aide que vous saurez m'apporter,
Cordialement,


'
' FusionInventory-Deploy-v23.vbs
'
' Use this script to automatically install, update & upgrade FusionInventory-Agent v.2.3
'
' You can run this script manually or use it as a startup script in a computer policy in an Active Directoy forest
'
' Just put the path to fusioninventory-agent_windows-x00_2.3.x.exe in the "FusionSetupExe" variable,
'     and set the other variables in the USER SETTINGS section
'
' Versions :
'     2014-09-03 : initial
'
' Author : Marc Caissial <contact@zenitique.fr>
'
' My thanks to the authors of the "fusioninventory.vbs" script on the documentation page
' and to Tomas Abad <tabad@sescam.jccm.es> for his Resources kit for massive and unattended tasks
' that I found on the FusionInventory Forge, and that I used in my upgrade part
'
'
Option Explicit
On Error Resume Next
Dim AvailableVersion, InstalledVersion23, InstalledVersion22, TagArg, ServerArg, InstallArg, StartMenuArg, FusionSetupLocation, WshShell, wshFSO, OSType, InstallCommand, InstalledKeyV23, InstalledKeyV22, UninstallKeyV22, UninstallCommandV22, strArg, IsVerbose
'
' USER SETTINGS
'
AvailableVersion = "2.3.16"
TagArg = ""
ServerArg="http://nomdemonserveur/plugins/fusioninventory/"
InstallArg = "/S /acceptlicense /add-firewall-exception /installtasks=Full /runnow /execmode=Service"
StartMenuArg = "/start-menu"
FusionSetupLocation = "\\monserveur\monpartage\GLPI\"
'
' DO NOT EDIT BELOW
'

' Process command line arguments
IsVerbose = FALSE
if wscript.Arguments.length >= 1 then
    for each strArg in wscript.Arguments
        if strArg = "/s" or strArg = "/S" then IsVerbose = False
        if strArg = "/m" or strArg = "/M" then StartMenuArg = "/start-menu"
        if strArg = "/H" or strArg = "/H" or strArg = "/?" then
            wscript.Echo "Usage : " & wscript.ScriptName & " [/S] [/D] " & vbCrLf & "    /S : Run in Silent Mode" & vbCrLf & "    /M : Install the ""FusionInventory Status"" menu item in the Start Menu" & vbCrLf & "    /H : Display this help message and quit"
            wscript.quit
        end if
    next
end if

set WshShell = Wscript.CreateObject("Wscript.shell")

' Get OS Type, 32 or 64 bit
OsType = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment\PROCESSOR_ARCHITECTURE")

' Extract installed version & uninstall command from registry
if (OsType = "x86") then
    InstalledKeyV23 = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FusionInventory-Agent\DisplayVersion"
    InstalledKeyV22 = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FusionInventory Agent\DisplayVersion"
    UninstallKeyV22 = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FusionInventory Agent\UninstallString"
else
    OsType = "x64"
    InstalledKeyV23 = "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\FusionInventory-Agent\DisplayVersion"
    InstalledKeyV22 = "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\FusionInventory Agent\DisplayVersion"
    UninstallKeyV22 = "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\FusionInventory Agent\UninstallString"
end if

' Install, update or upgrade FusionInventory-Agent

InstalledVersion23 = WshShell.RegRead(InstalledKeyV23)
InstalledVersion22 = WshShell.RegRead(InstalledKeyV22)
UninstallCommandV22 = """" & WshShell.RegRead(UninstallKeyV22) & """ /S"
InstallCommand = FusionSetupLocation & "\fusioninventory-agent_windows-" & OsType & "_" & AvailableVersion & ".exe " & TagArg & " /server='" & ServerArg & "' " & InstallArg & " " & StartMenuArg

' FusionInventory-Agent not yet installed, so install it
if InstalledVersion22 = "" and InstalledVersion23 = "" then
    if IsVerbose then Wscript.Echo "FusionInventory-Agent not installed, installing v. " & AvailableVersion & "..."
    'Wscript.Echo "Running command: " & InstallCommand
    WshShell.Run "CMD.EXE /C """ & InstallCommand & """",0,True

' Upgrade from version 2.2 to version 2.3
elseif InstalledVersion22 > "2.2" then
    if IsVerbose then Wscript.Echo "Upgrading FusionInventory-Agent v." & InstalledVersion22 & " to new v." & AvailableVersion & "..."
    'Uninstall version 2.2
    ' Stop the FusioInventory-Agent service
    WshShell.Run "CMD.EXE /C ""SC STOP FusionInventory-Agent""",0,True
    ' Wait 5 seconds
    WScript.Sleep (5 * 1000)
    ' Uninstal the agent
    WshShell.Run "CMD.EXE /C """ & UninstallcommandV22 & """",0,True
    ' Wait 30 seconds
    WScript.Sleep (30 * 1000)
    'Wscript.Echo "Running command: " & InstallCommand
    WshShell.Run "CMD.EXE /C """ & InstallCommand & """",0,True

' Update from version 2.3.x to version 2.3.y if y > x
elseif InstalledVersion23 < AvailableVersion then
    if IsVerbose then Wscript.Echo "Updating FusionInventory-Agent v." & InstalledVersion23 & " to new v." & AvailableVersion & "..."
    'Wscript.Echo "Running command: " & InstallCommand
    WshShell.Run "CMD.EXE /C """ & InstallCommand & """",0,True

' Nothing to do
else
    if IsVerbose then Wscript.Echo "Current FusionInventory-Agent v." & InstalledVersion23 & " is up to date."
end if

'Done
if IsVerbose then Wscript.Echo "End of FusionInventory-Agent v." & AvailableVersion & " deployment." & VbCrLf

2 (edited by mips 2015-07-16 16:35:14)

Re: Deploiement agent FusionInventory 2.3.16 GPO sans être admin du pc

Merci d'utiliser le script https://github.com/mips81/fusioninvento … oyment.vbs avec la GPO Machine Script de demarrage.

C'est fonctionnel depuis le debut de ce script sur 150 pc même hors site avec remonte des GPO par VPN.
@+

- EyesOfNetworks 3.0 (CentOS) & XenServer x64 6.1
- glpi 0.84.80
- fusioninventory-for-glpi- 0.84+3.2
- fusioninventory-agent_2.3.15

Re: Deploiement agent FusionInventory 2.3.16 GPO sans être admin du pc

Bonjour,
Merci pour cette réponse,
Je viens de tester en cliquant manuellement sur le vbs mais le souci est identique, l'application commence a s'installer et plante par manque de droits.
Via la GPO, il ne se passe rien sur le poste....

Je vous remercie,
Cordialement,

Re: Deploiement agent FusionInventory 2.3.16 GPO sans être admin du pc

en GPO ordinateur dans le script de démarrage?

Co-leader, official developper
DCS official PARTNER: dcs.glpi@dcsit-group.com

5 (edited by mariocrateur 2015-07-17 13:56:09)

Re: Deploiement agent FusionInventory 2.3.16 GPO sans être admin du pc

Au niveau GPO, en effet le script est placé dans la config ordinateur et au démarrage.
Normalement placé a cet endroit cela devrait éviter les problèmes de droits?
Car lorsque je lance manuellement mon script, cela me lance mon exe, je fais suivant suivant... les paramètres sont déjà défini et il plante par manque de droits. Je vous aurais bien mis une capture mais je ne sais pas comment les intégrer..

Est ce que je peux avoir un log de l'exécution de ma GPO afin de voir ce qui bloque?

Je vous remercie,

Re: Deploiement agent FusionInventory 2.3.16 GPO sans être admin du pc

Bonjour,

lorsqu'un script est lancé avec une gpo de démarrage, il se lance en tant qu'administrateur système, il n'y aura donc pas de problème de droit dans ce cas. Si tu le lance en manuel directement depuis le poste avec un utilisateur sans droits admin, c'est normal que tu ne parvienne pas a l'installer.

Re: Deploiement agent FusionInventory 2.3.16 GPO sans être admin du pc

Bonjour,

Dans votre script, quel chemin utilisez-vous pour l'installeur ? Celui proposé par défaut est :

SetupLocation = "https://github.com/tabad/fusioninventory-agent-windows-installer/releases/download/" & SetupVersion

Si vous utilisez cette syntaxe, vous pouvez vérifier depuis un navigateur que le téléchargement fonctionne.

Pour ne pas télécharger à chaque fois l'agent depuis internet, vous pouvez aussi le télécharger dans le sous-dossier "Fusioninventory" du dossier "NetLogon" du contrôleur de domaine, et utiliser une syntaxe du type :

SetupLocation = "\\SERVEUR\NETLOGON\FusionInventory"

Par ailleurs, pourquoi ne pas installer la version 2.3.21 plutôt que la 2.3.16 ?

Cordialement,
Marc

GLPI 9.2.2 - Fusioninventory for GLPI 9.2+1.0 - Fusioninventory Agent 2.4