システム管理者であれば、多くのシステムからソフトウェアをインストール、アップグレード、削除することが仕事の一つです。しかし、各マシンに接続してインストールされたソフトウェアを手動で確認する必要はもうありません。実際には、PowerShellを使用してインストールされたソフトウェアを一覧表示することができます!
このブログ記事では、ローカルマシンと複数のコンピュータでPowerShellを使用してインストールされたソフトウェアを一覧表示する方法を紹介します。

なお、一部の記事では
Get-WmiObject -Class win32_product
のような方法を紹介しているかもしれませんが、それは避けましょう。なぜならこちらで説明しているからです。
インストールされたソフトウェアとレジストリ
参考までに、インストールされたソフトウェアは以下の3つの場所に存在します:
- 32ビットシステムのアンインストールレジストリキー
- 64ビットシステムのアンインストールレジストリキー
- 各ユーザープロファイルのアンインストールレジストリキー。
各ソフトウェアエントリは通常、ソフトウェアのグローバルに一意な識別子(GUID)によって定義されます。GUIDキーの内部には、その特定のソフトウェアに関するすべての情報が含まれています。完全なリストを取得するためには、PowerShellがこれらのキーを列挙し、各レジストリ値を読み取り、結果を解析する必要があります。
これらの値を正しく解析するためのコードは、1つの記事では扱いきれないほど多くなっています。したがって、以下に示すように、コンピュータ上でインストールされたプログラムをリストアップするPowerShellのGet-InstalledSoftware
という関数を事前に作成しました。
この関数をPowerShellコンソールにコピー&ペーストするか、スクリプトに追加すると、ComputerName
パラメータを使用して特定のコンピュータ名を指定して呼び出すことができます。
PowerShellでインストールされたソフトウェアのリストを表示する
これを行うと、インストールされているソフトウェアごとにオブジェクトが返されます。インストールされているソフトウェアに関するさまざまな情報を取得することができます。
もし事前にソフトウェアのタイトルを知っている場合、Name
パラメータを使用してその値に一致するソフトウェアのみを制限することもできます。
たとえば、Microsoft Visual C++ 2005 Redistributable (x64)がインストールされているかどうかをチェックしたい場合、以下のようにName
パラメータの値として使用します。
概要
PowerShellを使用してインストールされたソフトウェアを取得することで、あなたとチームは複数のWindowsコンピュータで簡単にインストールされたソフトウェアを見つけるための完全に無料のツールを作成することができます!
Source:
https://adamtheautomator.com/powershell-list-installed-software/