Maison >développement back-end >Golang >Comment puis-je facilement interroger WMI depuis Go ?

Comment puis-je facilement interroger WMI depuis Go ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-28 18:38:11262parcourir

How Can I Easily Query WMI from Go?

Interrogation WMI depuis Go

Pour exécuter des requêtes WMI depuis Go, il est possible d'utiliser des appels DLL. Cependant, naviguer dans la complexité des API Windows basées sur COM peut s'avérer intimidant. Heureusement, il existe des solutions alternatives qui offrent une approche plus simple.

Une solution recommandée consiste à exploiter le référentiel GitHub de StackExchange/wmi. Ce package encapsule les techniques décrites dans la réponse acceptée, offrant une interface pratique pour les requêtes WMI.

Utilisation du package StackExchange/wmi

Voici un extrait de code qui montre comment pour utiliser le package StackExchange/wmi :

package main

import (
        "context"
        "fmt"
        "log"

        "github.com/StackExchange/wmi"
)

func main() {
        query := wmi.CreateQuery(&wmi.Query{
                Namespace:  "root\cimv2",
                Query:      "SELECT * FROM Win32_Process",
                Projection: []string{"Caption", "ProcessId"},
        })
        processes, err := query.Execute(context.Background())
        if err != nil {
                log.Fatal(err)
        }
        fmt.Printf("%-5s%-20v", "PID", "Name")
        fmt.Println()
        for _, p := range processes {
                fmt.Printf("%-5v%-20v\n", p.Properties["ProcessId"].Value.Value().(uint32), p.Properties["Caption"].Value.Value().(string))
        }
}

Cet exemple récupérera des informations sur l'exécution processus, y compris leurs ID et noms de processus. Le package StackExchange/wmi gère les subtilités de COM et WMI, simplifiant ainsi le processus d'interrogation pour les développeurs Go.

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!

Déclaration:
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