PowerShell

【PowerShell】プログラムと機能にあるアプリの一覧を表示する

2019年2月10日

こんにちは!そーまんです。

今回は、Windows 10 のプログラムと機能に一覧表示されているアプリ(プログラム)を PowerShell を使い、データとして出力してみました。

どういう用途で使えるか考えてみましたところ、例えば以下のような場合で使えるのではないかと思います。

用途

  • 既存の PC と同じ構成で別のメーカーの PC でマスターイメージを作る際、インストールされているアプリを同一にする為に必要になる
  • 既存の PC 分のパラメータシートを作成する


プログラムと機能に表示されるアプリ

まず、PC にインストールしたアプリは、「コントロールパネル」 内にある、「プログラムと機能」 から確認する事ができます。

ここで強調しておきたいのは、「プログラムと機能」 に表示されるのは手動でインストールした分のみであり、ビルトインされたアプリは表示されないという点です。


ビルトインされたアプリは PowerShell で確認する事ができます。アンインストールなど含めて、詳細は以下の記事で説明しております。


レジストリを見てアプリの一覧を確認する

それでは、実際にアプリの一覧を PowerShell で取得する際に、どの方法で取ったら良いのでしょうか。

いくつかあるのですが、ここで予め説明したいのは、「プログラムと機能」と全く同じ情報を取得する事は困難だという事です。ネットで色々調べてみましたが、全く同じ情報を取得しているスクリプトは見当たりませんでした。

その中でも一番精度の高い方法としては、レジストリの情報を取得する事だという事が分かりました。以下、レジストリの場所になります。

スクリプトでは、2 つある上のほうを使えば良いでしょう。こっちのほうがアプリの情報が多いからです。

ちなみにスクリーンショットを取っておきました。


PowerShell で表示する

それではレジストリで取得した情報を元に、コマンドレットを使い情報を絞って表示させてみました。

リストにはアプリ名、バージョン、作成元が含まれておりますが、含まれていないものもあるかもしれません。

確かに OneNote がインストールされておりますが表示されていません。OneNote はインストールしたアプリではあるのですが、レジストリには無いので取得ができないようです。こういったコマンドでも取得できない分は「プログラムと機能」と見比べて目検で確認していくしかないかもしれません。


ちなみにテキストで出力してみました。こうすればパラメータシートの元として使う事ができますね。


まとめ

いかがでしょうか。PowerShell で [プログラムと機能] にあるインストールしたアプリの一覧を PowerShell で表示してみました。

やってみて思ったのは、最初は簡単に全量と表示できるのかと思ったのですが、そんなに甘くはなかった事が分かりました。(汗)

とはいえ、レジストリにアプリの一覧の情報がある事が分かりましたし、そこから Select-Object で情報を絞れば一覧が出せる事が分かったので良かったです。

それでは最後までお読みいただきありがとうございました!

  • この記事を書いた人

そーまん

セキュリティエンジニアやってます。
ブログ歴3年。PVは月15万PV程度。
趣味はボクシング、筋トレ、登山です。
穏やかで人見知りな性格です。

人気記事

1

こんにちは!そーまんです。 今回は、PC に適用されている GPO を確認する方法について書きました。 本題に入る前に、一応参考までにGPOの適用タイミングについての記事をここに貼りましたので、必要に ...

2

こんにちは!そーまんです。 今回は sysprep について、全体的に PC をセットアップする観点から書いてみました。長々と書いてあります。まずは前置きからです。 まずはじめに 組織では PC のラ ...

3

こんにちは!そーまんです。 今回は、グループポリシー (GPO) を使って、特定のコンピューターに対して、ドメインユーザーに ローカル管理者権限 (以下は特権と記載) を付与する方法について書きました ...

4

こんにちは!そーまんです。 今回は、Windows サインイン後に一時ユーザープロファイルが読み込まれてしまった場合の解決方法について書きました。 Windows 10 の検証環境をいじってたらサイン ...

5

こんにちは!そーまんです。 今回は、ユーザープロファイルを削除する方法について書いてみました。 企業の場合よくあることですが、1 台の PC を共有 PC として複数人で使ったり、また余り無いかもしれ ...

6

こんにちは!SE ブログの相馬です。       今回は、繰り返し文について書いてみました。PowerShell では他のプログラミング言語同様、繰り返し処理を行うことが ...

7

コマンドを使って CPU とメモリの使用率をデータで取得してみましたので、例えば PC のトラブルシューティングで問題を再現させる際にデータを取得しておくと、原因の特定に役立つ場合があるかと思います。

8

既存の PC と同じ構成で別のメーカーの PC でマスターイメージを作る際、インストールされているアプリを同一にする為に必要になるかと思います。

9

企業で多くの GPO が適用されている環境では、PC に GPO が適用されなかったりする問題が発生する場合があるかと思います。その中でも、コンピューターの構成またはユーザーの構成のどちらかで、...

10

こんにちは!そーまんです。 今回は、Windows Server 2019 で NTP サーバーと同期する方法について書きました。 NTP サーバーの必要性や時刻同期の重要性を理解することは社内のシス ...

-PowerShell
-, ,