WMI von Go aus abfragen: COM-Objekte verwenden
WMI (Windows Management Instrumentation) bietet eine standardisierte Schnittstelle für den Zugriff auf Verwaltungs- und Konfigurationsinformationen unter Windows Systeme. In Go ist es möglich, WMI mithilfe des COM-Frameworks (Component Object Model) abzufragen.
Verwendung des Pakets „github.com/StackExchange/wmi“
Empfohlen Der Ansatz besteht darin, das Paket „github.com/StackExchange/wmi“ zu verwenden, das einen stabilen und umfassenden Wrapper für WMI-Vorgänge in Go bereitstellt. Dieses Paket nutzt die in der akzeptierten Antwort besprochene Lösung und vereinfacht den Prozess der Initialisierung von COM und der Ausführung von WMI-Abfragen.
Verfassen einer WMI-Abfrage
Um eine WMI-Abfrage zu verfassen, Verwenden Sie die vom Paket bereitgestellte Funktion „ExecQuery“. Zum Beispiel:
import "github.com/StackExchange/wmi" func main() { query := wmi.CreateQuery(&wmi.Query{ Namespace: `root\cimv2`, Query: `SELECT * FROM Win32_Process`, })
Ausführen der Abfrage
Sobald die Abfrage zusammengestellt ist, führen Sie sie mit der Funktion „Suchen“ aus:
results, err := query.Find() if err != nil { // Handle error }
Ergebnisse abrufen
Die Funktion „Suchen“ gibt einen Ausschnitt von zurück „wmi.Record“-Objekte, die jeweils eine passende Instanz aus dem WMI-Namespace darstellen. So greifen Sie auf die Eigenschaften eines Datensatzes zu:
for _, record := range results { name, err := record.Property("Name") if err != nil { // Handle error } fmt.Println(name.Value) }
Beispielcode
Hier ist ein vollständiges Beispielprogramm, das zeigt, wie WMI nach Prozessnamen abgefragt wird:
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) } }
Das obige ist der detaillierte Inhalt vonWie frage ich Windows Management Instrumentation (WMI) von Go aus mithilfe von COM-Objekten ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!