OVH Cloud OVH Cloud

Recherche de clé dans la base de registre

9 réponses
Avatar
Georges
Bonjour,

Je d=E9sirerais savoir comment faire pour trouver une occurence telle :
"Soreson" dans la base de registre sous l'arborescence de kle :
HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall\......
ceci pour savoir si ce logiciel a =E9t=E9 install=E9

Merci pour votre aide

Dagor

9 réponses

Avatar
Gilles LAURENT
"Georges" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| Je désirerais savoir comment faire pour trouver une occurence telle :
| "Soreson" dans la base de registre sous l'arborescence de kle :
| HKLMSoftwareMicrosoftWindowsCurrentVersionUninstall......
| ceci pour savoir si ce logiciel a été installé

Ci-dessous une commande permettant de rechercher une occurence dans le
regsitre. La commande doit être entrée dans une invite de commandes sur
une seule ligne :

+++ Pré requis
Windows XP/2003

>reg query
hklmsoftwaremicrosoftwindowscurrentversionuninstall /s
| find /i "soreson" > nul && echo Product is installed ...

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Méta-MCI
Bonjour !

Dans Regedit, F3 pour rechercher.

@+

MCI
Avatar
Georges

"Georges" a écrit dans le message de
news:
| Bonjour,

Bonjour,

| Je désirerais savoir comment faire pour trouver une occurence telle :
| "Soreson" dans la base de registre sous l'arborescence de kle :
| HKLMSoftwareMicrosoftWindowsCurrentVersionUninstall......
| ceci pour savoir si ce logiciel a été installé

Ci-dessous une commande permettant de rechercher une occurence dans le
regsitre. La commande doit être entrée dans une invite de commandes s ur
une seule ligne :

+++ Pré requis
Windows XP/2003

>reg query
hklmsoftwaremicrosoftwindowscurrentversionuninstall /s
| find /i "soreson" > nul && echo Product is installed ...

--
Gilles LAURENT
http://glsft.free.fr


Ok c'est trés bon, mais, je voudrais tester cette klé dans un vbs de
login pour avoir une réponse oui ou non et, si elle existe, c'est que
je peux mettre à jour ce logiciel, sinon, je l'installe

Merci

Avatar
Gilles LAURENT
"Georges" a écrit dans le message de
news:
| Ok c'est trés bon, mais, je voudrais tester cette klé dans un vbs de
| login pour avoir une réponse oui ou non et, si elle existe, c'est que
| je peux mettre à jour ce logiciel, sinon, je l'installe

Ci-dessous la fonction VBScript 'IsProductInstalled' permettant de
déterminer si un produit est installé ou non. Le nom du produit est
transmis comme argument à la fonction.

+++ Usage (VBScript)
If IsProductInstalled ("soreson") = True Then
WScript.Echo "Product is installed ..."
Else
WScript.Echo "Product is not installed ..."
End If

--- Coupez ici : IsProductInstalled.vbs ---

Function IsProductInstalled (strProductName)

' déclaration des variables
Dim oReg
Dim strKey, strData
Dim arrKeys
Dim bRet: bRet = False

' définition des constantes
Const HKLM = &H80000002
Const KEY = "SOFTWAREMicrosoftWindowsCurrentVersionUninstall"
Const DNA = "DisplayName"

' initialisation des objets
Set oReg = GetObject ("winmgmts:rootdefault:StdRegProv")

' énumération des clés
oReg.EnumKey HKLM, KEY, arrKeys
For Each strKey In arrKeys
' lecture du nom affiché (ajout/suppression de programmes)
oReg.GetStringValue HKLM, KEY & "" & strKey, DNA, strData

' recherche du nom du produit dans le nom de la clé ou
' dans le nom affiché
If _
InStr (1, strKey, strProductName, 1) Or _
InStr (1, strData, strProductName, 1) Then
' Le produit est installé
bRet = True
End If
Next

' retour du résultat de la recherche
IsProductInstalled = bRet

End Function

--- Coupez ici : IsProductInstalled.vbs ---

--
Gilles LAURENT
http://glsft.free.fr
Avatar
Georges

