PowerShell 101: 新しいモジュールの検索とインストール

PowerShellでのタスク管理は、しばしば魔法のように感じられますが、必要な機能が欠けていると、その限界に直面します。更新の自動化、ユーザーアカウントの管理、または高度な機能へのアクセスなど、組み込みツールではすべてをカバーできないことに気づくでしょう。そんなとき、あなたは思います:「もっとモジュールが必要だけど、どこから始めればいいの?」

このガイドの終わりまでには、より多くのタスクを自動化し、環境をスリムで効率的に保つスキルを身につけることができます。

さあ、PowerShellモジュールのプロになりましょう!

PowerShellギャラリーでのモジュール検索

PowerShellでのタスク管理には、組み込みではないモジュールが必要なことが多く、検索が必要です。たとえば、Windowsの更新を管理したり、複雑なタスクを自動化したりする場合、デフォルトのPowerShellインストールには必要なツールが含まれていないことがあります。

モジュール名が正確にわからない場合は、Find-Moduleを使ってワイルドカード検索を始めましょう:

Find-Module '*windowsupdate*'

このコマンドは、ワイルドカードパターンに一致するモジュールをリストアップします。

目的のモジュールを見つけたら、モジュール名(例:PSWindowsUpdate)を指定して検索を絞り込みます:

Find-Module -Name 'PSWindowsUpdate'

モジュールのインストール

モジュールを見つけることは最初のステップに過ぎません。次は、それをシステムにインストールすることです。PowerShellギャラリーのモジュールは、アプリストアのアプリのようなものです。探しているものがわかれば、すぐにダウンロードしてインストールできます。

Find-Moduleの出力をInstall-Moduleにパイプして、モジュールを直接ダウンロードします:

Find-Module -Name 'PSWindowsUpdate' | Install-Module

信頼できないリポジトリに関するプロンプトが表示された場合、その理由はPowerShellが明示的な確認を必要とするためです。この動作は、Untrusted インストールポリシーを持つリポジトリからダウンロードする際に発生します。

繰り返しのプロンプトを避けるために、リポジトリポリシーを Trusted に設定できます:

Set-PSRepository -Name PSGallery -InstallationPolicy Trusted

インストールコマンドを再実行します:

Find-Module -Name 'PSWindowsUpdate' | Install-Module

インストールされたモジュールの確認

モジュールをインストールした後、それが使用可能であることを確認したいでしょう。しかし、そのモジュールは予想した場所にインストールされない場合や、使用前に追加の確認を必要とする場合があります。

たとえば、PSWindowsUpdate モジュールはデフォルトでユーザープロファイルにインストールされます。その場合、コマンドを実行する前にその場所を確認することが重要です。

PowerShellがモジュールをどこにインストールしたかを確認するには、次のコマンドを使用します:

Get-Module -Name PSWindowsUpdate -ListAvailable | Select-Object ModuleBase

このコマンドは、ファイルシステム上のモジュールの場所を返します。デフォルトでは、モジュールはユーザープロファイルの Documents フォルダーにインストールされます。

モジュール内のすべての利用可能なコマンドを一覧表示するには:

Get-Command -Module PSWindowsUpdate

モジュールのアンインストール

最も価値のあるモジュールでさえ、永遠に必要というわけではありません。たとえば、PSWindowsUpdate モジュールのように。このモジュールを使用してスクリプトを完了させたり、更新を管理したりした後、システムを整頓したり、不要なリソースの使用を防ぐために削除したい場合があります。

特定のモジュールを削除するには:

Uninstall-Module -Name PSWindowsUpdate

モジュールが現在使用中の場合、PowerShellはそのアンインストールを防ぐことがあります。

モジュールがロードされているか確認します:

Get-Module PSWindowsUpdate

ロードされている場合は、アンロードします:

Remove-Module PSWindowsUpdate

今、アンインストールを再試行してください。

Uninstall-Module -Name PSWindowsUpdate

問題が解決しない場合は、現在のPowerShellセッションを閉じ、再度開き、アンインストールコマンドを再実行してください。

結論

このチュートリアルを通じて、PowerShellギャラリーを活用してPowerShellモジュールを効果的に管理する方法を学びました。モジュールの検索から始め、それらのインストールと望ましくないモジュールのアンインストールに移りました。また、信頼されていないリポジトリのプロンプトの解決やアクティブなモジュールのアンロードなど、実用的なシナリオにも遭遇しました。

これらのスキルを身につけることで、PowerShellギャラリーの他のモジュールを探求し、自動化を強化し、環境での課題を解決する準備が整います。たとえば、Active DirectoryやAzureを管理するためのモジュールを検討したり、他の人と共有するためのカスタムモジュールの作成を試みたりすることもできます。

モジュール管理をマスターすることで、PowerShellのフルポテンシャルを引き出し、独自の管理ニーズに適応させることができます。

Source:
https://adamtheautomator.com/powershell-module-management/