[RESOLVED] VB.NET 2008 Remote Process Starting
Hello, the below code starts the correct process but the windows form never displays on the remote machine. How do I get the application to actually load.
Code:
Private Sub RunRemoteProcess()
Dim sCmd As String = "C:\Program Files\Internet Explorer\IEXPLORE.EXE " & txtData.Text.Trim
' add a reference to System.Management in Solution Explorer
Dim wmi As ManagementClass
Dim wmi_in, wmi_out As ManagementBaseObject
Dim retValue As Integer
Try
wmi = New ManagementClass("\\" & HostName & "\root\cimv2:Win32_Process")
' get the parameters to the Create method
wmi_in = wmi.GetMethodParameters("Create")
' fill in the command line plus any command-line arguments
' NOTE: the command can NOT be on a network resource!
wmi_in("CommandLine") = sCmd
' do it!
wmi_out = wmi.InvokeMethod("Create", wmi_in, Nothing)
' get the return code. This not the return code of the
' application... it's a return code for the WMI method
retValue = Convert.ToInt32(wmi_out("returnValue"))
Select Case retValue
Case 0
' success!
Case 2
Throw New ApplicationException("Access denied")
Case 3
Throw New ApplicationException("Insufficient privilege")
Case 8
Throw New ApplicationException("Unknown failure")
Case 9
Throw New ApplicationException("Path not found")
Case 21
Throw New ApplicationException("Invalid parameter")
Case Else
Throw New ApplicationException("Unknown return code " & retValue)
End Select
Catch ex As Exception
MsgBox(HostName & ": Can't create the process. " & ex.Message)
End Try
Re: VB.NET 2008 Remote Process Starting
make sure that you pass admin privileges (impersonation).
Re: VB.NET 2008 Remote Process Starting
Quote:
Originally Posted by
sapator
make sure that you pass admin privileges (impersonation).
How would I go about doing the impersonation using the above code? I've seen other examples of wmi process creation but they don't seem to work properly. This example here at least is creating the process on the remote machine that I can see.
Re: VB.NET 2008 Remote Process Starting
Hi.
A general example is:
Code:
Dim imp As New System.Management.ConnectionOptions
imp.Username = strUserName
imp.Password = strPassword
imp.Impersonation = Management.ImpersonationLevel.Impersonate
impt.Authentication = Management.AuthenticationLevel.PacketPrivacy
U use it after with ManagementScope
Haven't used impersonation for what u are doing so let us know if you can make it work.
Re: VB.NET 2008 Remote Process Starting
I've come to the conclusion that it is impossible to run a process on the remote machine as the currently logged in user and have it display the new processes windows form on the users winstation. I have tried almost everything.
Re: [RESOLVED] VB.NET 2008 Remote Process Starting
There is a simple answer to your problem. Under normal circumstances processes started remotely are prohibited from running interactively. The issue is explained in the following MSDN link.
http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx
Re: [RESOLVED] VB.NET 2008 Remote Process Starting
Hi,
Thanks for that bit of info. It actually gave me the encouragement to start playing with this remote process execution again. I am basically trying to re-create what psexec does. So I'm assuming that I will have to have a service running on the localmachine and have the service's code create the Win32_Process.