none
Problem Thread Credentials RRS feed

  • Frage

  • Hallo zusammen
    ich bin ziemlicher Neuling was vb.net betrifft

    ich habe mir ein Programm geschrieben das mir das Starten und stoppen von Prozessen anzeigen soll
    grundsätzlich funktioniert alles 

    Problem: wenn ich die MonitorFunktion als Therad ausführe habe ich offensichtlich nicht mehr die gleichen Berechtigungen.
    ich sehe nur noch die Hauptprozesse und keine Subprozesse mehr.
    z.b. Wenn och aus einer Powershell eine weitere EXE starte , sehe ich nur noch die Powershell aber noch mehr die Exe

    Wie muss ich den neuen thread starten damit ich die gleichen Berechtigungen behalte wie mein main Form1 ?

    ## so starte ich den Thread

    neuerthread = NewSystem.Threading.Thread(AddressOfMe.monitor_Process)
    neuerthread .start

    ## kleiner auszug aus meiner monitor_Process

    Private Function monitor_Process(Client1) As Object

            If DEBUGMODE = 0 Then On Error Resume Next

            Dim objWMIServiceMon, colMonitoredEvents, colItems, objEventObject
            Dim objWMIService
            Dim strOwner As String = "-"
            Dim curentPID As String = "-"
            Dim ProcName As String = "-"
            Dim ProcPID As String = "-"
            Dim Command As String = "-"
            Dim ProcMon1 As String = "-"
            Dim ChildProcess As String = "-"

            objWMIServiceMon = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & Client1 & "\root\cimv2")
            colMonitoredEvents = objWMIServiceMon.ExecNotificationQuery("SELECT * FROM __InstanceOperationEvent within 1 where TargetInstance isa 'Win32_Process'")

            Do While True
                objEventObject = colMonitoredEvents.NextEvent()
                Select Case objEventObject.Path_.Class
                    Case "__InstanceCreationEvent"

                        ProcName = (LCase(objEventObject.TargetInstance.name))
          Me.WriteXLS(ProcName )
                       
                    Case "__InstanceDeletionEvent"
                        ProcName = (LCase(objEventObject.TargetInstance.name))
                        Me.WriteXLS(ProcName )


                End Select

                objEventObject = Nothing

            Loop

        End Function


    Montag, 6. Oktober 2014 10:06

Antworten

Alle Antworten