Мое приложение зависит от версии PowerShell 5. Но в некоторых старых системах Windows не установлена та же версия, в которой выполняется наше приложение. Итак, есть ли способ запустить автономную оболочку PowerShell, которую я поместил в папку своего приложения. Так что мое приложение не зависит от системной PowerShell.
Вы пробовали использовать Ядро PowerShell? Он действительно «переносимый», но это не Windows PowerShell версии 5.
Нет. У вас не может быть портативный версии Windows PowerShell для вашего приложения.
Вы также не сможете установить более новую версию в более старой операционной системе; например, вы не можете установить PowerShell версии 5 в Windows XP.
Версии Windows Powershell зависят от многих вещей, таких как OS Version
, Microsoft .NET Framework
, Windows Management Framework
, WS-Management
, Windows Management Instrumentation
, Common Language Runtime
, Graphical User Interface Requirements
.
Вот ссылка с информацией о версиях Windows PowerShell и их требованиях.
Я бы сказал, что будет лучше, если вы создадите свое приложение так, чтобы оно было совместимо с самой старой из возможных версий PowerShell, с которой оно будет работать. Это может быть сложно и сложно, но это единственный способ обеспечить надлежащую обратную совместимость.
Ваш ответ не является неправильным, но, похоже, ваш ответ не учитывает PowerShell Core.
Заявление об ограничении ответственности: Мы не знаем ваше приложение и не знаем, почему именно оно зависит от PowerShell. Далее мы не знаем, зависит ли это от Windows PowerShell или от PowerShell в целом. Мы также не знаем, требует ли он конкретно версии 5 или будет работать и в более новых версиях.
Чтобы ответить на суть вашего вопроса:
So is there any way to run standalone PowerShell which I put in my application folder.
Microsoft представила Ядро PowerShell, который начинался как форк и представляет собой кроссплатформенную версию, работающую в Windows, macOS и основных дистрибутивах Linux. Вы можете скачать бинарные архивы PowerShell из GitHub, распаковать их и просто запустить pwsh.exe
.
Хотя он предоставляет огромное количество хорошо известных командлетов PowerShell и некоторые (большую часть) поведения Windows PowerShell, важно понимать разницу между PowerShell Core и Windows PowerShell. Обратитесь к README репозитория для получения дополнительных ресурсов.
Обратите внимание, что они могут использовать не PowerShell как оболочку, а PowerShell как технологию автоматизации, размещенную в приложении, и в этом случае pwsh.exe
не имеет значения.
Спасибо за примечание. Я просто «предположил», что приложение состоит из каких-то файлов ps1. ОП особо не сказал об этом.
Спасибо, @Clijsters работает. Но команда Get-Counter не работает. Итак, любые решения для запуска этой команды в ядре Powershell.
Короче - нет. У вас не может быть «портативной» оболочки PowerShell.