PowerShell Galleryは、初心者でも経験豊富なユーザーでも、すべてのPowerShellニーズの究極の目的地です。そして良いニュースは、PowerShellコミュニティによって作成された豊富なドキュメント、スクリプト、モジュール、その他のリソースの大規模なコレクションがあることです。
このチュートリアルでは、PowerShell Galleryからリソースを見つけてダウンロードしてインストールする方法を学びます。
今日はスクリプトのゲームを向上させるためにチューニングしてください!
前提条件
このチュートリアルは実践的なデモンストレーションになります。操作方法を確認するには、PowerShell 5.1以降がインストールされたシステムが必要です。このチュートリアルでは、PowerShell 5.3がインストールされたWindows 10を使用していますが、他のバージョンのWindowsとPowerShellでも動作するはずです。
.NET Frameworkのインストール
PowerShell Galleryに飛び込む前に、まずPowerShell Galleryとやり取りする方法が必要です。.NET Frameworkがその主要な方法です。
最初に.NET Frameworkをインストールする必要があります。これはPowerShellGetモジュールに必須です。PowerShellGetモジュールには、少なくとも.NET Framework v4.5+が必要です。PowerShellGetモジュールを使用すると、PowerShellアーティファクトを検出、インストール、更新、公開できます。
しかし、このチュートリアルでは、.NET Framework v4.8をインストールします。
? .NET Framework v4.8 がすでにシステムにインストールされている可能性があります。その場合は、このステップをスキップできます。ただし、.NET Frameworkの古いバージョンがある場合はアンインストールし、新しいバージョンにアップグレードしてください。
.NET Frameworkをインストールするには、以下の手順に従ってください:
1. 好きなウェブブラウザを開き、公式.NET Frameworkダウンロードページに移動します。
2. 次に、.NET Framework 4.8 Developer Packをダウンロードするリンクをクリックし、ndp48-devpack-enuに類似したファイルをダウンロードします。このファイルは、NET Frameworkバージョン4.8のインストーラーパッケージです。

3. ダウンロードが完了するのを待ち、ダウンロードしたファイルをダブルクリックして.NET Frameworkインストーラーを起動します。

? .NET Frameworkのインストールで問題が発生している場合は、[互換性モード]でインストールファイルを実行してみてください。
4. ライセンス条件に同意するために下のチェックボックスをオンにし、インストールボタンをクリックして.NET Framework 4.8をインストールします。

以下に、システムの構成によっては数分かかる場合がある、インストールの進行状況が表示されます。

5. インストールが完了したら、閉じるボタンをクリックしてインストーラーを閉じてください。

6. 最後に、管理者として PowerShell を開く そして、以下の[Start-Process]
コマンドを実行してプログラムの追加または削除アプリケーション (appwiz.cpl
) を開きます。このアプリケーションを使用して、システムにインストールされているプログラムのリストを表示できます。
インストールされたプログラムのリストに .NET Framework 4.8 のエントリが表示されます。以下のように表示されます。

PowerShellGet モジュールのインストール
.NET Framework をインストールして実行したら、PowerShell ギャラリーのコアコンポーネントである PowerShellGet モジュールをインストールできます。
PowerShellGetのバージョン(1.0.0.1)は、Windows PowerShell 5.1にプリインストールされていますが、機能が制限されています。Windows PowerShell 5.1またはそれ以前を使用している場合は、PowerShell Galleryの更新された機能を検討してください。最新バージョンは、執筆時点で3.0.17-beta17です。
PowerShellGetモジュールをインストールするには、以下の手順に従ってください:
1. 以下のコマンドを実行します。このコマンドは出力を生成しませんが、PowerShellセッションでTransport Layer Security (TLS) 1.2を有効にします。TLSは、インターネットを介して送信されるデータを暗号化するセキュリティプロトコルです。
TLS 1.2を有効にすることは重要です。なぜならPowerShellはデフォルトでTLS 1.2を使用するように構成されていないからです。このコマンドは、System.Net.ServicePointManager
オブジェクトのSecurityProtocol
をTLS 1.2(Tls12
)に設定します。これにより、TLS 1.2以上を使用してPowerShell Galleryにアクセスできるようになります。
? この変更は現在のPowerShellセッションにのみ適用されます。ただし、PowerShellプロファイルに上記のコマンドを追加することで、常にTLS 1.2を使用するようにPowerShellを構成できます。
次に、以下のInstall-PackageProvider
コマンドを実行して、NuGetパッケージプロバイダーをインストールしてください。NuGetパッケージプロバイダーを使用すると、NuGetパッケージリポジトリからパッケージをインストールおよび管理できます。このリポジトリは、.NETプラットフォーム向けのオープンソースパッケージの中央リポジトリです。
NuGetパッケージプロバイダーは、PowerShell Galleryからモジュールをインストールするための[Install-Module]
コマンドを使用する前に必要です。なぜなら、PowerShell Galleryの多くのモジュールはNuGetパッケージとして配布されているからです。

