wenn ich eine Windows geplante Aufgabe habe, die meine EXE ausführt. Gibt es einen Weg aus meiner EXE heraus, um die geplante Task-Instanz zu finden, die mich ausgelöst hat?Wie finde ich die instanceID/Korrelations-ID der geplanten Task, die meinen Prozess gestartet hat
Antwort
Einfache Antwort dafür wäre: nein.
Am besten können Sie entweder auf die Taskplaner-Bibliothek zugreifen und sehen, ob der Prozess sich im "Running" -Modus befindet, die PID des Prozesses abrufen (Scheduler schreibt sie tatsächlich in die Historie) und vergleicht sie zu dir.
Einfacher zu tun wäre Zugriff auf Systemereignisprotokolle und sehen, ob es irgendwelche Erwähnung der Ausführung Ihrer Exe-Datei (obwohl sie möglicherweise nicht so ein Protokoll sein, wenn die Exe tatsächlich ausgeführt wurde).
Die einzige Sache, die Sie Ihrem Prozess zuordnen können, ist der Anrufer (der NETWORK SERVICE oder ein vordefiniertes Konto sein kann), die keine Informationen darüber geben, dass es geplant ist.
Ich habe eine Weile versucht, das gleiche Problem zu lösen, aber ich denke nicht, dass es möglich ist, die aktuelle API zu verwenden. Wenn Sie einen Verweis auf die laufende Aufgabe haben, können Sie die PID der Task-Engine abrufen, die sie gestartet hat. Von dort können Sie gehen, um die Aufgabe Ereignisprotokoll zu gehen und die neuesten Ereignisse mit ID 200 (Aktion gestartet) mit der gleichen Engine-PID suchen, aber da Sie mehrere Task-Prozesse unter einer einzigen Task-Engine ausführen können, können Sie Gehen Sie nicht mit absoluter Sicherheit weiter (z. B. könnte eine zweite Instanz Ihres Prozesses unter der gleichen Engine-PID laufen - Sie können nicht erkennen, welche Korrelations-ID zu Ihrem Zielprozess gehört.)
- 1. Wie bekomme ich die Befehlszeile, die den Prozess gestartet hat?
- 2. Workflow Foundation für geplanten Prozess
- 3. Wo finde ich meinen Bildschirm, wenn ich einen Selenium-Schaber von den geplanten Aufgaben verwende?
- 4. wie einen geplanten Prozess in SQL Server
- 5. Wie ändere ich die Speicherpriorität einer geplanten Aufgabe?
- 6. Wie finde ich heraus, welche Optimierungen die JVM auf meinen Code angewendet hat?
- 7. Wie bekomme ich die Liste der geplanten Aufgaben mit C#?
- 8. Exe Name wie update.exe durch UAC in geplanten Task blockiert
- 9. Wie finde ich welchen Prozess Speicher ausläuft
- 10. Invoke-Element nicht von geplanten Task ausgeführt
- 11. Wie finde ich die Sondenfolge der Schlüssel?
- 12. Verknüpfen Sie die Lebensdauer eines Prozesses mit der Shell, die ihn gestartet hat
- 13. Wie finde ich meinen ISP heraus?
- 14. Woocommerce-Wie finde ich heraus, ob die E-Mail-ID die Reihenfolge vor hat?
- 15. Wie finde ich die Schriftbreite?
- 16. Wie finde ich den Pfad, von dem aus der aktuelle Prozess/die ausführbare Datei ausgeführt wird?
- 17. Wie finde ich EC2-Instanzen, die einen bestimmten AMI ausführen?
- 18. Wie bekomme ich die Liste von Prozess
- 19. Wie erkenne ich, wie mein Prozess gestartet wurde?
- 20. C# synchroner Prozess gestartet
- 21. Ermitteln, ob der Prozess neu gestartet wurde
- 22. Wie finde ich die Java Update Version?
- 23. Wie finde ich heraus, ob das System die Schriftart hat, die ich in MFC benötigte?
- 24. Finde die äußersten Koordinaten von Geodjango queryset, die Punktspalte hat
- 25. Wie finde ich die Größe der Pooling-Layer in Caffe?
- 26. Wie finde ich die optimale Verarbeitungsreihenfolge?
- 27. System.Diaganostics.Process.Id ist nicht die gleiche Prozess-ID, die im Task-Manager angezeigt wird. Warum?
- 28. Wie umleiten Sie die Ausgabe einer Konsole an die Konsole, die sie gestartet hat?
- 29. Wie sehe ich die Optimierungen, die der Compiler gemacht hat
- 30. WPF - Wie finde ich die Gridviewcolumn aus der Zelle