• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Deploiement agent FusionInventory 2.3.16 GPO sans être admin du pc
#1
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
  Reply
#2
Merci d'utiliser le script https://github.com/mips81/fusioninventor...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
  Reply
#3
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,
  Reply
#4
en GPO ordinateur dans le script de démarrage?
Co-leader, official developper
DCS official PARTNER: dcs.glpi@dcsit-group.com
  Reply
#5
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,
  Reply
#6
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.
  Reply
#7
Bonjour,

Dans votre script, quel chemin utilisez-vous pour l'installeur ? Celui proposé par défaut est :
Code:
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 :
Code:
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.4.4 - Fusioninventory for GLPI 9.4+1.0 - Fusioninventory Agent 2.5.1
  Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)