WMI von Go aus abfragen
Um WMI-Abfragen von Go aus auszuführen, ist die Verwendung von DLL-Aufrufen möglich. Allerdings kann es entmutigend sein, sich in der Komplexität COM-basierter Windows-APIs zurechtzufinden. Glücklicherweise gibt es alternative Lösungen, die einen einfacheren Ansatz bieten.
Eine empfohlene Lösung ist die Nutzung des GitHub-Repositorys von StackExchange/wmi. Dieses Paket kapselt die in der akzeptierten Antwort beschriebenen Techniken und bietet eine praktische Schnittstelle für WMI-Abfragen.
Verwendung des StackExchange/wmi-Pakets
Hier ist ein Codeausschnitt, der zeigt, wie das geht So verwenden Sie das StackExchange/wmi-Paket:
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)) } }
Dieses Beispiel wird abgerufen Informationen über laufende Prozesse, einschließlich ihrer Prozess-IDs und Namen. Das StackExchange/wmi-Paket verarbeitet die Feinheiten von COM und WMI und vereinfacht den Abfrageprozess für Go-Entwickler.
Das obige ist der detaillierte Inhalt vonWie kann ich WMI einfach von Go aus abfragen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!