В PowerShell, начиная с версии 5.1 встроен модуль PowerShellGet.
Это Package Manager( или менеджер пакетов), позволяющий устанавливать модули из подключенного по умолчанию репозитория PSGallery.
Заметка поможет добавить этот модуль в более раннюю версию, например PowerShell 4.
Скачиваем модуль
Для загрузки модуля нам понадобится другой компьютер с версией PowerShell, не меньше чем 5.1.
# Сохраняем модуль в папку, вместе с его зависимостями Save-Module -LiteralPath "C:\TempModules\" -Name "PowerShellGet" -Repository "PSGallery" -MinimumVersion 2.0
Или же можно скачать с GitHub
Выясняем где хранятся модули PowerShell
$env:PSModulePath -split ';'
Переносим модуль на целевой компьютер, в папку с модулями
В PowerShell 5.1, внутри папки с модулем, имеется папка с названием версии модуля, и сами файлы хранятся уже в ней.
Для версии 4 файлы необходимо перенести в корень папки с именем модуля
Import-Module -Name PackageManagement Import-Module -Name PowerShellGet
Командлеты, для работы которых необходимо обращение к репозиторию (Save\Find\Install-Module), пока что не будут работать
Подключаем репозиторий
Register-PSRepository -Default
Готово! После этого можно использовать возможности модуля PowerShellGet
Добавление стороннего репозитория
Так же, при желании, можно подключить дополнительно сторонний репозиторий
# Добавляем провайдера Install-PackageProvider -Name Chocolatey # Проверяем Get-PackageSource
После этого можно устанавливать программы, которые разработчики разместили в репозитории
# Посмотреть все доступные пакеты Find-Package * -ProviderName chocolatey # Установить Notepad++ последней версии Find-Package notepadplusplus | Install-Package
Программы, при выполнении командлета Install-Package, будут установлены в тихом режиме в стандартное расположение, и дополнительно установочные файлы программ и их зависимости будут сохранены в папке C:\Chocolatey
При их удалении программа сохраняется
Про ошибку при обновлении Powershell версии 4 до 5.1 я написал в следующей статье