"Georges" a écrit dans le message de
news:
| Ok c'est trés bon, mais, je voudrais tester cette klé dans un vbs de
| login pour avoir une réponse oui ou non et, si elle existe, c'est que
| je peux mettre à jour ce logiciel, sinon, je l'installe

Ci-dessous la fonction VBScript 'IsProductInstalled' permettant de
déterminer si un produit est installé ou non. Le nom du produit est
transmis comme argument à la fonction.

+++ Usage (VBScript)
If IsProductInstalled ("soreson") = True Then
WScript.Echo "Product is installed ..."
Else
WScript.Echo "Product is not installed ..."
End If

--- Coupez ici : IsProductInstalled.vbs ---

Function IsProductInstalled (strProductName)

' déclaration des variables
Dim oReg
Dim strKey, strData
Dim arrKeys
Dim bRet: bRet = False

' définition des constantes
Const HKLM = &H80000002
Const KEY = "SOFTWAREMicrosoftWindowsCurrentVersionUninstall"
Const DNA = "DisplayName"

' initialisation des objets
Set oReg = GetObject ("winmgmts:rootdefault:StdRegProv")

' énumération des clés
oReg.EnumKey HKLM, KEY, arrKeys
For Each strKey In arrKeys
' lecture du nom affiché (ajout/suppression de programmes)
oReg.GetStringValue HKLM, KEY & "" & strKey, DNA, strData

' recherche du nom du produit dans le nom de la clé ou
' dans le nom affiché
If _
InStr (1, strKey, strProductName, 1) Or _
InStr (1, strData, strProductName, 1) Then
' Le produit est installé
bRet = True
End If
Next

' retour du résultat de la recherche
IsProductInstalled = bRet

End Function

--- Coupez ici : IsProductInstalled.vbs ---

--
Gilles LAURENT
http://glsft.free.fr


merci beaucoup, ça marche du feu de dieu !

Cordialement
G

Avatar
Georges

"Georges" a écrit dans le message de
news:
| Ok c'est trés bon, mais, je voudrais tester cette klé dans un vbs de
| login pour avoir une réponse oui ou non et, si elle existe, c'est que
| je peux mettre à jour ce logiciel, sinon, je l'installe

Ci-dessous la fonction VBScript 'IsProductInstalled' permettant de
déterminer si un produit est installé ou non. Le nom du produit est
transmis comme argument à la fonction.

+++ Usage (VBScript)
If IsProductInstalled ("soreson") = True Then
WScript.Echo "Product is installed ..."
Else
WScript.Echo "Product is not installed ..."
End If

--- Coupez ici : IsProductInstalled.vbs ---

Function IsProductInstalled (strProductName)

' déclaration des variables
Dim oReg
Dim strKey, strData
Dim arrKeys
Dim bRet: bRet = False

' définition des constantes
Const HKLM = &H80000002
Const KEY = "SOFTWAREMicrosoftWindowsCurrentVersionUninstall"
Const DNA = "DisplayName"

' initialisation des objets
Set oReg = GetObject ("winmgmts:rootdefault:StdRegProv")

' énumération des clés
oReg.EnumKey HKLM, KEY, arrKeys
For Each strKey In arrKeys
' lecture du nom affiché (ajout/suppression de programmes)
oReg.GetStringValue HKLM, KEY & "" & strKey, DNA, strData

' recherche du nom du produit dans le nom de la clé ou
' dans le nom affiché
If _
InStr (1, strKey, strProductName, 1) Or _
InStr (1, strData, strProductName, 1) Then
' Le produit est installé
bRet = True
End If
Next

' retour du résultat de la recherche
IsProductInstalled = bRet

End Function

--- Coupez ici : IsProductInstalled.vbs ---

--
Gilles LAURENT
http://glsft.free.fr


Bonjour,

Je viens de m'apercevoir que j'ai besoin de balayer toutes les Clés
qui sont sous
SOFTWAREMicrosoftWindowsCurrentVersionUninstall
pour trouver une sous clé qui se nomme DisplayType=xxxxx

avez vous une idée

Merci
Cordialement

Georges

