Liste des logiciels installés (par VBS) [Résolu]

Messages postés
97
Date d'inscription
lundi 26 novembre 2001
Dernière intervention
24 février 2012
- - Dernière réponse : cs_glad
Messages postés
97
Date d'inscription
lundi 26 novembre 2001
Dernière intervention
24 février 2012
- 30 sept. 2010 à 13:10
Bonjour,

Je suis un peu perplexe, je viens de m'apercevoir que certains logiciels ne "remontaient" pas ds WMI via le script suivant :

    
Set WMI_ObjProps = WMI_Obj.ExecQuery("SELECT * FROM Win32_Product", , 48)
    For Each ObjClsItem In WMI_ObjProps
    WScript.echo ObjClsItem.name + "/"+ ObjClsItem.description + "/"+ ObjClsItem.caption  + "/"+ ObjClsItem.installlocation
    Next


C'est le cas par exemple de mozilla firefox.

J'ai écrit une suite de logiciel pour gérer le parc logiciel de manière automatisée et s'il me manque la moitié des logiciels, ça va pas le faire

Avez-vous des idées d'où ça peut provenir ?
Pour info, je suis utilisateur d'un domaine.

A+
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
5622
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 décembre 2018
3
Merci
Bonjour,
Essayez cela:

Set oShell = CreateObject("wscript.Shell")
Set env = oShell.environment("Process")
strComputer = env.Item("Computername")
Const HKEY_LOCAL_MACHINE = &H80000002
Const UnInstPath = "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\" &_
".\root\default:StdRegProv")
oReg.EnumKey HKEY_LOCAL_MACHINE, UnInstPath, arrSubKeys
software = "*******************************" & Now & "****************************" & vbCrLf
software = software & "*******************************Logiciels installés********************************" & vbCrLf
For Each subkey In arrSubKeys
        'MsgBox subkey
        If Left (subkey, 1) <> "{" Then
                software = software & subkey & vbCrLf
        End If
Next
software = software & "*********************************************************" & vbCrLf
 
Set fso = CreateObject("Scripting.FileSystemObject")
 
'Détermine si le fichier csv existe déjà ou s'il doit le créer
If Not fso.FileExists("inventaire " & strComputer & ".csv") Then
        set ts = fso.CreateTextFile("inventaire " & strComputer & ".csv", True)
Else
        set ts = fso.OpenTextFile("inventaire " & strComputer & ".csv", 2, True)
End If
 
ts.write software


Cela fonctionne chez moi
@+
Le Pivert

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 105 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_Le Pivert
Messages postés
97
Date d'inscription
lundi 26 novembre 2001
Dernière intervention
24 février 2012
0
Merci
j'ai pas de succès avec ma question...

Vraiment aucune idée ?
Commenter la réponse de cs_glad
Messages postés
97
Date d'inscription
lundi 26 novembre 2001
Dernière intervention
24 février 2012
0
Merci
Ca marche !

Merci ...
Au passage voici ton code un peu revu :

Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\" &_
".\root\default:StdRegProv")
oReg.EnumKey HKEY_LOCAL_MACHINE, UnInstPath, arrSubKeys

For Each subkey In arrSubKeys
        	WScript.echo subkey & vbCrLf
        	tmp=WshShell.RegRead ("HKLM" & UnInstPath & subkey & "\DisplayName")
        	If tmp="" Then tmp=SubKey
        	f.Write(";Appl;" & tmp)
        	tmp=""
        	tmp=WshShell.RegRead ("HKLM" & UnInstPath & subkey & "\InstallDate")
        	f.Write(";ApplInstallDate;" & tmp)
        	tmp=""
        	tmp=WshShell.RegRead ("HKLM" & UnInstPath & SubKey & "\DisplayVersion")
        	f.writeline(";ApplVersion;" & tmp )
Next



A++
Commenter la réponse de cs_glad

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.