Поделиться через


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

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

Заметка

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

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

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

  • Имя
  • AllVersions
  • MinimumVersion
  • RequiredVersion
  • Ярлык
  • Включает
  • DscResource
  • RoleCapability
  • Команда
  • Фильтр

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

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

Если вы обнаружите, что пакет, который вы чувствуете, не опубликован в хорошем порядке, щелкните сообщить о злоупотреблении на странице этого пакета.

Если вы используете 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, а затем щелкните Развернуть в службе автоматизации Azure на странице сведений о пакете. Вы перенаправляетесь на портал управления Azure, где выполняется вход с помощью учетных данных учетной записи Azure. Обратите внимание, что развертывание пакетов с зависимостями развертывает все зависимости в службе автоматизации Azure. Кнопка "Развернуть в службе автоматизации Azure" может быть отключена, добавив тег AzureAutomationNotSupported в метаданные пакета.

Дополнительные сведения об службе автоматизации Azure см. в документации по службы автоматизации 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
  • powershellgallery.azureedge.net
  • psg-prod-eastus.azureedge.net

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

  • *.powershellgallery.com — веб-сайт
  • go.microsoft.com и aka.ms — службы перенаправления

Важный

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

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

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