Моя команда создает локальное приложение, которое работает на Windows, Mac и Linux.

Приложение содержит каталог bin со сценариями запуска приложения.

bin
  startup.sh (for linux/mac)
  startup.cmd (for windows)

Моя команда считает, что поддерживать старый код CMD старой школы утомительно, и не без причины. Я бы хотел перевести нашу команду на powershell вместо cmd.

bin
  startup.sh
  startup.ps1

Однако я не решаюсь сделать это, потому что я не вижу, чтобы многие другие программные приложения упаковывали свои вещи, как это.

Это из-за безопасности ps1 , когда нужно разрешить выполнение файлов ps1 или нет? Почему PowerShell не используется для этой цели чаще?

1 ответ1

1
Why isn't powershell used for this purpose more often?

В вашем случае "эта цель" означает необходимость предоставления установщика для "кроссплатформенного приложения", такого как Java, Python и т.д. ....

На этот вопрос нельзя ответить напрямую, но я думаю, что когда команда создает "кроссплатформенные" решения, большинство членов команды - это пользователи Linux / Unix, которые не любят Microsoft и, возможно, даже Apple.

Проблема в том, что когда дело доходит до крупных установок (корпоративных) клиентов, Microsoft / Windows - единственный путь из-за существования "активного каталога".

My team finds maintaining the old-school CMD code tedious, for good reason. I'd like to move our team to powershell instead of cmd.

Эта "веская причина" просто означает, что не все члены вашей команды являются экспертами в "пакетном языке Windows" - но со сценарием оболочки они в порядке - оба языка утомительны в обслуживании. Они также могут жаловаться на сценарий оболочки и заставить вас задуматься о переходе на python.

Powershell - это язык сценариев, сравнимый с Scala для Java. Использовать PowerShell могут только администраторы с навыками программирования, но, с другой стороны, программисты с навыками администратора уже используют csharp. Я считаю, что это причина отсутствия использования PowerShell

Задача "установки" всегда требует очень глубокого понимания ОС. Моя рекомендация по интеграции в Windows заключается в том, что вы должны обучить 2 члена команды некоторым курсам Microsoft: MCSE или MCSA.

И последнее, но не менее важное, из моего личного опыта, единственная проблема, переходящая с .bat на .ps1, заключается в том, что вам нужно позаботиться о политике выполнения и подписании. На крупных предприятиях необходимо запросить изменение политики разрешений по умолчанию в активном каталоге, что может занять месяцы. Пакет всегда работает.

[Очень показательный пример - приложение "компас" в официальном установщике "mongodb". В ОС <2012 (например, win7) он просто зависает из-за политики выполнения ps1 по умолчанию "ничего не запускать"]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .