PowerShell ギャラリーの概要

PowerShell ギャラリーは、ダウンロードして利用できるスクリプト、モジュール、DSC リソースが含まれるパッケージ リポジトリです。 PowerShell ギャラリーからパッケージをインストールするには、PowerShellGet モジュールのコマンドレットを使います。 PowerShell ギャラリーから項目をダウンロードするためにサインインする必要はありません。

注意

PowerShell ギャラリーから直接パッケージをダウンロードすることもできますが、この方法はお勧めできません。 詳細については、「パッケージの手動ダウンロード」を参照してください。

PowerShell ギャラリーのホーム ページ[検索] コントロールを使用して、または [パッケージ] ページからモジュールとスクリプトを参照することによって、PowerShell ギャラリー内のパッケージを検索できます。 また、Find-ModuleFind-DscResourceFind-Script コマンドレットを、パッケージの種類に応じて -Repository PSGallery を指定して実行すると、PowerShell ギャラリーからパッケージを検索できます。

次のパラメーターを使用して、ギャラリーからの結果をフィルター処理できます。

  • 名前
  • AllVersions
  • MinimumVersion
  • RequiredVersion
  • タグ
  • Includes
  • DscResource
  • RoleCapability
  • コマンド
  • Assert

ギャラリー内の特定の DSC リソースのみを検出したい場合は、Find-DscResource コマンドレットを実行します。 Find-DscResource では、ギャラリーに含まれている DSC リソースのデータが返されます。 DSC リソースは常にモジュールの一部として配布されるため、この DSC リソースをインストールする場合も Install-Module を実行する必要があります。

関心のあるパッケージを特定できたら、その詳細を入手することができます。 これは、ギャラリー上でパッケージの特定のページを調べると見つかります。 そのページでは、そのパッケージと共にアップロードされているメタデータをすべて参照することができます。 このメタデータはパッケージの作成者が提供するものであり、Microsoft で検証したものではありません。 パッケージの所有者は、パッケージの公開に使用したギャラリーのアカウントと厳密に関連付けられており、[作成者] フィールドよりも信頼性があります。

誠意をもって公開されていると思われないパッケージが見つかった場合は、そのパッケージのページの [不正使用を報告] をクリックします。

Find-Module または Find-Script を実行している場合、返される PSGetModuleInfo オブジェクトにこのデータが表示されます。 以下の例では、ギャラリーの PSReadLine モジュールのデータが返されます。

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

PowerShell ギャラリーからパッケージをダウンロードするとき、次のプロセスをお勧めします。

検査

検査のためにギャラリーからパッケージをダウンロードするには、パッケージの種類に応じて Save-Module または Save-Script コマンドレットを実行します。 これにより、パッケージをインストールすることなくローカルに保存し、パッケージの内容を検査することができます。 保存したパッケージは必ず手動で削除してください。

このパッケージの一部は Microsoft によって作成されており、その他は 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 Automation にデプロイするには、[Azure Automation] をクリックした後、パッケージの詳細ページで [Deploy to Azure Automation]\(Azure Automation にデプロイする\) をクリックします。 Azure 管理ポータルにリダイレクトされるので、そこで Azure アカウントの資格情報を使ってサインインします。 依存関係のあるパッケージをデプロイすると、すべての依存関係が Azure Automation にデプロイされることに注意してください。 [Azure Automation にデプロイする] ボタンは、AzureAutomationNotSupported タグをパッケージのメタデータに追加すると無効にできます。

Azure Automation の詳細については、Azure Automation のドキュメントをご覧ください。

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 ギャラリー Web サイトを使用する場合に必要なホスト:

  • devopsgallerystorage.blob.core.windows.net - ストレージ アカウントのホスト名
  • *.powershellgallery.com - Web サイト
  • go.microsoft.com - リダイレクト サービス

重要

2020 年 4 月時点で、PowerShell ギャラリーでは、トランスポート層セキュリティ (TLS) バージョン 1.0 および 1.1 がサポートされなくなります。 TLS 1.2 以降を使用していない場合、PowerShell ギャラリーにアクセスしようとするとエラーが発生します。 次のコマンドを使用して、確実に TLS 1.2 を使用するようにします。

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

詳細については、PowerShell ブログのお知らせを参照してください。