インストールされたら、NuGet APIを活用できます。NuGet APIを使用すると、NuGetパッケージリポジトリにアクセスして、そのリポジトリと対話できるツールやアプリケーションを作成できます。どのように対話するか?さまざまなタスクを実行することができます。例えば、パッケージの検索、インストール、および更新です。
一般的に、クライアントとサーバーの機能に応じて、要件に応じて使用できるNuGet APIのバージョンは2つあります。
Version | Description | Usage |
v2 | Uses XML as the data format for communication between the client and server.
This version is based on the original NuGet API introduced in 2011 and is the legacy version of the API. |
The v2 API is recommended if you use an older version of NuGet or a client or server that does not support the v3 API.
This version is supported by all versions of NuGet and is compatible with older clients and servers. |
v3 | Uses JSON as the data format for communication between the client and server. This version was introduced in 2013 as an improvement over the v2 API and included many new features and improvements.
Many new features included are support for side-by-side package installation, improved search capabilities, and large package support. |
The v3 API is recommended if you use a newer NuGet version. The v3 API is faster and more efficient than the v2 API.
This version is not supported by older versions of NuGet and may not be compatible with older clients and servers. |
? 一般的に、NuGet API v3が最も最新の機能と機能を提供するため、お勧めです。
3. 以下の Set-PSRepository
コマンドを実行し、出力は提供されませんが、PowerShell ギャラリー (PSGallery
) リポジトリを信頼されたパッケージソースとして設定します。これにより、PowerShell ギャラリーからモジュールをインストールできるようになります。
4. 今度は、以下の Install-Module
コマンドを実行して、PowerShellGet
モジュールの最新バージョン (-AllowPrerelease
) をインストールします。

5. 最後に、以下の Get-InstalledModule
コマンドを実行して、PowerShellGet
モジュールが正常にインストールされているかを確認します。
インストールされた PowerShellGet モジュールがリストされ、PSGallery がリポジトリになっていれば、正常にインストールされています。

PowerShell ギャラリーからモジュールを発見する
PowerShellGet モジュールをインストールしたので、PowerShell ギャラリーからモジュールを検索してインストールできます。これにより、PowerShell 環境の機能を拡張し、複雑なタスクを効率的に自動化できます。
PowerShellギャラリーでモジュールを検索するには、Find-Module
コマンドレットを使用できます。このコマンドレットは、モジュール名、バージョン、またはタグなどの指定された検索条件に一致するモジュールをPowerShellギャラリーで検索します。
1. 以下のFind-Module
コマンドを実行して、AzureRM
に一致する名前のモジュールをPowerShellギャラリーで検索します。
以下の出力には、PowerShellギャラリーで名前がAzureRMと一致するモジュールが1つだけ表示されます。各モジュールの名前、バージョン、リポジトリなどの基本情報も表示できます。

