Можно так:
(Get-Process | Where-Object { $_.Name -eq 'FastExecuteScript' -and $_.MainWindowTitle -like '*MyCoolProgram*' } | Select-Object -ExpandProperty MainWindowTitle) -replace '.*\((.*)\).*', '$1'Выведет:
0.1.51@byka
Если нужно предусмотреть любую причину, а причиной может быть как падение, так и закрытие через диспетчер задач, то предлагаю так.
1 скрипт содержит 1 поток, который пишет в какой-то файл каждые 30 секунд текущую дату через Date.now()
2 скрипт содержит всего 1 поток, который читает этот файл каждые 2 минуты, если время там сильно отличается от текущего, делает заданные вами действия и удаляет файл.
В планировщике учту возможность отправлять отчеты.