Private Sub Form_Load() strComputer = "." strNameSpace = "root\cimv2" strClass = "Win32_ComputerSystem" Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, strNameSpace) Set objSWbemObjectSet = objSWbemServices.ExecQuery("SELECT * FROM " & strClass) For Each objSWbemObject In objSWbemObjectSet Me.Capiton objSWbemObject.WorkGroup Next Set objSWbemObjectSet = objSWbemServices.ExecQuery("SELECT * FROM " & strClass & " WHERE WorkGroup = '" & Me.Caption & "'") For Each objSWbemObject In objSWbemObjectSet Me.Print "计算机所属工作组更改为:" & objSWbemObject.WorkGroup = "TT" Next End Sub
Private Sub Form_Load()
strComputer = "."
strNameSpace = "root\cimv2"
strClass = "Win32_ComputerSystem"
Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator")
Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, strNameSpace)
Set objSWbemObjectSet = objSWbemServices.ExecQuery("SELECT * FROM " & strClass)
For Each objSWbemObject In objSWbemObjectSet
Me.Capiton objSWbemObject.WorkGroup
Next
Set objSWbemObjectSet = objSWbemServices.ExecQuery("SELECT * FROM " & strClass & " WHERE WorkGroup = '" & Me.Caption & "'")
For Each objSWbemObject In objSWbemObjectSet
Me.Print "计算机所属工作组更改为:" & objSWbemObject.WorkGroup = "TT"
Next
End Sub
'测试代码前请查看操作系统种类,XP/03都可以,2K不行,并且添加对WMI的引用到工程当中
Private Sub Form_Click()
strDomain = "TT"
Set objNetwork = CreateObject("WScript.Network")
strComputer = objNetwork.ComputerName
Set objComputer = GetObject("winmgmts:{impersonationLevel=Impersonate}!\\" & _
strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _
strComputer & "'")
ReturnValue = objComputer.JoinDomainOrWorkGroup(strDomain, Null, Null, Null, Null)
MsgBox "完毕"
End Sub
'以上代码只能用于XP/2003中,对于2000是无效的.上面的strDomain = "TT"指定了需要加入的新工作组名称.
'2K由于我没安装,提供一种办法,也是使用WMI脚本,当然了,具我所看的说明,这种办法应该是使用于XP/2K/03等操作系统的,但是需要历遍每一个网络配置器并进行相应设置才行.使用的是Win32_NetworkAdapterConfiguration 类的 SetDNSDomain() 方法
稍后我测试一下