Go からの WMI のクエリ: COM の謎を明らかにする
システム管理の領域では、Windows Management Instrumentation (WMI) はシステム情報のクエリとアクセスのための強力なツール。 .NET から WMI をクエリするのはよく知られた領域ですが、Go からこの旅に乗り出すのは未知の領域のように思えるかもしれません。
考えられるアプローチの 1 つは、COM (コンポーネント オブジェクト モデル) の奥深くに飛び込むことです。 C時代初期。 COM は、WMI を含む Windows オペレーティング システム内の多数のオブジェクトと関数を公開します。ただし、Go から COM の複雑さをナビゲートするのは困難な作業になる可能性があります。
幸いなことに、オープンソース コミュニティが助けてくれました。 github.com/StackExchange/wmi パッケージは、COM の便利なラッパーを提供する価値のあるソリューションとして登場しました。これにより、開発者は COM の複雑さから保護され、WMI クエリの中心的な目的に集中できるようになります。
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) } }これを段階的に詳しく説明します。コード:
以上がGo から Windows Management Instrumentation (WMI) を簡単にクエリするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。