Как пользоваться PackageManagement (OneGet) в Windows 10
Быстрые ссылки
- Что такое PackageManagement / OneGet?
- Как использовать PackageManagement / OneGet
- Примеры команд и шаблоны
- Когда не стоит использовать
- Альтернативы и миграция
Что такое PackageManagement / OneGet?
Краткое определение: PackageManagement — это уровень абстракции для управления пакетами в PowerShell. Он объединяет разные модели установки ПО через провайдеры и стандартизированные cmdlet’ы.
Одним предложением: фреймворк, который управляет «провайдерами пакетов» и «источниками пакетов», но не является хранилищем пакетов.
Контекст: PackageManagement интегрирован в Windows через Windows Management Framework (WMF) 5.0 и присутствует в Windows 10. Ранее проект назывался OneGet; в релизе он переименован в PackageManagement.
Важно: Microsoft не хостит собственные репозитории для PackageManagement. Интеграция с Chocolatey была экспериментальной и впоследствии уменьшена. PackageManagement служит инструментом для системных администраторов и скриптов автоматизации.
Основная идея и модель работы
Ментальная модель: представьте PackageManagement как диспетчера провайдеров. Провайдеры знают, как работать с конкретной системой пакетов (NuGet, MSI-репозитории, локальные каталоги и т.п.). PackageManagement вызывает провайдеры через единый интерфейс cmdlet’ов.
Ключевые сущности:
- Провайдер (Package Provider) — адаптер для конкретного формата или репозитория.
- Источник (Package Source) — URL или путь, где лежат пакеты.
- Пакет — сам программный артефакт (разные форматы поддерживаются через провайдер).
Когда работает: вы регистрируете провайдер и (при необходимости) источник. Затем используете единые команды для поиска, установки и удаления.
Мини‑методология: быстрый план действий
- Запустите PowerShell от имени администратора, если нужно установить системное ПО.
- Получите список доступных модулей PackageManagement:
Get-Command -Module PackageManagement- Просмотрите доступные провайдеры и источники:
Get-PackageProvider
Get-PackageSource- Зарегистрируйте источник (если требуется):
Register-PackageSource -Name "MyRepo" -ProviderName "NuGet" -Location "https://example.com/nuget" -Trusted- Выполните поиск и установку:
Find-Package -ProviderName NuGet -Name "mypackage"
Install-Package -Name "mypackage" -ProviderName NuGet- Для удаления:
Uninstall-Package -Name "mypackage" -ProviderName NuGet- При необходимости удалите источник:
Unregister-PackageSource -Name "MyRepo"Примечание: синтаксис и параметры могут отличаться в зависимости от провайдера. Провайдеры реализуют детали работы с конкретными репозиториями.
Практические примеры и шаблоны
Пример 1 — базовый просмотр команд модуля:
Get-Command -Module PackageManagementПример 2 — найти пакет с любого зарегистрированного источника:
Find-Package -Name "git"Пример 3 — установка пакета:
Install-Package -Name "git" -ProviderName Chocolatey(Если провайдера Chocolatey нет, команда вернёт, что провайдер не найден.)
Шаблон регистрации источника (обобщённый):
Register-PackageSource -Name "ИмяИсточника" -ProviderName "ИмяПровайдера" -Location "URL_или_путь" [-Trusted]Короткая шпаргалка (cheat sheet):
- Get-PackageProvider — показать провайдеры
- Get-PackageSource — показать источники
- Register-PackageSource — добавить источник
- Unregister-PackageSource — удалить источник
- Find-Package — найти пакет
- Install-Package — установить пакет
- Uninstall-Package — удалить пакет
Совместимость и требования
- Windows: PackageManagement доступен в Windows 10 и через WMF 5.0 на других версиях Windows.
- Права: для установки системного ПО часто требуются права администратора.
- Провайдеры: функциональность зависит от установленных провайдеров; по умолчанию набор провайдеров может быть ограничен.
Факт-бокс: ключевые элементы
- Проект: OneGet → PackageManagement
- Входит в: Windows Management Framework 5.0
- Основная цель: единый API для разных систем управления пакетами
Провайдеры и источники: что нужно знать
Провайдер отвечает за взаимодействие с конкретным типом репозитория. Примеры провайдеров (типовые функции):
- NuGet — пакеты .NET/NuGet-репозитории
- PowerShellGet — модули PowerShell
- Chocolatey — (экспериментально) настольные приложения через Chocolatey (в ранних версиях)
Источники привязываются к провайдеру. Источник содержит URL или путь, который провайдер использует для поиска пакетов.
Как добавить провайдера: провайдер обычно представляет собой модуль PowerShell, который нужно установить или импортировать. Затем он появляется в списке Get-PackageProvider.
Когда PackageManagement не подходит (контрпримеры)
- Для обычного пользователя, который просто хочет установить одно приложение — проще использовать установщик, Microsoft Store, winget или Chocolatey напрямую.
- Для корпоративного софта с тонкой политикой конфигурации SCCM/Intune даёт более глубокую интеграцию, чем PackageManagement.
- Если провайдер отсутствует для нужного формата пакета — PackageManagement бесполезен до появления провайдера.
Альтернативы и сценарии миграции
- winget (Windows Package Manager) — современный менеджер пакетов от Microsoft, ориентированный на настольные приложения.
- Chocolatey — популярный менеджер пакетов для Windows с собственной экосистемой и репозиториями.
- MSIX и Microsoft Store — для распространения универсальных приложений.
- SCCM/Intune — корпоративное развёртывание и управление ПО.
Если вы автоматически настраиваете ПК и хотите контролировать набор приложений — сравните: winget и Chocolatey предоставляют готовые репозитории и простые команды; PackageManagement полезен, если вам нужна абстракция над несколькими системами одновременно.
Роль‑ориентированные чеклисты
Для системного администратора:
- Проверить версию WMF/PowerShell
- Получить список провайдеров: Get-PackageProvider
- Настроить доверенные внутренние репозитории
- Автоматизировать установку через скрипты PowerShell
- Тестировать установку и удаление на контрольной машине
Для разработчика/гика:
- Использовать Find-Package для поиска нужных утилит
- При необходимости настроить локальный NuGet/архив
- Использовать Install-Package в скриптах CI для установки зависимостей
Критерии приёмки
- Источники зарегистрированы и видимы в Get-PackageSource
- Пакет найден через Find-Package
- Install-Package успешно устанавливает пакет в ожидаемое место
- Uninstall-Package корректно удаляет пакет
- Скрипт работает в неинтерактивном режиме (CI/automation)
Примеры ошибок и как их решать
Сценарий: Find-Package ничего не возвращает
- Проверьте Get-PackageSource — возможно, источник не зарегистрирован.
- Проверьте Get-PackageProvider — возможно, нужный провайдер не установлен.
Сценарий: Install-Package требует прав администратора
- Запустите PowerShell от администратора или используйте соответствующие привилегии.
Сценарий: провайдер не найден для типа пакета
- Найдите или установите провайдер, который поддерживает нужный формат.
Диаграмма принятия решения
flowchart TD
A[Нужно установить ПО?] --> B{Уровень пользователя}
B -- Обычный пользователь --> C[Использовать Microsoft Store или winget]
B -- Администратор/CI --> D{Есть поддерживаемый провайдер?}
D -- Да --> E[Зарегистрировать источник, Find-Package, Install-Package]
D -- Нет --> F[Установить провайдер или использовать альтернативы]
F --> G[Chocolatey/SCCM/Intune/manual]Советы по безопасности и приватности
- Доверяйте только проверенным источникам. Используйте параметр -Trusted при регистрации, если вы уверены в источнике.
- Проверяйте цифровые подписи пакетов при возможности.
- В корпоративной среде интегрируйте PackageManagement с системами управления конфигурацией и политиками безопасности.
FAQ
Q: Можно ли через PackageManagement установить приложения из Microsoft Store? A: Нет. PackageManagement не даёт доступа к Microsoft Store в релизной версии.
Q: Нужно ли иметь интернет для работы с PackageManagement? A: Для удалённых источников требуется доступ по сети. Локальные каталоги можно использовать офлайн.
Q: Как получить старое поведение с Chocolatey? A: Ранние интеграции с Chocolatey были экспериментальными. Лучший путь — использовать Chocolatey напрямую, если вы полагаетесь на его репозиторий.
Краткое резюме
PackageManagement — это мощный инструмент для объединения разных систем управления пакетами через единый набор cmdlet’ов PowerShell. Для конечных пользователей чаще подходят специализированные менеджеры вроде winget или Chocolatey. Администраторам же PackageManagement даёт гибкую платформу для автоматизации и управления источниками пакетов.
Важно: правильно выбирайте провайдеры и управляйте доверенными источниками — это основа безопасной работы.



Если нужно, могу подготовить готовый скрипт для автоматической регистрации источников и установки набора программ для вашей организации или CI‑pipeline.
Похожие материалы
Создать загрузочную USB с Windows 11
Программный RAID в Windows 7 — как создать спан-том
Как вставить календарь в PowerPoint
Отключить предложения Check In в iMessage
Выровнять ресиновый 3D‑принтер — пошагово