如何利用WMI实现与局域网中的远程计算机连接,并且在远程计算机上启动自动安装程序,
有源代码更好(VB6.0或者VC6.0)。windows 2000和2003操作系统我可以实现,但是
windows XP操作系统总是提示“拒绝访问”,“RPC服务器不可用”
代码如下:希望大虾修改下“: Option Explicit
Dim objSWbemLocator As New SWbemLocator
Dim objSWbemServices As SWbemServices
Dim objSWbemObjectSet As SWbemObjectSet
Dim objSWbemObject As SWbemObject, objStartup As SWbemObject, objConfig As SWbemObject
Dim strComputer As String, strUserName As String, strPassWord As String, strCommand As String, strNameSpace As String
Private Const SW_NORMAL = 1Private Sub Form_Load()
Me.Caption = "启动进程"
strComputer = "192.168.0.70" '.为本机,可以指定远程计算机
strUserName = "zz" '指定计算机的管理员帐号
strPassWord = "543127" '指定计算机的管理员口令
strCommand = "cmd /k dir" '命令行方式或一个可以带路径的可执行程序例如"c:\winnt\system32\notepad.exe"
strNameSpace = "root\cimv2"
Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, strNameSpace, strUserName, strPassWord) '连接到本机的WMI,返回一个对 SWbemServices 对象的引用
End SubPrivate Sub Command1_Click()
Dim intReturn As Long, intProcessID As Long
'构造进程的作为窗口显示
Set objStartup = objSWbemServices.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = SW_NORMAL
' 建立进程
Set objSWbemObject = objSWbemServices.Get("Win32_Process")
intReturn = objSWbemObject.Create(strCommand, Null, objConfig, intProcessID)
If intReturn <> 0 Then
MsgBox strCommand & "进程不能被创建!" & _
vbCrLf & "Command line: " & strCommand & _
vbCrLf & "Return value: " & intReturn
Else
MsgBox strCommand & "进程已创建:" & _
vbCrLf & "Command line: " & strCommand & _
vbCrLf & "Process ID: " & intProcessID
End If
End Sub
有源代码更好(VB6.0或者VC6.0)。windows 2000和2003操作系统我可以实现,但是
windows XP操作系统总是提示“拒绝访问”,“RPC服务器不可用”
代码如下:希望大虾修改下“: Option Explicit
Dim objSWbemLocator As New SWbemLocator
Dim objSWbemServices As SWbemServices
Dim objSWbemObjectSet As SWbemObjectSet
Dim objSWbemObject As SWbemObject, objStartup As SWbemObject, objConfig As SWbemObject
Dim strComputer As String, strUserName As String, strPassWord As String, strCommand As String, strNameSpace As String
Private Const SW_NORMAL = 1Private Sub Form_Load()
Me.Caption = "启动进程"
strComputer = "192.168.0.70" '.为本机,可以指定远程计算机
strUserName = "zz" '指定计算机的管理员帐号
strPassWord = "543127" '指定计算机的管理员口令
strCommand = "cmd /k dir" '命令行方式或一个可以带路径的可执行程序例如"c:\winnt\system32\notepad.exe"
strNameSpace = "root\cimv2"
Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, strNameSpace, strUserName, strPassWord) '连接到本机的WMI,返回一个对 SWbemServices 对象的引用
End SubPrivate Sub Command1_Click()
Dim intReturn As Long, intProcessID As Long
'构造进程的作为窗口显示
Set objStartup = objSWbemServices.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = SW_NORMAL
' 建立进程
Set objSWbemObject = objSWbemServices.Get("Win32_Process")
intReturn = objSWbemObject.Create(strCommand, Null, objConfig, intProcessID)
If intReturn <> 0 Then
MsgBox strCommand & "进程不能被创建!" & _
vbCrLf & "Command line: " & strCommand & _
vbCrLf & "Return value: " & intReturn
Else
MsgBox strCommand & "进程已创建:" & _
vbCrLf & "Command line: " & strCommand & _
vbCrLf & "Process ID: " & intProcessID
End If
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货