В любом случае проверять правильность сценария powershell, не выполняя его. Я знаю, что вы можете сделать что-то подобное в Unix, но не можете найти эквивалент для powershell.
По сути, у меня есть хранилище скриптов, где каждый скрипт связан с правилом. Если правило запускается, скрипт выполняется, но я должен быть уверен, что скрипт действителен, прежде чем поместить его в хранилище.
Спасибо.
Привет,
Ну, к сожалению, команды -whatif недостаточно. Это синтаксис сценариев, которые я хочу проверить из движка C #, который запускает скрипт, если запускается правило движка. Прежде чем сценарий запускается, я записываю в него значения IList из правила, а затем запускаю его. Но я должен убедиться, что это синтаксически правильно, в противном случае мне придется полагаться на автора правил, чтобы убедиться, что они правильные, что я не могу сделать, так как многие люди будут писать правила, только один сценарий Дафф принесет двигатель не работает Я не могу этого сделать, так как двигатель - продукт класса enterpise, рассчитанный на время безотказной работы на шесть сигм.
Я думаю, что способ сделать это - использовать это, это v2 lib.
http://msdn.microsoft.com/en-us/library/system.management.automation.parseexception(VS.85).aspx
Я думаю, что есть способ создать ScriptBlock и поместить в него попытку, чтобы поймать ParseException. Может кто-нибудь сказать мне, как это сделать. Это становится реальной проблемой.
Спасибо.
Эй,
Я поговорил с парнем из MS (он - sharepoint pm), и он поговорил с одним из парней PowerShell, и он сообщил мне, что в PowerShell v1 нет реального способа проверить синтаксис сценария без выполнения. Так что я думаю, что флаг -whatif самый близкий, но это не статическая проверка, к сожалению. Хорошая новость заключается в том, что в v2 есть способ токенизации входного потока через класс Automation.PsParser, член Tokenize. Это токенизирует скрипт в соответствии с граммами PS, так что, если он выпадет, это скрипт дерьма. Вопрос v2 пока не имеет даты релиза.
Спасибо за помощь.
Боб.