К счастью, встраивание механизма PowerShell и выполнение команд / сценариев и получение результатов довольно тривиально. Тем не менее, я не уверен, что в вашем сценарии я бы вставил PowerShell. Вы спрашиваете, предпочитают ли люди запускать сценарии из своих собственных оболочек или из среды поставщиков инструментов. Я не могу говорить за всех, но оболочки и редакторы, которые я использую, поддерживают некоторые изящные функции для отладки, свертывания кода, подсветки синтаксиса, нескольких пространств выполнения и т. Д. Я не уверен, что вы захотите приложить усилия для предоставления аналогичных возможностей ,
Одной из причин встраивания PowerShell является выполнение тех же командлетов PowerShell, которые входят в состав ядра диагностики и мониторинга ядра. Таким образом, вам не нужно дублировать функциональность между механизмом приложения диагностического инструмента и командлетами, которые ваши клиенты используют для автоматизации. Похоже, код, который вы используете для диагностики и мониторинга в приложении, отличается от кода в командлетах? Или между приложением и командлетами существует общий код?
Еще одна причина для встраивания PowerShell - позволить самому приложению создавать сценарии, но это не соответствует вашему сценарию.
Еще одна причина для встраивания PowerShell - это если вы внедряете новый хост - т.е. вы предоставляете уникальную функциональность редактирования или оболочки. Некоторые приложения, которые делают это, PowerGUI (который позволяет запускать сценарии IIRC) и PowerShell Plus.
Еще одна причина, по которой я встроил PowerShell в приложение, заключается в том, что я знал, что могу получить определенные результаты при гораздо меньшем количестве кода, чем эквивалентный код C #. Это более слабая причина, и я, вероятно, не стал бы делать это в коммерческом приложении, но я использовал это для одноразовых программ.