C # Powershell Interop - PullRequest
       23

C # Powershell Interop

1 голос
/ 15 апреля 2009

Парень из Sys Admin пишет несколько общих служебных сценариев Power Shell. Преимущественно для управления AD (обновление данных обмена, перемещение людей по группам безопасности и т. Д.)

Я бы хотел использовать эти скрипты из C # (я собираюсь написать его как библиотеку, используемую веб-сайтом).

Я видел эту статью проекта кода , которая выглядит интересной и хорошей отправной точкой.

У кого-нибудь есть опыт взаимодействия с Power Shell? Кто-нибудь может подумать о каких-то серьезных ошибках, прежде чем я прыгну головой в спайк?

Дополнительная информация:

Я понимаю, что есть проблемы с логистикой, особенно с КИ и версиями.

Первоначально планировалось использовать службы каталогов, предоставляя услуги через веб-API и CmdLets. К сожалению, у нас возникают проблемы со службами каталогов (например, усеченные результаты для больших наборов).

В то же время, вместо того, чтобы использовать противоречивую смесь, я решил, что я должен исследовать, используя скрипты Sys Admins. Зачем изобретать велосипед?

Я уже написал модель своего домена. Я намереваюсь реализовать шаблон репозитория, чтобы можно было абстрагироваться от интеграции AD / Exchange, что позволит в будущем реализовать различные варианты.

Ответы [ 3 ]

2 голосов
/ 15 апреля 2009

Если у сценариев есть зависимости от системы или профиля пользователя, то вам сначала нужно будет явно указать точечный источник профиля в вашем пространстве выполнения.

Более высокие уровни управления (например, сеанс, переносимый из одной команды в другую, ... доступ к выводу отладки) требуют более сложной / низкоуровневой / сложной работы.

Кроме этого, все это просто работает.

1 голос
/ 15 апреля 2009

Я провел последние несколько месяцев, запуская код PowerShell из приложения C #, и он отлично работает, с ним можно сделать довольно интересные вещи. Тем не менее, как упомянул JaredPar, наличие скрипта PowerShell в файлах скриптов вне приложения может быть проблемой. У меня есть весь мой код PowerShell в библиотеке, и я отправляю его туда, где он нужен, и он хорошо работает.

1 голос
/ 15 апреля 2009

Я не думаю, что есть много Gotchas для этого подхода по сравнению с обычными проблемами запуска скрипта из скомпилированной программы. Я считаю, что самые большие проблемы, как правило,

  1. Запрещение людям перемещать сценарий
  2. Обеспечение того, чтобы люди не добавляли в скрипт скрытые зависимости, которые не отражаются в вызывающей программе.

Но я думаю, что вы должны рассмотреть другую модель для своего развития. Вместо того, чтобы программа ссылалась на скрипт, почему бы не добавить всю логику в скомпилированную библиотеку. Это может быть легко связано с программой и доступно для PowerShell через CmdLet. Я считаю, что это более простой способ поддерживать общий код между скриптами в программах.

...