求助一段 操作WMI代码

hellsam · · 2026 次点击 · 开始浏览    置顶
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。

~~~ //这段网上复制来的 看起来有点像 估计改下可以实现我要的功能 不太看得懂 求助 希望帮改改下 //这个是一段 利用WMI获取当前Windows下进程的演示代码 //【如果可以 可以给个红包意思意思辛苦费嘻嘻!】 package main import ( "github.com/mattn/go-ole" "github.com/mattn/go-ole/oleutil" ) func main() { // init COM, oh yeah ole.CoInitialize(0) defer ole.CoUninitialize() unknown, _ := oleutil.CreateObject("WbemScripting.SWbemLocator") defer unknown.Release() wmi, _ := unknown.QueryInterface(ole.IID_IDispatch) defer wmi.Release() // service is a SWbemServices serviceRaw, _ := oleutil.CallMethod(wmi, "ConnectServer") service := serviceRaw.ToIDispatch() defer service.Release() // result is a SWBemObjectSet resultRaw, _ := oleutil.CallMethod(service, "ExecQuery", "SELECT * FROM Win32_Process") result := resultRaw.ToIDispatch() defer result.Release() countVar, _ := oleutil.GetProperty(result, "Count") count := int(countVar.Val) for i :=0; i < count; i++ { // item is a SWbemObject, but really a Win32_Process itemRaw, _ := oleutil.CallMethod(result, "ItemIndex", i) item := itemRaw.ToIDispatch() defer item.Release() asString, _ := oleutil.GetProperty(item, "Name") println(asString.ToString()) } } ~~~ ~~~ 改这样的例子 这是一段 powershell的代码 $getWMi = gwmi -n root\wmi -cl testData $serverID = $getWMi.AddSession("test_Init") $Getsession = gwmi -n root\wmi -q "select * from test where SessionId=$($serverID.SessionId)" $output = $Getsession.GetValue("data/yu").value echo "$output" ~~~

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

2026 次点击  
加入收藏 微博
18 回复  |  直到 2018-01-16 15:20:21
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传