PowerShell ギャラリーの概要
PowerShell ギャラリーは、ダウンロードして利用できるスクリプト、モジュール、DSC リソースが含まれるパッケージ リポジトリです。 PowerShell ギャラリーからパッケージをインストールするには、PowerShellGet モジュールのコマンドレットを使います。 PowerShell ギャラリーから項目をダウンロードするためにサインインする必要はありません。
注意
PowerShell ギャラリーから直接パッケージをダウンロードすることもできますが、この方法はお勧めできません。 詳細については、「パッケージの手動ダウンロード」を参照してください。
PowerShell ギャラリーでのパッケージの検出
PowerShell ギャラリーのホーム ページの [検索] コントロールを使用して、または [パッケージ] ページからモジュールとスクリプトを参照することによって、PowerShell ギャラリー内のパッケージを検索できます。 また、Find-Module
、Find-DscResource
、Find-Script
コマンドレットを、パッケージの種類に応じて -Repository PSGallery
を指定して実行すると、PowerShell ギャラリーからパッケージを検索できます。
次のパラメーターを使用して、ギャラリーからの結果をフィルター処理できます。
- 名前
- AllVersions
- MinimumVersion
- RequiredVersion
- タグ
- Includes
- DscResource
- RoleCapability
- コマンド
- Assert
ギャラリー内の特定の DSC リソースのみを検出したい場合は、Find-DscResource
コマンドレットを実行します。 Find-DscResource では、ギャラリーに含まれている DSC リソースのデータが返されます。
DSC リソースは常にモジュールの一部として配布されるため、この DSC リソースをインストールする場合も Install-Module
を実行する必要があります。
PowerShell ギャラリーのパッケージの詳細
関心のあるパッケージを特定できたら、その詳細を入手することができます。 これは、ギャラリー上でパッケージの特定のページを調べると見つかります。 そのページでは、そのパッケージと共にアップロードされているメタデータをすべて参照することができます。 このメタデータはパッケージの作成者が提供するものであり、Microsoft で検証したものではありません。 パッケージの所有者は、パッケージの公開に使用したギャラリーのアカウントと厳密に関連付けられており、[作成者] フィールドよりも信頼性があります。
誠意をもって公開されていると思われないパッケージが見つかった場合は、そのパッケージのページの [不正使用を報告] をクリックします。
Find-Module
または Find-Script
を実行している場合、返される PSGetModuleInfo オブジェクトにこのデータが表示されます。 以下の例では、ギャラリーの PSReadLine モジュールのデータが返されます。
Find-Module -Name PSReadLine -Repository PSGallery | Get-Member
PowerShell ギャラリーでのパッケージのダウンロード
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 ギャラリーからのパッケージの更新
PowerShell ギャラリーからインストールされたパッケージを更新するには、Update-Module
または Update-Script
コマンドレットを実行します。 パラメーターを追加せずに Update-Module
を実行すると、Install-Module
を実行してインストールされたすべてのモジュールの更新が試行されます。 モジュールを選択して更新するには、-Name
パラメーターを追加します。
同様に、パラメーターを追加せずに Update-Script
を実行する場合も、Install-Script
を実行してインストールされたすべてのスクリプトの更新が試行されます。 スクリプトを選択して更新するには、-Name
パラメーターを追加します。
PowerShell ギャラリーからインストールしたパッケージの一覧
PowerShell ギャラリーからどのモジュールをインストールしたかを調べるには、Get-InstalledModule
コマンドレットを実行します。 このコマンドは、システム上にある PowerShell ギャラリーから直接インストールされたすべてのモジュールの一覧を表示します。
同様に、PowerShell ギャラリーからどのスクリプトをインストールしたかを調べるには、Get-InstalledScript
コマンドレットを実行します。 このコマンドは、PowerShell ギャラリーから直接インストールした、システム上にあるスクリプトをすべて一覧表示します。
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 ブログのお知らせを参照してください。
関連リンク
PowerShellGet & Gallery