Maison > développement back-end > Golang > Comment puis-je facilement interroger Windows Management Instrumentation (WMI) depuis Go ?

Comment puis-je facilement interroger Windows Management Instrumentation (WMI) depuis Go ?

Barbara Streisand
Libérer: 2024-11-29 09:07:11
original
204 Les gens l'ont consulté

How Can I Easily Query Windows Management Instrumentation (WMI) from Go?

Interroger WMI depuis Go : dévoiler les mystères de COM

Dans le domaine de la gestion système, Windows Management Instrumentation (WMI) se présente comme un outil puissant pour interroger et accéder aux informations système. Bien qu'interroger WMI à partir de .NET soit un territoire familier, se lancer dans ce voyage depuis Go peut sembler être des eaux inexplorées.

Une approche potentielle consiste à plonger dans les profondeurs de COM (Component Object Model), une relique du début de l’ère C. COM expose de nombreux objets et fonctions au sein du système d'exploitation Windows, y compris WMI. Cependant, naviguer dans les subtilités de COM depuis Go peut être une tâche ardue.

Heureusement, la communauté open source est venue à la rescousse. Le package github.com/StackExchange/wmi s'est imposé comme une solution précieuse, fournissant un wrapper pratique autour de COM. Il protège les développeurs des complexités de COM, leur permettant de se concentrer sur l'objectif principal des requêtes WMI.

Plongeons-nous dans un exemple illustratif qui exploite la puissance de github.com/StackExchange/wmi :

package main

import (
    "fmt"
    "github.com/StackExchange/wmi"
)

func main() {
    q := wmi.CreateQuery(&wmi.Query{
        Namespace:  "root\CIMV2",
        Query:      "SELECT * FROM Win32_Process",
        ReturnOnly: []string{"Name"},
    })

    res, err := wmi.Query(q)
    if err != nil {
        fmt.Println(err)
        return
    }

    for _, proc := range res.Process {
        fmt.Println(proc.Name)
    }
}
Copier après la connexion

Voici une présentation étape par étape du code :

  • CreateQuery : Cette fonction établit les paramètres de notre requête WMI. Nous spécifions l'espace de noms, l'instruction de requête et les propriétés souhaitées à renvoyer.
  • Requête : Cette fonction exécute la requête WMI sur le système et renvoie un ensemble de résultats.
  • Process : L'ensemble de résultats est une collection d'instances de Win32_Process, chacune représentant un processus actif sur le system.

Le code parcourt ensuite les instances Win32_Process, imprimant la propriété Name pour chacune d'entre elles. Cet exemple est conçu pour récupérer les noms de processus, mais les principes peuvent être appliqués pour interroger n'importe quelle classe et propriété WMI.

En adoptant le package github.com/StackExchange/wmi, vous contournez les complexités de COM et débloquez le potentiel des requêtes WMI dans Go en toute simplicité.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal