J'ai réalisé un WinPE 32 bits multi-boot en WinPE3.1 et WinPe5.
J'utilise, dans des VBScripts, WMI.
À ma grande surprise, j'ai constaté que les appels à WMI se soldaient par une présence devenue permanente de l'exécutable "WmiPrvSE.exe" et quelquefois en double exemplaire (constatée par "Taskmgr" que j'ai intégré).
Des logiciels comme "Speccy" ou "MsInfo32" utilisent WMI.
Sous Windows normal, je n'ai jamais constaté une présence permanente de cet exécutable.
J'ai donc modifié un de mes scripts nommé "Tue.vbs" pour qu'il règle le compte de ce(s) parasite(s).
Il n'est pas recommandé de tuer un script vbs ou un exécutable car il peut laisser l'ordinateur dans un triste état, j'utilise ce script pour tuer des scripts nommés "attente.vbs" (scripts qui affichent des informations) ou un exécutable "EasyTimer.exe" (horloge à l'écran) et aucun d'eux ne manipulent de données.
Pour information le voici :
Code : Tout sélectionner
Option Explicit
Dim a,b,coll,wmi
b="Select * from Win32_Process Where Name='"
Set wmi=GetObject("winmgmts:")
If WScript.Arguments.Count=1 Then
a=WScript.Arguments.Unnamed.Item(0)
If a="exe" Then Set coll=wmi.ExecQuery(b&"EasyTimer.exe'")
If a="vbs" Then Set coll=wmi.ExecQuery(b&"wscript.exe' AND CommandLine like '%attente.vbs%'")
If VarType(coll)=9 Then tue()
coll=Empty
End If
b=b&"WmiPrvSE.exe'"
Set coll=wmi.ExecQuery(b)
If VarType(coll)=9 Then tue()
Set coll=wmi.ExecQuery(b)
If VarType(coll)=9 Then tue()
Sub tue()
Dim obj
On Error Resume Next
For Each obj in coll
obj.Terminate()
Next
On Error GoTo 0
End Sub
À bientôt,
moums3