Why isn't powershell used for this purpose more often?
в вашем случае "эта цель" означает необходимость предоставления установщика для "кросс-платформенного приложения", такого как java, python и т. д... приложение.
на вопрос нельзя ответить напрямую, но я лучше всего предполагаю, что, когда команда строит "кросс-платформенные" решения, большинство членов команды-это ребята linux/unix, которые не любят microsoft и, возможно, даже apple.
проблема в том, что, когда он добирается до больших установок (enterprise) из клиентов, microsoft / windows является единственным способом пойти из-за существования "active directory".
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", но с shell script они являются O. K. - оба языка утомительны для поддержания. Они также могут пожаловаться на скрипт оболочки и заставить вас задуматься о переходе на python.
Powershell-это язык сценариев, совместимый со scala для java. Только администраторы с навыками программирования можно использовать powershell, но с другой стороны, программисты с навыками администратора уже используют csharp. Я считаю, что это причина отсутствия использования powershell
задача "установка" всегда требует очень глубокого понимания ОС. Моя рекомендация для интеграции в windows заключается в том, что вы обучаете 2 членов команды некоторым курсам microsoft: MCSE или MCSA.
и последнее, но не менее важное: из моего личного опыта единственная проблема меняется с .летучая мышь .ps1 является то, что вам нужно заботиться о политике выполнения и подписания. На крупных предприятиях необходимо запросить изменение политики разрешений по умолчанию в active directory, что может занять несколько месяцев. Партия всегда работает.
[очень ярким примером является приложение "Компас" в официальном установщике "mongodb". На OS <2012 (например, win7) он просто зависает из-за политики выполнения ps1 по умолчанию "ничего не запускать"]