[已解决]WMI如何远程连接机器来执行查询语句!
本帖最后由 ioripalm 于 2015-9-7 18:34 编辑搜了论坛全部都是本地电脑的wmi示例,一个远程的可用的都没有
使用wbemtest管理规范测试器,输入用户名和密码可以正常连接,说明本机和远程的设置是没有问题的!
试了下面的代码,使用本地的时候,语句可以执行,换成远程就不能执行了!Dim $computer = "\\192.168.1.102"
Dim $Remoteuser = "administrator"
Dim $Remotepass = "asd123456"
$objlocator = ObjCreate("wbemscripting.swbemlocator")
$objWMIService = $objlocator.connectserver($computer, "\root\cimv2", $Remoteuser, $Remotepass)
$colItems = $objWMIService.ExecQuery("Select * from Win32_LogicalDisk")
For $objItem In $colItems
ConsoleWrite("DeviceID: " & $objItem.DeviceID & @CRLF)
Next执行后就出错:
$colItems = $objWMIService.ExecQuery("Select * from Win32_LogicalDisk")
$colItems = $objWMIService^ ERROR
还有就是不同工作组的电脑如何连接?按照wmi管理规范测试器填写要求,如果不是一个工作组的话,用户名前面要加BigDom\administrator,这个如何添加
请问哪位大神给个示例!
感谢各位给出的示例,试了很多情况下出现未知的错误,最后还是用笨方式:
RunWait(@ComSpec & " /c " & 'wmic /node:"' & $PCIP & '" /user:"administrator" /password:"' & $PCPW & _
'" /output:' & @TempDir & "\" & $PCName & '.txt logicaldisk where "DriveType=3" get DeviceID,Size,FreeSpace,FileSystem', "", @SW_HIDE)
然后分析返回的TXT文本,得到想要的数据.暂时只能这么解决了! 发个例子:Dim $computer ="192.168.1.25"
Dim $Remoteuser ="administrator"
Dim $Remotepass = "11111"
$strResult=''
$objlocator= ObjCreate("wbemscripting.swbemlocator")
$objWMIService = $objlocator.connectserver($computer,"root/cimv2",$Remoteuser,$Remotepass)
$colItems = $objWMIService.ExecQuery("Select * from Win32_LocalTime")
For $objItem In $colItems
$strResult = $objItem.Month & "/" & _
$objItem.Day & "/" & _
$objItem.Year & _
$objItem.Minute & ":" & _
$objItem.Second & "(MM/DD/YYYY HH:MM:SS)"
Next
MsgBox(0, "", $strResult)
你这错误检查下autoit版本,换个版本试试 {:face (114):} 本帖最后由 ioripalm 于 2015-8-31 17:22 编辑
回复 3# ila
试了3.3.9和3.3.12都不能运行,如果是本机,语句都可以运行,现在问题是非同工作组不能连上,但是用手动wbemtest管理规范测试器可以连接! 回复ila
试了3.3.9和3.3.12都不能运行,如果是本机,语句都可以运行,现在问题是非同工作组不能 ...
ioripalm 发表于 2015-8-31 17:05 http://www.autoitx.com/images/common/back.gif
填ip,不同工作组是否正常? computer没必要带斜杠
页:
[1]