OVH Cloud OVH Cloud

Liste des softs installés ... avec les détails ;-)

6 réponses
Avatar
Denis
Bonjour à tous !

Je cherche une solution (en VBS) la plus fiable possible qui me permettrait
de connaitre la liste des softs installés sur une machine: mais en plus,
c'est là que ça devient pervers, c'est que dans le cas du pack Office, il me
faudrait le détail ... !

Merci énormément d'avance à celui ou celle qui passera quelques instant à
m'orienter dans mes recherches ;-)

DNI

6 réponses

Avatar
scraper
Salut à Denis qui dans son post
news:40f8d37b$0$32378$
nous a écrit/répondu :

Bonjour à tous !

Je cherche une solution (en VBS) la plus fiable possible qui me
permettrait de connaitre la liste des softs installés sur une
machine: mais en plus, c'est là que ça devient pervers, c'est que
dans le cas du pack Office, il me faudrait le détail ... !

Merci énormément d'avance à celui ou celle qui passera quelques
instant à m'orienter dans mes recherches ;-)


ben déjà pour la liste des softs installés, regarde dans le Registre à
HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionUninstall
et explore ses sous clés ?
(tu dois pouvoir le faire avec WMI ...)

DNI


--

Attention ! Adresse mail invalide ...
Pour me contacter, cliquez sur le lien ci-dessous:
http://scraper.chez.tiscali.fr/contact.htm

scraper

Avatar
Jacques Barathon [MS]
Pour voir les applications connues par le système comme étant
désinstallables, tu peux énumérer l'entrée correspondante dans la base de
registre:

--- couper ici ---
sComputer = "."

WScript.echo InstalledApplications(sComputer)

Function InstalledApplications(node)
Const HKLM = &H80000002 'HKEY_LOCAL_MACHINE
Set oRegistry = _
GetObject("winmgmts:{impersonationLevel=impersonate}!" _
& node & "/root/default:StdRegProv")
sBaseKey = _
"SOFTWAREMicrosoftWindowsCurrentVersionUninstall"
iRC = oRegistry.EnumKey(HKLM, sBaseKey, arSubKeys)
For Each sKey In arSubKeys
iRC = oRegistry.GetStringValue( _
HKLM, sBaseKey & sKey, "DisplayName", sValue)
If iRC <> 0 Then
oRegistry.GetStringValue _
HKLM, sBaseKey & sKey, "QuietDisplayName", sValue
End If
If sValue <> "" Then
InstalledApplications = _
InstalledApplications & sValue & vbCrLf
End If
Next
End Function
--- couper ici ---

Par contre, cela ne te donnera pas le détail pour une suite applicative
comme Office car le pack Office ne déclare pas chaque application comme
désinstallable séparément, il faut pour cela passer par le programme de
désinstallation général d'Office.

Une autre approche beaucoup plus basique consiste à énumérer les répertoires
sous %Program File%, ce qui devrait te remonter les applications qui ont eu
le bon réflexe de s'y mettre mais incluera toute application qui aurait
laissé des traces après sa désinstallation ou après une réinstallation du
système.

D'une manière générale, en dehors de la première approche (liste des applis
désinstallables), tu peux soupçonner tout fichier exécutable présent sur ton
disque dur d'être une application en tant que telle...

Jacques

"Denis" wrote in message
news:40f8d37b$0$32378$
Bonjour à tous !

Je cherche une solution (en VBS) la plus fiable possible qui me
permettrait
de connaitre la liste des softs installés sur une machine: mais en plus,
c'est là que ça devient pervers, c'est que dans le cas du pack Office, il
me
faudrait le détail ... !

Merci énormément d'avance à celui ou celle qui passera quelques instant à
m'orienter dans mes recherches ;-)

DNI




Avatar
Jean-Luc Antoine
Un script fait à peu près cela et est disponible ici :
http://www.interclasse.com/scripts/SoftwareMeteringCLS.php


"Denis" a écrit dans le message de
news:40f8d37b$0$32378$
Bonjour à tous !

Je cherche une solution (en VBS) la plus fiable possible qui me
permettrait

de connaitre la liste des softs installés sur une machine: mais en plus,
c'est là que ça devient pervers, c'est que dans le cas du pack Office, il
me

faudrait le détail ... !

Merci énormément d'avance à celui ou celle qui passera quelques instant à
m'orienter dans mes recherches ;-)


Avatar
Denis
Merci à vous 3 pour votre aide !

En fait, j'avais déjà fait une aproche avec WMI, et ce que vous m'avez
proposé s'en rapproche grandement... sauf peut etre l'approche proposée par
Jean-Luc Antoine : je savais pas que l'on pouvais utiliser des classes en
VBS ... Au moins, ça m'aura permis d'apprendre ça ;-)

Néanmoins, je reste toujours confronté au probleme des applis installées
dans les PacksOffices ....
L'idée de parcourir l'arborescence m'a déjà traversé la tête, mais je trouve
ça assez "brouillon"... mais j'ai peur de n'avoir que cette solution ....

Si une idée vous viendrais entre temps, merci d'avance !!!

DNI.
Avatar
Alain CROS
Bonjour.

Ceci pour Excel, il faudra faire pareil avec Word, Access, ...

Dim ObjXL, Msg
On Error Resume Next
Set ObjXL = CreateObject("Excel.Application")
If Not ObjXL Is Nothing Then
Msg = "Application Excel Installée version : " & ObjXL.Version
End If
Set ObjXL = Nothing
MsgBox Msg

Alain CROS

"Denis" a écrit dans le message de news: 40f98883$0$29371$
Merci à vous 3 pour votre aide !

En fait, j'avais déjà fait une aproche avec WMI, et ce que vous m'avez
proposé s'en rapproche grandement... sauf peut etre l'approche proposée par
Jean-Luc Antoine : je savais pas que l'on pouvais utiliser des classes en
VBS ... Au moins, ça m'aura permis d'apprendre ça ;-)

Néanmoins, je reste toujours confronté au probleme des applis installées
dans les PacksOffices ....
L'idée de parcourir l'arborescence m'a déjà traversé la tête, mais je trouve
ça assez "brouillon"... mais j'ai peur de n'avoir que cette solution ....

Si une idée vous viendrais entre temps, merci d'avance !!!

DNI.




Avatar
Denis
Effectivement, cette solution a l'air pas mal du tout !
Si bien, que c'est la solution que je vais retenir :-)
Merci Alain !

DNI.

"Alain CROS" a écrit dans le message de
news:
Bonjour.

Ceci pour Excel, il faudra faire pareil avec Word, Access, ...

Dim ObjXL, Msg
On Error Resume Next
Set ObjXL = CreateObject("Excel.Application")
If Not ObjXL Is Nothing Then
Msg = "Application Excel Installée version : " & ObjXL.Version
End If
Set ObjXL = Nothing
MsgBox Msg

Alain CROS