Avatar
Jean-Claude BELLAMY
Dans le message :,
Georges a pris la peine d'écrire ce qui suit :
[...]
Je viens de m'apercevoir que j'ai besoin de balayer toutes les Clés
qui sont sous
SOFTWAREMicrosoftWindowsCurrentVersionUninstall
pour trouver une sous clé qui se nomme DisplayType=xxxxx

avez vous une idée


Je fais cela depuis des siècles (euh... presque!) dans mon script
DELUNINSTALL.VBS! ;-)
http://www.bellamyjc.org/fr/vbsdownload.html#deluninstall


const HKEY_LOCAL_MACHINE = &H80000002
...
on error resume next
...
Set
oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!.rootdefault:StdRegProv")
strKeyPath = "SOFTWAREMicrosoftWindowsCurrentVersionUninstall"
oReg.EnumKey HKEY_LOCAL_MACHINE,strKeyPath,arrSubKeys
For Each subkey In arrSubKeys
coderet=oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath & _
"" & subkey,"DisplayType", DisplayType
If (coderet= 0) And (Err.Number = 0) Then
' traitement sur DisplayType
'
'
end if
Next
...


PS : ce "DisplayType" me surprend !

Je ne vois çà nulle part dans mes BDR.
Par contre on trouve très souvent "DisplayName", "DisplayIcon" ou
"DisplayVersion"
Mais peut-être que c'est une particularité chez toi, que justement tu
recherches ...


--
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

Avatar
Georges

Dans le message :,
Georges a pris la peine d'écrire ce qui suit :
[...]
Je viens de m'apercevoir que j'ai besoin de balayer toutes les Clés
qui sont sous
SOFTWAREMicrosoftWindowsCurrentVersionUninstall
pour trouver une sous clé qui se nomme DisplayType=xxxxx

avez vous une idée


Je fais cela depuis des siècles (euh... presque!) dans mon script
DELUNINSTALL.VBS! ;-)
http://www.bellamyjc.org/fr/vbsdownload.html#deluninstall


const HKEY_LOCAL_MACHINE = &H80000002
...
on error resume next
...
Set
oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!.rootde fault:StdRegProv")
strKeyPath = "SOFTWAREMicrosoftWindowsCurrentVersionUninstall"
oReg.EnumKey HKEY_LOCAL_MACHINE,strKeyPath,arrSubKeys
For Each subkey In arrSubKeys
coderet=oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath & _
"" & subkey,"DisplayType", DisplayType
If (coderet= 0) And (Err.Number = 0) Then
' traitement sur DisplayType
'
'
end if
Next
...


PS : ce "DisplayType" me surprend !

Je ne vois çà nulle part dans mes BDR.
Par contre on trouve très souvent "DisplayName", "DisplayIcon" ou
"DisplayVersion"
Mais peut-être que c'est une particularité chez toi, que justement tu
recherches ...


--
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


Bonsoir,

Merci, c'est justement ce que j'attendais

Cordialement

Georges


Avatar
Georges
Bonjour,

coderet=oReg.GetStringValue HKEY_LOCAL_MACHINE,strKeyPath & _
"" & subkey,"DisplayType", DisplayType
If (coderet= 0) And (Err.Number = 0) Then
' traitement sur DisplayType
'
'
end if
Next




Ok, mais je crois que dans mon script, j'ai une erreur et je ne sais
pas où à la ligne de la ligne du coderet et peut etre du psexec

If fso.FileExists(nom_fich) = false Then
commande = "mon-controleurtemppsexec " & PcName & " -d net
localgroup administrateur mondomaine" & Username & " /Add"

coderet = Shell.Run & " " & commande & ",1,true"
commande = "serveurappliappli.msi /quiet /passive /log
%temp%appli.log"
Shell.Run commande,1,true
If (coderet= 0) And (Err.Number = 0) Then
commande = "mon-controleurtemppsexec " & PcName & " -d net
localgroup administrateur mondomaine" & Username & " /Delete"
Shell.Run commande,1,true
endif
'copie du résultat pour le Collaboratif
fso.CopyFile tfolder & .......
End If


Merci pour l'aide


Georges