Начало работы с коллекцией PowerShell

PowerShell Gallery — это репозиторий пакета, который содержит скрипты, модули и ресурсы DSC, которые вы можете загрузить и использовать. Командлеты из модуля PowerShellGet используются для установки пакетов из коллекции PowerShell. Входить в систему для скачивания элементов из коллекции PowerShell необязательно.

Примечание

Можно скачать пакет непосредственно из коллекции PowerShell, но делать это не рекомендуется. Дополнительные сведения см. в статье Скачивание пакета вручную.

Найти пакеты в коллекции PowerShell можно с помощью элемента управления Поиск на домашней странице коллекции PowerShell, или просмотрев страницы "Модули" и "Скрипты" на странице пакетов. Найти пакеты в коллекции PowerShell можно также при помощи командлетов Find-Module, Find-DscResource и Find-Script (в зависимости от типа пакета) с параметром -Repository PSGallery.

Вы можете отфильтровать результаты в коллекции используя следующие параметры:

  • Имя
  • AllVersions
  • MinimumVersion
  • RequiredVersion
  • Тег
  • Includes
  • DscResource
  • RoleCapability
  • Get-Help
  • Фильтр

Если вас интересуют только определенные ресурсы DSC в коллекции, выполните командлет Find-DscResource. Командлет Find-DscResource возвращает сведения о ресурсах DSC, содержащихся в коллекции. Так как ресурсы DSC всегда являются частью модуля, вам по-прежнему потребуется выполнить командлет Install-Module, чтобы установить их.

Когда вы нашли пакет, который вас интересует, о нем можно узнать больше. Для этого можно изучить страницу конкретного пакета в коллекции. На ней представлены все метаданные, переданные вместе с пакетом. Эти метаданные предоставляются автором пакета и не проверяются корпорацией Майкрософт. Владелец пакета привязан к учетной записи в коллекции, используемой для публикации пакета, поэтому надежнее ориентироваться на нее, а не на информацию в поле "Автор".

Если вы нашли пакет, который, по вашему мнению, опубликован с нарушениями, щелкните Сообщить о нарушении на странице этого пакета.

Если вы используете Find-Module или Find-Script, эти данные можно просмотреть в возвращенном объекте PSGetModuleInfo . В следующем примере возвращаются данные модуля PSReadLine в коллекции.

Find-Module -Name PSReadLine -Repository PSGallery | Get-Member

При скачивании пакетов из коллекции PowerShell рекомендуется сделать следующее:

Изучение

Чтобы скачать пакет из коллекции для изучения, выполните командлет Save-Module или Save-Script (в зависимости от типа пакета). Так вы сможете сохранить пакет локально без установки и проверить его содержимое. Не забудьте удалить пакет, сохраненный вручную.

Некоторые из этих пакетов созданы корпорацией Майкрософт, а другие — сообществом PowerShell. Корпорация Майкрософт рекомендует ознакомиться с содержимым и кодом пакетов в этой коллекции перед их установкой.

Если вы нашли пакет, который, по вашему мнению, опубликован с нарушениями, щелкните Сообщить о нарушении на странице этого пакета.

Установка

Чтобы установить пакет из коллекции для использования, выполните командлет Install-Module или Install-Script (в зависимости от типа пакета).

Командлет Install-Module устанавливает модуль в $env:ProgramFiles\WindowsPowerShell\Modules по умолчанию. Для выполнения этой операции необходима учетная запись администратора. При добавлении параметра -Scope CurrentUser модуль будет установлен в каталог $HOME\Documents\WindowsPowerShell\Modules.

Install-Script по умолчанию устанавливает скрипт в каталог $env:ProgramFiles\WindowsPowerShell\Scripts. Для выполнения этой операции необходима учетная запись администратора. При добавлении параметра -Scope CurrentUser скрипт будет установлен в каталог $HOME\Documents\WindowsPowerShell\Scripts.

По умолчанию командлеты Install-Module и Install-Script устанавливают последнюю версию пакета. Чтобы установить более раннюю версию пакета, добавьте параметр -RequiredVersion.

Развертывание

Чтобы развернуть пакет из коллекции PowerShell в службе автоматизации Azure, щелкните Служба автоматизации Azure, а затем Deploy to Azure Automation (Развернуть в службе автоматизации Azure) на странице сведений о пакете. После этого вы будете перенаправлены на портал управления Azure, на который нужно войти с использованием учетных данных учетной записи Azure. Обратите внимание, что развертывание пакетов с зависимостями приводит к развертыванию всех зависимостей в службе автоматизации Azure. Кнопку "Развернуть в службе автоматизации Azure" можно отключить, добавив тег AzureAutomationNotSupported в метаданные пакета.

Дополнительные сведения о службе автоматизации Azure см. в соответствующей документации.

Чтобы обновить пакеты, установленные из коллекции PowerShell, выполните командлет Update-Module или Update-Script. При запуске без дополнительных параметров Update-Module пытается обновить все модули, установленные командлетом Install-Module. Чтобы выборочно обновить модули, добавьте параметр -Name.

Аналогично при запуске без дополнительных параметров Update-Script пытается обновить все сценарии, установленные командлетом Install-Script. Чтобы выборочно обновить скрипты, добавьте параметр -Name.

Чтобы узнать, какие модули вы установили из коллекции PowerShell, выполните командлет Get-InstalledModule. Эта команда перечисляет все модули в системе, установленные непосредственно из коллекции PowerShell.

Аналогично, чтобы узнать, какие скрипты были установлены из коллекции PowerShell, выполните командлет Get-InstalledScript. Эта команда перечисляет все скрипты в системе, установленные непосредственно из коллекции PowerShell.

Эти имена узлов должны быть добавлены в списки разрешений, управляющие доступом из сети.

Узлы, необходимые для обнаружения пакетов и скачивания:

  • onegetcdn.azureedge.net — имя узла CDN;

Узлы, необходимые при использовании веб-сайта коллекции PowerShell:

  • devopsgallerystorage.blob.core.windows.net — имя узла учетной записи хранения;
  • *.powershellgallery.com — веб-сайт;
  • go.microsoft.com — служба перенаправления.

Важно!

Начиная с апреля 2020 года коллекция PowerShell не поддерживает протокол TLS (Transport Layer Security) версий 1.0 и 1.1. Если вы не используете TLS 1.2 или более поздней версии, при попытке доступа к коллекции PowerShell возникнет ошибка. Чтобы проверить, используется ли TLS 1.2, выполните следующую команду:

[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12

Дополнительные сведения см. в объявлении в блоге, посвященном PowerShell.