Лучший способ сохранить имена оснасток powershell для использования приложением c # для последующего использования - PullRequest
1 голос
/ 19 июля 2009

У меня есть приложение на c #, которое выполняет правила в зависимости от ввода. Некоторые из правил должны выполнять скрипт Poweshell. Я бы предположил, что некоторые из сценариев, как, возможно, написанный пользователем, нуждаются в оснастке, чтобы быть доступными, прежде чем они смогут работать правильно.

Я знаю, что могу добавить оснастку, сделав что-то вроде этого.

RunspaceConfiguration config = RunspaceConfiguration.Create (); PSSnapInException предупреждение; config.AddPSSnapIn («Microsoft.Exchange.Management.PowerShell.Admin», предупреждение вне); if (warning! = null) {... вывести предупреждение; }

Я также знаю, что метаданные оснастки могут храниться в консольном файле powershell .psc1, если это было настроено использованием. Я могу загрузить это. Но что, если у пользователя нет консольного файла, и он хочет использовать только одну оснастку из IIS или Exchange, или, возможно, из настраиваемой оснастки.

Каков наилучший способ хранения определения. Могу ли я сохранить его в app.config. Скажем, сценарию нужно «WebAdministration», которое является именем оснастки IIS 7. Могу ли я просто сохранить это в ключе в app.config. Я прочитал бы и загрузил, как указано выше.

Есть что-то, чего я здесь не хватает Любая помощь будет оценена. Благодарю. Боб.

1 Ответ

2 голосов
/ 20 июля 2009

Используя ваш пример веб-администрирования, пользователь должен объявить это как требование в самом скрипте (который вы можете разобрать позже)

#requires -pssnapin WebAdministration
$foo = get-web

http://technet.microsoft.com/en-us/library/dd315380.aspx

...