Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Menyoal Instrumen Pengurusan Windows (WMI) daripada Go menggunakan Objek COM?
Menyiasat WMI daripada Go: Menggunakan COM Objects
WMI (Windows Management Instrumentation) menyediakan antara muka piawai untuk mengakses maklumat pengurusan dan konfigurasi pada Windows sistem. Dalam Go, adalah mungkin untuk menanyakan WMI menggunakan rangka kerja COM (Model Objek Komponen).
Menggunakan Pakej "github.com/StackExchange/wmi"
Yang disyorkan pendekatan adalah untuk menggunakan pakej "github.com/StackExchange/wmi", yang menyediakan pembungkus yang stabil dan komprehensif untuk Operasi WMI dalam Go. Pakej ini memanfaatkan penyelesaian yang dibincangkan dalam jawapan yang diterima, memudahkan proses memulakan COM dan melaksanakan pertanyaan WMI.
Mengarang Pertanyaan WMI
Untuk mengarang pertanyaan WMI, gunakan fungsi "ExecQuery" yang disediakan oleh pakej. Contohnya:
import "github.com/StackExchange/wmi" func main() { query := wmi.CreateQuery(&wmi.Query{ Namespace: `root\cimv2`, Query: `SELECT * FROM Win32_Process`, })
Melaksanakan Pertanyaan
Setelah pertanyaan dikarang, laksanakannya menggunakan fungsi "Cari":
results, err := query.Find() if err != nil { // Handle error }
Mengambil Keputusan
Fungsi "Cari" mengembalikan sekeping objek "wmi.Record", setiap satu mewakili contoh yang sepadan daripada ruang nama WMI. Untuk mengakses sifat rekod:
for _, record := range results { name, err := record.Property("Name") if err != nil { // Handle error } fmt.Println(name.Value) }
Kod Contoh
Berikut ialah contoh program lengkap yang menunjukkan cara untuk menanyakan WMI untuk nama proses:
package main import ( "fmt" "github.com/StackExchange/wmi" ) func main() { query := wmi.CreateQuery(&wmi.Query{ Namespace: `root\cimv2`, Query: `SELECT Name FROM Win32_Process`, }) results, err := query.Find() if err != nil { // Handle error } for _, record := range results { name, err := record.Property("Name") if err != nil { // Handle error } fmt.Println(name.Value) } }
Atas ialah kandungan terperinci Bagaimana untuk Menyoal Instrumen Pengurusan Windows (WMI) daripada Go menggunakan Objek COM?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!