2. 次に、以下のいずれかのコマンドを実行して、-Tag
を使用してキーワードAzure
を使用してモジュールを検索します。 -Tag
パラメータは大文字と小文字を区別しないため、azure
またはAzure
をタグキーワードとして使用できます。
モジュールにタグを使用する理由は何ですか? タグは、モジュールに関連付けられたキーワードやラベルであり、PowerShellギャラリー内のコンテンツと機能を説明します。
たとえば、モジュールがAzureクラウドプラットフォームに関連している場合、Azure
キーワードをタグ付けできます。これにより、Azure関連のリソースに興味を持つユーザーがAzure
タグを検索してモジュールを簡単に見つけて探すことができます。
PowerShell Galleryは、多くの作者によって提供されるリソースの幅広いリポジトリです。そして、Azure
のような人気のキーワードに関連する多くのモジュールがあります。
その結果、キーワードやタグに一致するモジュールの長いリストが表示されます。以下のスクリーンショットに示すように。

? 関連するリソースを見つけるのを早めるために、タグを使用して関連するモジュールをグループ化することもできます。たとえば、Hyper-VやVMwareなどの仮想化技術に関連するモジュールをグループ化するために、
Virtualization
というタグを使用します。
3. 次のコマンドを実行して、Find-Module
コマンドレットのパラメータを組み合わせて特定のモジュールを絞り込み、検索します。
以下のコマンドは、次のパラメータを考慮してPowerShell Galleryからモジュールを検索します:
-Name
– 特定の名前Az.Compute
のモジュールを検索します。
-Tag
–Azure
およびMicrosoft
というタグが付いているモジュールを検索します。

モジュールのインストールと更新
興味のあるモジュールを見つけたら、そのモジュールをインストールするのは数回のキーストロークで済みます。PowerShell Galleryからモジュールをダウンロードしてローカルシステムにインストールするために、Install-Module
コマンドレットを使用できます。
1. 以下のコマンドを実行して、PowerShell GalleryからAz.Compute
モジュールをダウンロードしてインストールします。
成功した場合、このコマンドは出力を生成しませんが、次のステップでインストールが確認できます。
2. 次に、Get-InstalledModule
コマンドを実行して、Az.Compute
モジュールがシステムにインストールされているかを確認します。

? または、パラメータなしで
Get-InstalledModule
コマンドレットを実行すると、システムにインストールされたすべてのモジュールのリストが表示されます。ただし、インストールされたモジュールが多すぎる場合、リストをスクロールする際に目が痛くなる可能性があるので注意してください。

3. 以下のUpdate-Module
コマンドを実行します。このコマンドは出力を提供しませんが、特定のモジュール(つまり、Az.Compute
)の最新バージョンを検索し、更新します。
インストールされたモジュールの更新には、バグ修正、新機能、その他の改善が含まれる場合があります。
PowerShellモジュールのアンインストール
システムからモジュールを削除する必要がある場合があります。たとえば、もうモジュールが必要ない場合や問題がある場合です。
システムからモジュールをアンインストールするには、Uninstall-Module
コマンドレットを使用します。このコマンドレットはモジュールとそのすべてのファイルをシステムから削除し、実質的にアンインストールします。
? モジュールをアンインストールする際には、その影響を慎重に考慮してください。モジュールのアンインストールによって、モジュールに依存する他のプログラムやスクリプトが壊れるなど、予期しない結果が生じる可能性があります。
以下のUninstall-Module
コマンドを実行して、システムから特定のモジュール(Az.Compute
)をアンインストールします。このコマンドは、アンインストールが成功した場合は出力を生成しません。
? 他のプログラムやスクリプトが現在そのモジュールを使用している場合、
Uninstall-Module
コマンドレットはエラーをスローし、アンインストールは失敗します。
結論
PowerShellモジュールは、PowerShell環境に機能を追加する強力なツールです。そして、このチュートリアルではPowerShellギャラリーと共に、わずかなコマンドでモジュールを見つけてインストールすることができます。
PowerShellギャラリーを活用し、PowerShellスクリプトやワークフローをカスタマイズして強化するためのPowerShellモジュールを見つけましょう!