日期:2014-05-19  浏览次数:21112 次

为什么64位Vista不支持WMI的一些命令(例如JoinDomainOrWorkgroup)?
我想用WMI的JoinDomainOrWorkgroup方法来给机器加域,代码如下:

Dim   searcher   As   New   ManagementObjectSearcher( "select   *   from   win32_computersystem ")
Dim   computerName   As   String   =   Nothing
For   Each   obj   As   ManagementObject   In   searcher.Get
computerName   =   obj( "name ")
Next
Console.WriteLine(computerName)
Dim   computerSys   As   New   ManagementObject( "win32_computersystem= " " "   &   computerName   &   " " " ")
Dim   inParams   As   ManagementBaseObject   =   computerSys.GetMethodParameters( "JoinDomainOrWorkgroup ")
inParams( "Name ")   =   "hslcn "
inParams( "Password ")   =   "41431337 "
inParams( "UserName ")   =   "hslcn\fmeng "
inParams( "FJoinOptions ")   =   1
Dim   outParams   As   ManagementBaseObject   =   computerSys.InvokeMethod(   _
"JoinDomainOrWorkgroup ",   inParams,   Nothing)
Console.WriteLine(outParams( "returnvalue "))

以上代码在32位XP和32位Vista上都能成功,而在64位vista上返回值却是50(ERROR_NOT_SUPPORTED,The   request   is   not   supported.   ),同时一些其他的WMI命令却可以执行,比如获得机器名、域名。

请问这是怎么回事,在64位vista上怎么用WMI命令加域,谢谢了!

------解决方案--------------------
在64位vista上,有部分的功能确实是不能用的。——不光是WMI,一些API的功能也都发生了变化的。

——没有亲自实验过,只是看到了一些资料介绍,所以也无法提出比较有创意的建议参考。
==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
优惠接单开发,组件控件定制开发,成品源代码批发
联系方式:Q64180940 全天在线
==================================================================