为什么64位Vista不支持WMI的一些命令?解决方法
为什么64位Vista不支持WMI的一些命令?
我想用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位的数据类型与32位的有很大差别的,你相应调整数据类型试试
------解决方案--------------------
为什么64位Vista不支持WMI的一些命令?
因为微软没做!
------解决方案--------------------
同上...
------解决方案--------------------
这事你必须得问微软.
可能当初有的C#程序员偷懒了吧,呵呵.
我想用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位的数据类型与32位的有很大差别的,你相应调整数据类型试试
------解决方案--------------------
为什么64位Vista不支持WMI的一些命令?
因为微软没做!
------解决方案--------------------
同上...
------解决方案--------------------
这事你必须得问微软.
可能当初有的C#程序员偷懒了吧,呵呵.