Après avoir trouvé une solution afin de lister les logiciels installés sur
une station en utilisant un truc du style "SELECT * FROM Win32_Product", ben
je me suis rendu compte, que je n'avais en résultat même pas la moitié des
logiciels qui sont réellement présents sur une station ...
D'ou ma question : quel moyen utiliser pour avoir ne serait ce que
l'équivalent de ce que l'on peut voir dans "Ajout/suppression de programme"
?
Il n'y a pas très longtemps une réponse à cette question a été donnée sur le forum US dédié au scripting serveur. La solution a été donnée en MSH mais elle devrait pouvoir être adaptée sans grand problème en vbscript ou autre:
L'idée de base est d'énumérer les clés sous HKLMSoftwareMicrosoftWindowsCurrentVersionUninstall, chacune de ces clés correspondant à une application enregistrée (équivalent de l'ajout/suppression de programmes). L'affichage du nom de chaque application s'appuie sur le contenu de la valeur DisplayName. D'autres infos peuvent être affichées, comme DisplayVersion, InstallDate ou InstallSource.
Jacques
"Denis" wrote in message news:
Bonsoir à tous !
Après avoir trouvé une solution afin de lister les logiciels installés sur une station en utilisant un truc du style "SELECT * FROM Win32_Product", ben je me suis rendu compte, que je n'avais en résultat même pas la moitié des logiciels qui sont réellement présents sur une station ...
D'ou ma question : quel moyen utiliser pour avoir ne serait ce que l'équivalent de ce que l'on peut voir dans "Ajout/suppression de programme" ?
Si vous avez une idée, j'en serais ravis !
Merci d'avance ;-)
DNI.
Il n'y a pas très longtemps une réponse à cette question a été donnée sur le
forum US dédié au scripting serveur. La solution a été donnée en MSH mais
elle devrait pouvoir être adaptée sans grand problème en vbscript ou autre:
L'idée de base est d'énumérer les clés sous
HKLMSoftwareMicrosoftWindowsCurrentVersionUninstall, chacune de ces
clés correspondant à une application enregistrée (équivalent de
l'ajout/suppression de programmes). L'affichage du nom de chaque application
s'appuie sur le contenu de la valeur DisplayName. D'autres infos peuvent
être affichées, comme DisplayVersion, InstallDate ou InstallSource.
Jacques
"Denis" <dninews@free.fr> wrote in message
news:eEm8IBL4FHA.252@TK2MSFTNGP15.phx.gbl...
Bonsoir à tous !
Après avoir trouvé une solution afin de lister les logiciels installés sur
une station en utilisant un truc du style "SELECT * FROM Win32_Product",
ben je me suis rendu compte, que je n'avais en résultat même pas la moitié
des logiciels qui sont réellement présents sur une station ...
D'ou ma question : quel moyen utiliser pour avoir ne serait ce que
l'équivalent de ce que l'on peut voir dans "Ajout/suppression de
programme" ?
Il n'y a pas très longtemps une réponse à cette question a été donnée sur le forum US dédié au scripting serveur. La solution a été donnée en MSH mais elle devrait pouvoir être adaptée sans grand problème en vbscript ou autre:
L'idée de base est d'énumérer les clés sous HKLMSoftwareMicrosoftWindowsCurrentVersionUninstall, chacune de ces clés correspondant à une application enregistrée (équivalent de l'ajout/suppression de programmes). L'affichage du nom de chaque application s'appuie sur le contenu de la valeur DisplayName. D'autres infos peuvent être affichées, comme DisplayVersion, InstallDate ou InstallSource.
Jacques
"Denis" wrote in message news:
Bonsoir à tous !
Après avoir trouvé une solution afin de lister les logiciels installés sur une station en utilisant un truc du style "SELECT * FROM Win32_Product", ben je me suis rendu compte, que je n'avais en résultat même pas la moitié des logiciels qui sont réellement présents sur une station ...
D'ou ma question : quel moyen utiliser pour avoir ne serait ce que l'équivalent de ce que l'on peut voir dans "Ajout/suppression de programme" ?
Si vous avez une idée, j'en serais ravis !
Merci d'avance ;-)
DNI.
Jacques Barathon [MS]
"Jacques Barathon [MS]" wrote in message news:
Il n'y a pas très longtemps une réponse à cette question a été donnée sur le forum US dédié au scripting serveur. La solution a été donnée en MSH mais elle devrait pouvoir être adaptée sans grand problème en vbscript ou autre:
Groumfff... J'aurais dû me douter que les lignes seraient tronquées. Pour ceux qui veulent tester, il y a deux lignes de commandes, chacune commençant par $Key ("$Key = " pour la première, "$Key.GetSubKeyName()" pour la seconde).
Jacques
"Jacques Barathon [MS]" <jbaratho@online.microsoft.com> wrote in message
news:OU7cEOM4FHA.3400@tk2msftngp13.phx.gbl...
Il n'y a pas très longtemps une réponse à cette question a été donnée sur
le forum US dédié au scripting serveur. La solution a été donnée en MSH
mais elle devrait pouvoir être adaptée sans grand problème en vbscript ou
autre:
Groumfff... J'aurais dû me douter que les lignes seraient tronquées. Pour
ceux qui veulent tester, il y a deux lignes de commandes, chacune commençant
par $Key ("$Key = " pour la première, "$Key.GetSubKeyName()" pour la
seconde).
Il n'y a pas très longtemps une réponse à cette question a été donnée sur le forum US dédié au scripting serveur. La solution a été donnée en MSH mais elle devrait pouvoir être adaptée sans grand problème en vbscript ou autre:
Groumfff... J'aurais dû me douter que les lignes seraient tronquées. Pour ceux qui veulent tester, il y a deux lignes de commandes, chacune commençant par $Key ("$Key = " pour la première, "$Key.GetSubKeyName()" pour la seconde).
Jacques
Do Re Mi chel La Si Do
Bonsoir !
Cela ne listera que les logiciels qui : - ont utilisé le système d'installation de Windows ; - ont une procédure de désinstallation conforme ; - dont les infos de désinstallation n'ont pas été supprimées (par certains "nettoyeurs" par exemple).
La méthode indiquée a quelques points communs avec une discussion entre JCB et Bibi, à propos des clefs-de-logiciels.
De toutes façons, il n'y a aucune méthode qui pourra donner tous les logiciels installés. Il y a beaucoup trop de cas particuliers : logiciels qui n'utilisent pas le registre, logiciels avec des extensions atypiques, logiciels utilisant un chargeur (on ne verra que le chargeur), etc.
Bonne nuit !
Michel Claveau
Bonsoir !
Cela ne listera que les logiciels qui :
- ont utilisé le système d'installation de Windows ;
- ont une procédure de désinstallation conforme ;
- dont les infos de désinstallation n'ont pas été supprimées (par
certains "nettoyeurs" par exemple).
La méthode indiquée a quelques points communs avec une discussion entre JCB
et Bibi, à propos des clefs-de-logiciels.
De toutes façons, il n'y a aucune méthode qui pourra donner tous les
logiciels installés. Il y a beaucoup trop de cas particuliers : logiciels
qui n'utilisent pas le registre, logiciels avec des extensions atypiques,
logiciels utilisant un chargeur (on ne verra que le chargeur), etc.
Cela ne listera que les logiciels qui : - ont utilisé le système d'installation de Windows ; - ont une procédure de désinstallation conforme ; - dont les infos de désinstallation n'ont pas été supprimées (par certains "nettoyeurs" par exemple).
La méthode indiquée a quelques points communs avec une discussion entre JCB et Bibi, à propos des clefs-de-logiciels.
De toutes façons, il n'y a aucune méthode qui pourra donner tous les logiciels installés. Il y a beaucoup trop de cas particuliers : logiciels qui n'utilisent pas le registre, logiciels avec des extensions atypiques, logiciels utilisant un chargeur (on ne verra que le chargeur), etc.
Bonne nuit !
Michel Claveau
Jacques Barathon [MS]
"Do Re Mi chel La Si Do" wrote in message news:%
Bonsoir !
Cela ne listera que les logiciels qui : - ont utilisé le système d'installation de Windows ; - ont une procédure de désinstallation conforme ; - dont les infos de désinstallation n'ont pas été supprimées (par certains "nettoyeurs" par exemple).
"que" est un peu restrictif :-). Denis demande la liste des applis listées dans "ajout/suppression de programmes", ce que donne la méthode que j'ai indiquée à très peu de choses près (je mets ce bémol n'étant pas sûr à 100% de la façon dont le panneau de configuration construit sa liste).
De toutes façons, il n'y a aucune méthode qui pourra donner tous les logiciels installés. Il y a beaucoup trop de cas particuliers : logiciels qui n'utilisent pas le registre, logiciels avec des extensions atypiques, logiciels utilisant un chargeur (on ne verra que le chargeur), etc.
En effet. La définition même de "logiciel installé" est floue. Est-ce que tout fichier exécutable copié en local est un logiciel installé? Dans ce cas, il faudrait faire un dir c:*.exe /s, en dupliquant la commande avec toutes les extensions dispos dans %pathext%...
Jacques
"Do Re Mi chel La Si Do" <enleverlesO.OmcO@OmclaveauO.com> wrote in message
news:%23fNs06N4FHA.4076@TK2MSFTNGP15.phx.gbl...
Bonsoir !
Cela ne listera que les logiciels qui :
- ont utilisé le système d'installation de Windows ;
- ont une procédure de désinstallation conforme ;
- dont les infos de désinstallation n'ont pas été supprimées (par
certains "nettoyeurs" par exemple).
"que" est un peu restrictif :-). Denis demande la liste des applis listées
dans "ajout/suppression de programmes", ce que donne la méthode que j'ai
indiquée à très peu de choses près (je mets ce bémol n'étant pas sûr à 100%
de la façon dont le panneau de configuration construit sa liste).
De toutes façons, il n'y a aucune méthode qui pourra donner tous les
logiciels installés. Il y a beaucoup trop de cas particuliers : logiciels
qui n'utilisent pas le registre, logiciels avec des extensions atypiques,
logiciels utilisant un chargeur (on ne verra que le chargeur), etc.
En effet. La définition même de "logiciel installé" est floue. Est-ce que
tout fichier exécutable copié en local est un logiciel installé? Dans ce
cas, il faudrait faire un dir c:*.exe /s, en dupliquant la commande avec
toutes les extensions dispos dans %pathext%...
Cela ne listera que les logiciels qui : - ont utilisé le système d'installation de Windows ; - ont une procédure de désinstallation conforme ; - dont les infos de désinstallation n'ont pas été supprimées (par certains "nettoyeurs" par exemple).
"que" est un peu restrictif :-). Denis demande la liste des applis listées dans "ajout/suppression de programmes", ce que donne la méthode que j'ai indiquée à très peu de choses près (je mets ce bémol n'étant pas sûr à 100% de la façon dont le panneau de configuration construit sa liste).
De toutes façons, il n'y a aucune méthode qui pourra donner tous les logiciels installés. Il y a beaucoup trop de cas particuliers : logiciels qui n'utilisent pas le registre, logiciels avec des extensions atypiques, logiciels utilisant un chargeur (on ne verra que le chargeur), etc.
En effet. La définition même de "logiciel installé" est floue. Est-ce que tout fichier exécutable copié en local est un logiciel installé? Dans ce cas, il faudrait faire un dir c:*.exe /s, en dupliquant la commande avec toutes les extensions dispos dans %pathext%...
Jacques
Jean-Claude BELLAMY
Dans le message :, Denis a pris la peine d'écrire ce qui suit :
Bonsoir à tous !
Après avoir trouvé une solution afin de lister les logiciels installés sur une station en utilisant un truc du style "SELECT * FROM Win32_Product", ben je me suis rendu compte, que je n'avais en résultat même pas la moitié des logiciels qui sont réellement présents sur une station ... D'ou ma question : quel moyen utiliser pour avoir ne serait ce que l'équivalent de ce que l'on peut voir dans "Ajout/suppression de programme" ?
Script "EnumSoftware.vbs" Ce script fonctionne à DISTANCE : il admet en paramètre (facultatif) le nom NetBIOS de l'ordinateur concerné.
-------- couper ici -------- Const HKLM = &H80000002 Set net = Wscript.CreateObject("WScript.Network") Set args = Wscript.Arguments nbargs=args.count if nbargs=0 then strComputer=net.ComputerName else strComputer=args(0) Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!" & _ strComputer & "rootdefault:StdRegProv") Dim sKeys Key="SOFTWAREMicrosoftWindowsCurrentVersionUninstall" CodeRet = oReg.EnumKey(HKLM , Key, sKeys) msg= "Liste des logiciels installés de façon standard sur l'ordinateur " & strComputer msg=msg & VBCRLF & String(len(msg),"-") & VBCRLF If (CodeRet = 0) And (Err.Number = 0) Then For i= LBound(sKeys) To UBound(sKeys) SubKey=Key & "" & sKeys(i) CodeRet=oReg.GetStringValue(HKLM,SubKey,"DisplayName",DisplayName) If (CodeRet<>0) or (trim(DisplayName)="") Then DisplayName=Skeys(i) CodeRet=oReg.GetStringValue(HKLM,SubKey,"Publisher", Publisher) If (CodeRet=0) and (trim(Publisher)<>"") Then Publisher=" (" & Publisher & ")" msg=msg & VBCRLF & DisplayName & Publisher Next wscript.echo msg end if -------- couper ici --------
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Dans le message :eEm8IBL4FHA.252@TK2MSFTNGP15.phx.gbl,
Denis <dninews@free.fr> a pris la peine d'écrire ce qui suit :
Bonsoir à tous !
Après avoir trouvé une solution afin de lister les logiciels
installés sur une station en utilisant un truc du style "SELECT *
FROM Win32_Product", ben je me suis rendu compte, que je n'avais en
résultat même pas la moitié des logiciels qui sont réellement
présents sur une station ...
D'ou ma question : quel moyen utiliser pour avoir ne serait ce que
l'équivalent de ce que l'on peut voir dans "Ajout/suppression de
programme" ?
Script "EnumSoftware.vbs"
Ce script fonctionne à DISTANCE : il admet en paramètre (facultatif) le nom
NetBIOS de l'ordinateur concerné.
-------- couper ici --------
Const HKLM = &H80000002
Set net = Wscript.CreateObject("WScript.Network")
Set args = Wscript.Arguments
nbargs=args.count
if nbargs=0 then strComputer=net.ComputerName else strComputer=args(0)
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\" & _
strComputer & "rootdefault:StdRegProv")
Dim sKeys
Key="SOFTWAREMicrosoftWindowsCurrentVersionUninstall"
CodeRet = oReg.EnumKey(HKLM , Key, sKeys)
msg= "Liste des logiciels installés de façon standard sur l'ordinateur " &
strComputer
msg=msg & VBCRLF & String(len(msg),"-") & VBCRLF
If (CodeRet = 0) And (Err.Number = 0) Then
For i= LBound(sKeys) To UBound(sKeys)
SubKey=Key & "" & sKeys(i)
CodeRet=oReg.GetStringValue(HKLM,SubKey,"DisplayName",DisplayName)
If (CodeRet<>0) or (trim(DisplayName)="") Then DisplayName=Skeys(i)
CodeRet=oReg.GetStringValue(HKLM,SubKey,"Publisher", Publisher)
If (CodeRet=0) and (trim(Publisher)<>"") Then Publisher=" (" &
Publisher & ")"
msg=msg & VBCRLF & DisplayName & Publisher
Next
wscript.echo msg
end if
-------- couper ici --------
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - Jean-Claude.Bellamy@wanadoo.fr
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Dans le message :, Denis a pris la peine d'écrire ce qui suit :
Bonsoir à tous !
Après avoir trouvé une solution afin de lister les logiciels installés sur une station en utilisant un truc du style "SELECT * FROM Win32_Product", ben je me suis rendu compte, que je n'avais en résultat même pas la moitié des logiciels qui sont réellement présents sur une station ... D'ou ma question : quel moyen utiliser pour avoir ne serait ce que l'équivalent de ce que l'on peut voir dans "Ajout/suppression de programme" ?
Script "EnumSoftware.vbs" Ce script fonctionne à DISTANCE : il admet en paramètre (facultatif) le nom NetBIOS de l'ordinateur concerné.
-------- couper ici -------- Const HKLM = &H80000002 Set net = Wscript.CreateObject("WScript.Network") Set args = Wscript.Arguments nbargs=args.count if nbargs=0 then strComputer=net.ComputerName else strComputer=args(0) Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!" & _ strComputer & "rootdefault:StdRegProv") Dim sKeys Key="SOFTWAREMicrosoftWindowsCurrentVersionUninstall" CodeRet = oReg.EnumKey(HKLM , Key, sKeys) msg= "Liste des logiciels installés de façon standard sur l'ordinateur " & strComputer msg=msg & VBCRLF & String(len(msg),"-") & VBCRLF If (CodeRet = 0) And (Err.Number = 0) Then For i= LBound(sKeys) To UBound(sKeys) SubKey=Key & "" & sKeys(i) CodeRet=oReg.GetStringValue(HKLM,SubKey,"DisplayName",DisplayName) If (CodeRet<>0) or (trim(DisplayName)="") Then DisplayName=Skeys(i) CodeRet=oReg.GetStringValue(HKLM,SubKey,"Publisher", Publisher) If (CodeRet=0) and (trim(Publisher)<>"") Then Publisher=" (" & Publisher & ")" msg=msg & VBCRLF & DisplayName & Publisher Next wscript.echo msg end if -------- couper ici --------
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Denis
Bonjour à tous !
Effectivement, je suis bien conscients qu'obtenir une liste complète des logiciels installés relève de la "mission impossible" ;-) Cependant, ce que me propose JCB fera amplement l'affaire et ma permettra de faire un inventaire plus complet de mon parc ...
Merci à tous ceux qui ont pris le temps de me répondre ! Bon WE à vous !
DNI.
Bonjour à tous !
Effectivement, je suis bien conscients qu'obtenir une liste complète des
logiciels installés relève de la "mission impossible" ;-)
Cependant, ce que me propose JCB fera amplement l'affaire et ma permettra de
faire un inventaire plus complet de mon parc ...
Merci à tous ceux qui ont pris le temps de me répondre !
Bon WE à vous !
Effectivement, je suis bien conscients qu'obtenir une liste complète des logiciels installés relève de la "mission impossible" ;-) Cependant, ce que me propose JCB fera amplement l'affaire et ma permettra de faire un inventaire plus complet de mon parc ...
Merci à tous ceux qui ont pris le temps de me répondre ! Bon WE à vous !
DNI.
Jacques Barathon [MS]
"Denis" wrote in message news:
Bonjour à tous !
Effectivement, je suis bien conscients qu'obtenir une liste complète des logiciels installés relève de la "mission impossible" ;-) Cependant, ce que me propose JCB fera amplement l'affaire et ma permettra de faire un inventaire plus complet de mon parc ...
Impec. Pour info, il s'agit de la version VBS de la méthode que j'avais donnée en MSH. On appréciera au passage la compacité du code MSH par rapport à VBS ;-)
Merci à tous ceux qui ont pris le temps de me répondre ! Bon WE à vous !
De rien. Bonne semaine.
Jacques
"Denis" <dninews@free.fr> wrote in message
news:eDoZoOs4FHA.2060@TK2MSFTNGP09.phx.gbl...
Bonjour à tous !
Effectivement, je suis bien conscients qu'obtenir une liste complète des
logiciels installés relève de la "mission impossible" ;-)
Cependant, ce que me propose JCB fera amplement l'affaire et ma permettra
de faire un inventaire plus complet de mon parc ...
Impec. Pour info, il s'agit de la version VBS de la méthode que j'avais
donnée en MSH. On appréciera au passage la compacité du code MSH par rapport
à VBS ;-)
Merci à tous ceux qui ont pris le temps de me répondre !
Bon WE à vous !
Effectivement, je suis bien conscients qu'obtenir une liste complète des logiciels installés relève de la "mission impossible" ;-) Cependant, ce que me propose JCB fera amplement l'affaire et ma permettra de faire un inventaire plus complet de mon parc ...
Impec. Pour info, il s'agit de la version VBS de la méthode que j'avais donnée en MSH. On appréciera au passage la compacité du code MSH par rapport à VBS ;-)
Merci à tous ceux qui ont pris le temps de me répondre ! Bon WE à vous !
De rien. Bonne semaine.
Jacques
Jean-Claude BELLAMY
Dans le message :, Jacques Barathon [MS] a pris la peine d'écrire ce qui suit :
"Denis" wrote in message news:
Bonjour à tous !
Effectivement, je suis bien conscients qu'obtenir une liste complète des logiciels installés relève de la "mission impossible" ;-) Cependant, ce que me propose JCB fera amplement l'affaire et ma permettra de faire un inventaire plus complet de mon parc ...
Impec. Pour info, il s'agit de la version VBS de la méthode que j'avais donnée en MSH. On appréciera au passage la compacité du code MSH par rapport à VBS ;-)
Je ne veux surtout pas déniger MSH, et je reconnais sa compacité, mais tu m'accorderas le fait que dans mon VBS : - on peut indiquer le nom de l'ordinateur, (par défaut on prend la machine locale) - j'ai prévu plein de tests de validité - je fais de la mise en forme des résultats donc c'est normal que mon VBS soit beaucoup moins compact que le MSH !
Si on veut réellement comparer les 2 langages, il faut "élaguer" les lignes accessoires des 2 cotés et çà donne alors : (attention aux lignes longues et aux césures involontaires dues au lecteur de news !)
VBS ---- Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!" & _ strComputer & "rootdefault:StdRegProv") oReg.EnumKey(HKLM ,"SOFTWAREMicrosoftWindowsCurrentVersionUninstall",sKeys) For i= LBound(sKeys) To UBound(sKeys) SubKey="SOFTWAREMicrosoftWindowsCurrentVersionUninstall" & sKeys(i) oReg.GetStringValue(HKLM,SubKey,"DisplayName",DisplayName) Next
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Dans le message :uCMFHN54FHA.3540@TK2MSFTNGP10.phx.gbl,
Jacques Barathon [MS] <jbaratho@online.microsoft.com> a pris la peine
d'écrire ce qui suit :
"Denis" <dninews@free.fr> wrote in message
news:eDoZoOs4FHA.2060@TK2MSFTNGP09.phx.gbl...
Bonjour à tous !
Effectivement, je suis bien conscients qu'obtenir une liste complète
des logiciels installés relève de la "mission impossible" ;-)
Cependant, ce que me propose JCB fera amplement l'affaire et ma
permettra de faire un inventaire plus complet de mon parc ...
Impec. Pour info, il s'agit de la version VBS de la méthode que
j'avais donnée en MSH. On appréciera au passage la compacité du code
MSH par rapport à VBS ;-)
Je ne veux surtout pas déniger MSH, et je reconnais sa compacité, mais tu
m'accorderas le fait que dans mon VBS :
- on peut indiquer le nom de l'ordinateur,
(par défaut on prend la machine locale)
- j'ai prévu plein de tests de validité
- je fais de la mise en forme des résultats
donc c'est normal que mon VBS soit beaucoup moins compact que le MSH !
Si on veut réellement comparer les 2 langages, il faut "élaguer" les lignes
accessoires des 2 cotés et çà donne alors :
(attention aux lignes longues et aux césures involontaires dues au lecteur
de news !)
VBS
----
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\" & _
strComputer & "rootdefault:StdRegProv")
oReg.EnumKey(HKLM
,"SOFTWAREMicrosoftWindowsCurrentVersionUninstall",sKeys)
For i= LBound(sKeys) To UBound(sKeys)
SubKey="SOFTWAREMicrosoftWindowsCurrentVersionUninstall" & sKeys(i)
oReg.GetStringValue(HKLM,SubKey,"DisplayName",DisplayName)
Next
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - Jean-Claude.Bellamy@wanadoo.fr
http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Dans le message :, Jacques Barathon [MS] a pris la peine d'écrire ce qui suit :
"Denis" wrote in message news:
Bonjour à tous !
Effectivement, je suis bien conscients qu'obtenir une liste complète des logiciels installés relève de la "mission impossible" ;-) Cependant, ce que me propose JCB fera amplement l'affaire et ma permettra de faire un inventaire plus complet de mon parc ...
Impec. Pour info, il s'agit de la version VBS de la méthode que j'avais donnée en MSH. On appréciera au passage la compacité du code MSH par rapport à VBS ;-)
Je ne veux surtout pas déniger MSH, et je reconnais sa compacité, mais tu m'accorderas le fait que dans mon VBS : - on peut indiquer le nom de l'ordinateur, (par défaut on prend la machine locale) - j'ai prévu plein de tests de validité - je fais de la mise en forme des résultats donc c'est normal que mon VBS soit beaucoup moins compact que le MSH !
Si on veut réellement comparer les 2 langages, il faut "élaguer" les lignes accessoires des 2 cotés et çà donne alors : (attention aux lignes longues et aux césures involontaires dues au lecteur de news !)
VBS ---- Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!" & _ strComputer & "rootdefault:StdRegProv") oReg.EnumKey(HKLM ,"SOFTWAREMicrosoftWindowsCurrentVersionUninstall",sKeys) For i= LBound(sKeys) To UBound(sKeys) SubKey="SOFTWAREMicrosoftWindowsCurrentVersionUninstall" & sKeys(i) oReg.GetStringValue(HKLM,SubKey,"DisplayName",DisplayName) Next
-- May the Force be with You! La Connaissance s'accroît quand on la partage ---------------------------------------------------------- Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org ou http://jc.bellamy.free.fr
Jacques Barathon [MS]
"Jean-Claude BELLAMY" wrote in message news:OVr$ <snip>
Si on veut réellement comparer les 2 langages, il faut "élaguer" les lignes accessoires des 2 cotés et çà donne alors : (attention aux lignes longues et aux césures involontaires dues au lecteur de news !)
VBS ---- Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!" & _ strComputer & "rootdefault:StdRegProv") oReg.EnumKey(HKLM ,"SOFTWAREMicrosoftWindowsCurrentVersionUninstall",sKeys) For i= LBound(sKeys) To UBound(sKeys) SubKey="SOFTWAREMicrosoftWindowsCurrentVersionUninstall" & sKeys(i) oReg.GetStringValue(HKLM,SubKey,"DisplayName",DisplayName) Next
"Jean-Claude BELLAMY" <Jean-Claude.Bellamy@wanadoo.fr> wrote in message
news:OVr$Wo54FHA.2676@TK2MSFTNGP15.phx.gbl...
<snip>
Si on veut réellement comparer les 2 langages, il faut "élaguer" les
lignes accessoires des 2 cotés et çà donne alors :
(attention aux lignes longues et aux césures involontaires dues au lecteur
de news !)
VBS
----
Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\" & _
strComputer & "rootdefault:StdRegProv")
oReg.EnumKey(HKLM
,"SOFTWAREMicrosoftWindowsCurrentVersionUninstall",sKeys)
For i= LBound(sKeys) To UBound(sKeys)
SubKey="SOFTWAREMicrosoftWindowsCurrentVersionUninstall" &
sKeys(i)
oReg.GetStringValue(HKLM,SubKey,"DisplayName",DisplayName)
Next
"Jean-Claude BELLAMY" wrote in message news:OVr$ <snip>
Si on veut réellement comparer les 2 langages, il faut "élaguer" les lignes accessoires des 2 cotés et çà donne alors : (attention aux lignes longues et aux césures involontaires dues au lecteur de news !)
VBS ---- Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!" & _ strComputer & "rootdefault:StdRegProv") oReg.EnumKey(HKLM ,"SOFTWAREMicrosoftWindowsCurrentVersionUninstall",sKeys) For i= LBound(sKeys) To UBound(sKeys) SubKey="SOFTWAREMicrosoftWindowsCurrentVersionUninstall" & sKeys(i) oReg.GetStringValue(HKLM,SubKey,"DisplayName",DisplayName) Next