Hallo,
eine direkte Antwort auf Deine Frage habe ich nicht, aber einen Vorschlag.
Zu meinem Job gehört es, diverse Server zu überwachen. Überall laufen irgendwelche Dienste, die immer laufen müssen. Davon stürzt einer regelmäßig ab (und reißt - selten - andere Dienste früher oder später mit). Nun habe ich mir eine Möglichkeit geschaffen, von Server X die Dienste auf Server A, B, C... zu prüfen und ggfls. neu zu starten. Server X wird seinerseits von Server A, B, C... überwacht. Also jeder guckt auf jeden und repariert oder schickt 'ne Mail, dass da was nicht stimmt.
Wenn Du nun aus A.EXE einen Dienst machst, kannst Du (unter Zuhilfenahme von z. B. psservice.exe von SysInternals) per Batch prüfen, ob der Dienst A.EXE noch läuft und wenn nicht den Dienst A.EXE neu starten. Dies geht serverübergreifend, sofern Du über die entsprechenden Rechte verfügst (bzw. Anmeldedaten per Kommandozeilenparameter übergibst).
Das könnte für Deine Aufgabenstellung sicherlich eine Alternative sein.
Mehr dazu findest Du
hier. Damit könntest Du Dir ein Programm oder einen Dienst schreiben, der anderen Dienste überwacht. Vorteil ist, der Überwachungsdienst kann auch laufen, wenn niemand am Rechner angemeldet ist und wird selbst beim Neustart des Überwachungsrechners gestartet. Andernfalls müsstest Du ja nicht nur durch B.EXE prüfen, ob A.EXE läuft, sondern auch sicherstellen, dass B.EXE läuft. Die Dienste könnten sich aber auch auf einem Server gegenseitig überwachen und ggfls. neustarten, während ein zweiter Rechner dies wiederum überprüft.