PowerShellGet 3.0 Preview 1登場

PowerShell 7.0.0を公開したばかりのMicrosoftだが、さっそく次のバージョンへ向けた最初のプレビュー版となる「PowerShell 7.1 Preview 1」を公開してきた。MicrosoftはPowerShell 7.1 Preview 1の発表のなかで、重要なモジュールとして「PowerShellGet 3.0」についても言及している。ただし、PowerShellGet 3.0は現在開発の段階にあり、PowerShell 7.1の公開時にPowerShellGet 3.0が間に合うかどうかはわからないとは説明されている。

間に合うかどうかはわからないのだが、Microsoftは「PowerShell 7.1 Preview 1」を発表した数日後に「PowerShellGet 3.0 Preview 1|PowerShell」において「PowerShellGet 3.0 Preview 1」の公開を伝えた。PowerShell 7.1と同時公開になるかは不透明だが、リリーススケジュール的に考えるとできるだけPowerShell 7.1のリリースに合わせてPowerShellGet 3.0を公開したいものと見られる。

PowerShellGet 3.0はPowerShellGetにとって重要度の高いバージョンになる。PackageManagementおよびNuGetプロバイダに依存している現在のコードを削除するとともに、コードベースをPowerShellスクリプトからC#に変更する開発を進めている。これによってメンテナンスが従来よりも簡単になる見通しだ。また、Linuxのパッケージ管理システムであるaptのようなコマンドからユーザエクスペリエンスを取り込み、より扱いやすいシステムに変更する予定でいる。PowerShellGetにとってバージョン3は抜本的な書き換えを伴う大きな変更だ。

PowerShellGetとは

PowerShellではモジュールを追加することで新しいコマンドやスクリプト、関数を追加することができる。目的に応じて便利なモジュールをインストールして利用する。これがPowerShellを使った”楽なシステム管理方法”である。

PowerShellGetはそうしたモジュールの検索、インストール、アンインストールなどを実行するためのモジュールだ。MicrosoftはPowerShellのモジュールやコマンドを登録できるリポジトリとして「PowerShell Gallery」を運用している。PowerShell Galleryが登場するまではモジュールやコマンドはバラバラにホストされていた。こうしたまとめサイトを作ることで、PowerShellユーザーがモジュールへのアクセスを簡単にした経緯がある。

PowerShell Gallery

PowerShell Galleryを使うとどのモジュールがよく使われているか調べることができ、これが結構便利だ。多くのユーザーが使っているモジュールは便利なモジュールであることが多く、それらを導入することで効率的に”手抜き”が可能となる。

PowerShell Gallery 統計情報ページ

PowerShellGetはPowerShell Galleryに登録されているモジュールやコマンドレットのインストールやアンインストールを可能にしてくれる。とても便利な機能だ。今回はこのPowerShellGetについて説明する。

PowerShellGetインストール方法

PowerShell 7.0.0にはすでにPowerShellGetがインストールされているので、個別にインストールする必要はない。これよりも前のバージョンを使っているのであれば、管理者権限でPowerShellターミナルを起動してから「Install-Module -Name PowerShellGet -Force」のようにコマンドレットを実行することでPowerShellGetモジュールをインストールすることができる。

PowerShell 7.0.0に含まれているPowerShellGetのバージョンは2.2.3だ。次のような関数が利用できるようになっている。

PowerShellGet 2.2.3 on PowerShell 7.0.0

PowerShellGetが登場するまでは自分でモジュールのダウンロードからデプロイまで作業する必要があったが、PowerShellGetモジュールの登場で処理の自動化できるようになった。

PowerShellGetを使ってみよう

使うモジュールはWebブラウザで「PowerShell Gallery」を閲覧しながら探したほうがよいと思う。本稿では人気の高いモジュールの1つであるPSWindowsUpdateモジュールをインストールする例を取り上げる。基本的には次のスクリーンショットにあるように「Install-Module PSWindowsUpdate」でモジュールをインストールできる。

PSWindowsUpdateモジュールをインストールするサンプル

PSWindowsUpdateモジュールをインストールすると、Windows Update関連の操作をPowerShellから実行できるようになる。いちいちUIを操作する必要がないため、管理するPCの数が多くなってくるとこの手のスクリプトが大活躍する。

PSWindowsUpdateモジュールの使用例

Windows Update関連の処理には管理者権限が必要なので、実行しようとしても上記スクリーンショットのようにエラーになるのだが、ひとまず雰囲気はつかんでいただけたのではないだろうか。

PowerShellGetで楽ちんシステム管理

これまでPowerShellのシェルやプログラミング言語としての機能や、PowerShellの新しいバージョンの変更点および新機能などの紹介を集中的に行ってきた。しかし、PowerShellの真のメリットはサードパーティ製モジュールの活用にある。もちろん自分でモジュールを書いてもよいのだが、すでにあるものが使えるならそのほうが楽だ。

これまでPowerShellGetを使ったことがないのであれば、ぜひこの機会にPowerShellGetを使ってみてほしい。モジュールを探す方法が見えてくれば、いろいろと手間が省けることに気がつくはずだ。