首页 > 后端开发 > Golang > 如何从 Go 轻松查询 WMI?

如何从 Go 轻松查询 WMI?

Mary-Kate Olsen
发布: 2024-11-28 18:38:11
原创
260 人浏览过

How Can I Easily Query WMI from Go?

从 Go 查询 WMI

要从 Go 执行 WMI 查询,利用 DLL 调用是可行的。然而,驾驭基于 COM 的 Windows API 的复杂性可能令人望而生畏。幸运的是,有一些替代解决方案可以提供更直接的方法。

一个推荐的解决方案是利用 StackExchange/wmi 的 GitHub 存储库。该包封装了已接受答案中概述的技术,为 WMI 查询提供了方便的接口。

使用 StackExchange/wmi 包

这里有一个代码片段,演示了如何使用 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))
        }
}
登录后复制

此示例将获取有关正在运行的进程的信息,包括它们的进程 ID 和名称。 StackExchange/wmi 包处理 COM 和 WMI 的复杂性,简化了 Go 开发人员的查询过程。

以上是如何从 Go 轻松查询 WMI?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板