Назад | Перейти на главную страницу

Стандартизация на едином языке сценариев Windows

Я не совсем уверен, будет ли это лучше на StackOverflow или нет, не стесняйтесь перемещать его, если считаете, что там более уместно.

В любом случае, к вопросу ...

Ситуация
В настоящее время у нас есть смесь VBScript, пакетных файлов DOS и несколько сценариев PowerShell, выполняющих различные задачи в рамках бизнеса.

Задачи варьируются от выяснения того, кто вошел в систему на конкретном компьютере по IP, до довольно сложной обработки текста и запросов к базе данных (SQL Server 2005/2008).

VbScript на самом деле не лучший язык, хотя у него довольно хорошая поддержка отладки, PowerShell намного лучше, но (бесплатная) поддержка отладки довольно рудиментарна, и чем меньше сказано о пакетных файлах, тем лучше

Вопрос
Не желая начинать войну с пламенем (пожалуйста, только объективные комментарии!), Я хотел бы стандартизировать единый язык сценариев, требования: -

Мне были бы очень интересны ваши мысли / рекомендации

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

Если вы не ищете специфику wmi и dotnet, я считаю, что python - отличный инструмент для создания сценариев для всех платформ. он покрывает почти все ваши требования

в противном случае я полагаю, что Powershell - это правильный путь, хотя для этого требуется установка dotnet framework.

В качестве важного фактора в ответе я бы спросил, какой язык сценариев самый простой в развертывании в вашу среду. Рассмотрим следующие языки сценариев и инфраструктуру на базе Windows:

  • CMD (пакетные файлы): уже развернуты во всех системах, потому что навсегда встроены в Windows.
  • vbscript: Уже развернуто во всех системах, поскольку встроено в Windows с Win98.
  • PowerShell: Встроен в Windows 2008R2, Windows 7 и все, что связано с Exchange 2007, работающим на нем. Должен быть развернут во всех других системах, в которых предполагается запускать сценарии, но не к системам, которые вы будете запрашивать из скриптов, запущенных в другом месте. EG Powershell может работать в системе Win7 с именем hostA и запрашивать свойства hostB под управлением Windows XP, на которой не установлен Powershell.
  • Perl: должен быть развернут во всех системах, где будут выполняться скрипты.
  • Python: должен быть развернут во всех системах, в которых будут выполняться скрипты.

Итак, если я не хотел иметь дело с развертыванием одного из последних скриптовых движков во всех моих системах, я бы стандартизировал VBscript и / или CMD. Из двух vbscript далеко более мощный, хотя, как старый пакетный скриптер, у меня все еще есть слабость к CMD. Когда он может выполнять свою работу, обычно требуется гораздо меньше набора текста! Но если бы мне пришлось выбирать, это был бы vbscript для удобочитаемости и гибкости. vbscript IDE, например PrimalScript просто Google далеко.

Если бы у меня была возможность создать совершенно новую среду, в которой все системы работают под Win2008R2 и Win7, я бы стандартизировал PowerShell.

Мне не нравится ISE, но я избалован Visual Studio IDE для других разработок. Некоторым нравится бесплатная замена PowerGUI: http://www.powergui.org. Похоже, он имеет функциональность, подобную Intellisense.

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

Мы использовали VBScript в течение многих лет и только недавно начали изучать PowerShell (V2). VBScript имеет свои недостатки, но он хорошо нам послужил, поэтому я не вижу причин отказываться от наших прошлых вложений в него. С другой стороны, PowerShell должен стать стандартом языка сценариев Windows, и его поддержка, несомненно, улучшится. Итак, в ближайшие пару лет это будет смешанная среда сценариев.

Кстати, когда я смотрю на ваш список требований, PowerShell легко выполняет все, кроме того, что касается поддержки отладки и одного об управлении исключениями (но обработка ошибок VBScript тоже не очень хороша). Кроме того, одним большим преимуществом PowerShell перед VBScript является доступ к .Net Framework.

Я бы использовал Visual C # 2005 или 2008 Express. Он отвечает всем вашим требованиям, экспресс-версии Visual Studio бесплатны (как в пиве), .NET Framework (особенно если вы выберете 2005), скорее всего, уже на ваших серверах, и это позволяет вам использовать некоторые из ваших существующих разработок. навыки для действительно необычных вещей.

Конечно, это не совсем «скриптинг» как таковой, но я лично считаю, что добавление (необязательное) элементов графического интерфейса может быть полезным для других задач.