PowerShellで32bit / 64bitアプリを判別する方法

  • URLをコピーしました!

PowerShellで32bit / 64bitアプリを判別する方法は、レジストリ・実行ファイル・インストール情報のいずれかを確認すれば正確に判別できます。特にレジストリの「Uninstall」キーをPowerShellで取得する方法が最も実用的で、管理者権限が不要なケースも多く、スクリプト化にも向いています。本記事では、現場でそのまま使える判別方法を、具体的なPowerShellコマンド付きで解説します。

Windows環境では、同じアプリ名でも32bit版と64bit版が存在することがあります。トラブルシューティングや資産管理、配布スクリプト作成時に、どちらがインストールされているかを判別できないと誤動作の原因になります。PowerShellを使えば、GUIを開かずに正確に判定できます。

目次

32bit版と64bit版の違いを簡単に整理

Windowsではアプリのビット数によって保存場所やレジストリの場所が異なります。

項目32bitアプリ64bitアプリ
既定のインストール先C:\Program Files (x86)C:\Program Files
レジストリの場所Wow6432Node 配下通常の Uninstall 配下
使用可能なメモリ最大約4GBOS制限まで使用可能

この違いを利用してPowerShellで判別します。

方法1:レジストリからインストール済みアプリのビット数を判別する

最も一般的で正確な方法です。以下の2つのレジストリキーを参照します。

64bitアプリ
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall

32bitアプリ
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall

PowerShellで一覧取得する例です。

この結果を比較すれば、どちらに登録されているかで32bitか64bitかを判別できます。

特定のアプリを調べる場合は、次のようにします。

64bit側でヒットすれば64bit版、32bit側でヒットすれば32bit版です。

本記事で紹介しているレジストリ取得方法を応用すれば、インストール済みソフトの一覧作成も可能です。詳しい手順は以下をご参照ください。

方法2:実行ファイルからビット数を判別する

exeファイルのヘッダ情報を調べる方法です。インストール先が不明な場合や、ポータブルアプリにも使えます。

より正確に調べる方法は、CorFlagsツールやdumpbinを使いますが、標準PowerShellだけで行うなら、インストール先フォルダでの判別が現実的です。

例:
C:\Program Files → 64bit
C:\Program Files (x86) → 32bit

方法3:インストール済みアプリを一覧で32bit/64bit分類する

両方のレジストリを統合して一覧表示する方法です。

この方法を使えば、管理台帳作成や棚卸しにそのまま利用できます。

方法4:PowerShell自体のビット数を確認する

参考として、PowerShellが32bitか64bitかを確認する方法です。アプリ判別とは別ですが、スクリプト挙動に影響するため重要です。

Trueなら64bit版PowerShell、Falseなら32bit版PowerShellです。

判別方法の使い分け

状況推奨方法
インストール済みアプリを調べたいレジストリ確認
exeファイル単体を調べたいインストール先パス
一覧化したいレジストリ統合スクリプト
PowerShell環境を確認したいIs64BitProcess

よくある質問(Q & A)

コントロールパネルでは32bitか64bitか分からないのですか?

基本的には表示されません。Program Files (x86)にあれば32bitと判断できますが、確実なのはレジストリ確認です。

同じアプリが32bitと64bit両方インストールされることはありますか?

あります。特にJavaやODBCドライバなどは両方必要なケースがあります。その場合、レジストリ両方に登録されます。

管理者権限は必要ですか?

参照だけであれば通常は不要です。ただし、レジストリ制限環境では管理者権限が必要になる場合があります。

PowerShellスクリプトで自動判別して処理を分けられますか?

可能です。32bit版検出時のみ特定のインストーラーを実行する、といった分岐処理が実装できます。

まとめ

PowerShellで32bit / 64bitアプリを判別するには、レジストリのUninstallキーを参照する方法が最も確実です。実行ファイルの場所による判定は補助的に使い、一覧化する場合は両レジストリを統合して表示すると管理が容易になります。運用スクリプトや資産管理に組み込むことで、アプリのビット数違いによるトラブルを未然に防ぐことができます。

よかったらシェアしてね!
  • URLをコピーしました!
0 0
Article Rating
申し込む
注目する
guest
0 コメント一覧
最も古い
最新 高評価
インラインフィードバック
すべてのコメントを見る
目次
0
あなたの考えが大好きです、コメントしてください。x