2012-02-26 4 views
0

Я пытаюсь получить список процессов, выполняющихся на удаленной машине, и имя пользователя, выполняющего их. До сих пор я получил:Узнайте, кто запускает процесс на удаленном компьютере

Dim ps As System.Diagnostics.Process 
For Each ps In System.Diagnostics.Process.GetProcesses("myserver") 
    ListBox1.Items.Add(ps.ProcessName) 
Next 
+0

Что происходит, когда вы запускаете код? У вас есть разрешение на доступ к myserver? –

+0

код работает нормально! Мне просто нужно знать, какой атрибут дает мне имя пользователя, которое запускает процесс – erez

ответ

0

How to get permissions for using System.Diagnostics.Process.GetProcess(string)? - это может быть лучший способ сделать это. Именно в C# я могу перевести его, если хотите.

''' using System.Management; 
' don't forget! in VS you may have to add a new reference to this DLL 
Dim op As New ConnectionOptions() 
op.Username = "REMOTE_USER" 
op.Password = "REMOTE_PASSWORD" 

Dim sc As New ManagementScope("\\REMOTE_COMPUTER_NAME\root\cimv2", op) 

Dim query As New ObjectQuery("Select * from Win32_Process") 

Dim searcher As New ManagementObjectSearcher(sc, query) 
Dim result As ManagementObjectCollection = searcher.[Get]() 

For Each obj As ManagementObject In result 
    If obj("Caption") IsNot Nothing Then 
     Console.Write(obj("Caption").ToString() & vbTab) 
    End If 
    If obj("CommandLine") IsNot Nothing Then 
     Console.WriteLine(obj("CommandLine").ToString()) 
     End If 
Next 



Public Function GetProcessOwner(processId As Integer) As String 
    Dim query As String = "Select * From Win32_Process Where ProcessID = " & processId 
     Dim searcher As New ManagementObjectSearcher(query) 
    Dim processList As ManagementObjectCollection = searcher.[Get]() 

    For Each obj As ManagementObject In processList 
     Dim argList As String() = New String() {String.Empty, String.Empty} 
     Dim returnVal As Integer = Convert.ToInt32(obj.InvokeMethod("GetOwner", argList)) 
     If returnVal = 0 Then 
     ' return DOMAIN\user 
      Return argList(1) & "\" & argList(0) 
     End If 
    Next 

    Return "NO OWNER" 
End Function 
+0

, пожалуйста? – erez

+0

добавлено преобразование в VB.net –