Как пользоваться PackageManagement в PowerShell в Windows 10

Разработчики включили в PowerShell новый модуль PackageManagement в Windows 10. PackageManagement (ранее называвшийся OneGet) позволяет устанавливать, управлять и удалять приложения и программы из внешнего (или локального) репозитория, а также управлять списком подключённых репозиториев из консоли PoSh. Другими словами, теперь вы можете устанавливать программы из командной строки в Windows 10/Windows Server 2016, как это делается в Linux, с помощью известной команды apt-get install.

Модуль PackageManagement упрощает установку нового программного обеспечения. Установка сводится к запуску одной команды PowerShell, и пользователю не нужно искать и загружать установочные файлы программного обеспечения в Интернете, что снижает риск загрузки устаревших или заражённых программ. Программное обеспечение устанавливается из надёжного источника. Когда программное обеспечение обновляется в репозитории, оно может автоматически обновляться на клиентах.

Модуль PackageManagement

Модуль PackageManagement уже интегрирован в Windows 10, и для него требуется PowerShell 5 и выше. Чтобы PackageManagement работал под Windows 8.1, сначала необходимо установить Windows Management Framework 5.0. Microsoft также выпустила отдельный модуль PackageManagement для работы в PowerShell v.3 и 4.

Посмотрим список доступных командлетов PowerShell в модуле PackageManagement:

Get-Command -Module PackageManagement

В текущей версии модуля (v 1.4.7) доступны следующие команды:

  • Find-Package — поиск пакета (программы) в доступных репозиториях
  • Find-PackageProvider — поиск провайдеров распространения пакетов
  • Get-Package — показывает список установленных пакетов
  • Get-PackageProvider — выводит список поставщиков пакетов, доступных на компьютере
  • Get-PackageSource — выводит список доступных источников пакетов
  • Import-PackageProvider — добавляет поставщиков пакетов управления пакетами в текущий сеанс
  • Install-Package — устанавливает пакет (программу) на компьютер
  • Install-PackageProvider — устанавливает одного или нескольких поставщиков пакетов управления пакетами.
  • Register-PackageSource — добавляет источник пакета для поставщика
  • Save-Package — сохраняет пакет локально, не устанавливая его
  • Set-PackageSource — устанавливает поставщика в качестве источника пакета
  • Uninstall-Package — удаляет программу (пакет)
  • Unregister-PackageSource — удаляет провайдера из списка источников пакетов

Поставщики пакетов

Пакеты обслуживаются разными поставщиками, которые могут получать пакеты из разных источников. Чтобы отобразить список доступных поставщиков, выполните эту команду:

Find-PackageProvider

По умолчанию в системе установлено два источника пакетов: NuGet (nuget.org) и PowerShellGet (официальная онлайн-галерея скриптов PowerShell от MSFT). В первую очередь они рассчитаны на программистов и системных администраторов.

Примечание. В Nano Server есть специальный провайдер NanoServerPackage, о котором пойдёт речь в следующей статье.

Чтобы получить доступ к репозиторию прикладного программного обеспечения, давайте подключим популярный репозиторий программного обеспечения — Chocolatey, содержащий более 4500 различных программ.

Установите нового провайдера, Chocolatey:

Install-PackageProvider ChocolateyGet

Обратите внимание, что PowerShell (или Windows Terminal) нужно запускать с правами администратора. Как это сделать смотрите в статье «Как запустить PowerShell с правами администратора».

Если вы получили следующее сообщение об ошибке, то это означает, что PowerShell запущен без прав администратора:

Install-PackageProvider: Administrator rights are required to install packages in ''. Log on to the computer with an account that has Administrator rights, and then try again, or install in 'C:\Users\MiAl\AppData\Local\PackageManagement\ProviderAssemblies' by adding "-Scope CurrentUser" to your command. You can also try running the Windows PowerShell session with elevated rights (Run as Administrator).

Подтвердите установку провайдера, нажав Y.

Сделайте Chocolatey надёжным источником пакетов, чтобы каждый раз не подтверждать установку пакета из этого репозитория.

Set-PackageSource -Name chocolatey -Trusted

Убедитесь, что Chocolatey теперь доступен среди репозиториев приложений:

Get-PackageSource

Установка приложений из репозитория Chocolatey

Давайте посмотрим, как установить приложение (пакет) от Chocolatey.

Список доступных приложений можно получить прямо на официальном сайте Chocolatey (https://chocolatey.org/packages).

Вы также можете найти и установить приложения прямо из консоли PowerShell. Например, для просмотра файлов PDF необходимо установить Adobe Acrobat Reader. Поскольку мы не знаем полного имени приложения, нам нужно было получить имя пакета в каталоге для его установки. Выполните поиск в репозитории по ключевому слову «adobe»:

Find-Package -Name *adobe* -Source Chocolatey

Список всех пакетов, содержащих это ключевое слово, появится в консоли. Нам нужен adobereader (это имя пакета из столбца Name, которое нам нужно использовать).

Запустите установку пакета Adobe Reader:

Install-Package -Name adobereader -ProviderName ChocolateyGet

В верхней части окна PowerShell появится ползунок, указывающий, что пакет Adobe Reader загружается. Сразу после завершения загрузки приложение устанавливается в системе.

Другой пример. Допустим, вам нужен набор инструментов SysInternals. Чтобы не загружать его вручную, найдите в Chocolatey пакет SysInternals и установите его.

Find-Package -Name Sysinternals | Install-Package

Смотрите также: Что такое инструменты SysInternals и как их использовать?

Поскольку пакет не требует установки, он сохраняется на вашем компьютере и хранится в папке C:\ProgramData\chocolatey\bin\.

Вы можете установить несколько приложений одновременно, используя одну команду:

Find-Package -Name firefox, 7zip, notepadplusplus, putty, dropbox | Install-Package

Как удалить пакет

Вы также можете удалить пакет, используя всего одну команду. Например, чтобы удалить Adobe Reader, выполните эту команду:

Uninstall-Package adobereader

Итак, мы рассмотрели новые способы установки приложений Windows из командной строки PowerShell. В ближайшее время могут появиться графические надстройки для PackageManagement, которые позволят легко управлять установкой/удалением программного обеспечения для обычных пользователей без навыков работы с интерфейсом командной строки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *