Тема: VBA создание процесса WMI
Собсно есть код, простой как 3 копейки.
Const SW_NORMAL = 1
strComputer = "." 'локальная машина
strCommand = "Notepad.exe"
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" _
& strComputer & "\root\cimv2")
' настройка окна для показа блокнота
Set objStartup = objWMIService.Get("Win32_ProcessStartup")
Set objConfig = objStartup.SpawnInstance_
objConfig.ShowWindow = SW_NORMAL
' создаем блокнот через Win32_Process
Set objProcess = objWMIService.Get("Win32_Process")
intReturn = objProcess.Create _
(strCommand, Null, objConfig, intProcessID)
If intReturn <> 0 Then
Wscript.Echo "Process could not be created." & _
vbNewLine & "Command line: " & strCommand & _
vbNewLine & "Return value: " & intReturn
Else
Wscript.Echo "Process created." & _
vbNewLine & "Command line: " & strCommand & _
vbNewLine & "Process ID: " & intProcessID
End IfНужно выполнить его на удаленной машине, на что он ругается, кричит про доступ и GetObject, и это логично. На удаленной машине используется учетка отличная от моей, и комп не в домене. Покопавшись нашел что-то близкое, по идее:
strComputer = "acapulco" 'name of a remote computer
wmiNS = "\root\cimv2"
wmiClass = "win32_NetworkProtocol"
wmiWhere = " where name like '%TCP/IP%'"
wmiQuery = "Select * from " & wmiClass & wmiWhere
[b]strUsr ="nwtraders\LondonAdmin"'Domain\Username
strPWD = "P@ssw0rd"'UserNames password[/b]
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objLocator.ConnectServer(strComputer, wmiNS, _
strUsr, strPWD)
Set colItems = objWMIService.ExecQuery(wmiQuery)Но, к сожалению, тут подключение идет через SWbemLocator, в виду чего для запуска процесса я потом не могу использовать objWMIService, как быть?

