La Win32_Service
classe WMI ne dispose pas d'une propriété qui renverrait le fabricant du service, mais la classe CIM_DataFile
ne. Je peux donc proposer la solution suivante:
- requêtes et énumérer les instances de classe
Win32_Service
.
- Dans la boucle:
- Obtenir la propriété
PathName
du service en cours (il détient la ligne de commande pour le service).
- Extrayez le nom de fichier du service à partir du
PathName
.
- Obtenez l'instance de classe
CIM_DataFile
correspondant au fichier de service.
- Vérifiez la propriété
Manufacturer
du fichier pour savoir si le service est celui de Microsoft. Par exemple, sur ma boîte Vista, le Manufacturer
de tous les services Microsoft est Microsoft Corporation.
Notes:
- magie peut être nécessaire lors de l'analyse de la
PathName
et l'interrogation de la classe CIM_DataFile
comme PathName
peut inclure des arguments de ligne de commande et ne peut pas inclure les extensions de fichiers connus (par exemple exe ). La propriété Manufacturer
peut être Null
pour certains services non-Microsoft.
qu'est-ce qui rend un service non-microsoft? –
Ceux qui ne sont pas fabriqués par MS? Accédez à MSConfig> onglet Services. Et cochez la case en bas "Masquer tous les services Microsoft" – user226973