切断されたボリューム上の Windows アーキテクチャ バージョンを確認するにはどうすればよいでしょうか?

切断されたボリューム上の Windows アーキテクチャ バージョンを確認するにはどうすればよいでしょうか?

SFC (システム ファイル チェッカー) では完全に解決できないような破損を修復するために、Windows 10 のファイルの一部をコピーする必要があるというシナリオがあります。

コマンド プロンプトまたは Unix シェルを使用して、切断された Windows ボリュームのアーキテクチャ タイプ (32 ビットまたは 64 ビット) を確認するにはどうすればよいでしょうか。レジストリ ハイブまたは同様のものから抽出してアーキテクチャ タイプを分離できるエントリがいくつかあると思います。

答え1

「Program Files (x86)」を探します。存在しない場合は、32 ビットです。

関連している:

答え2

共有への接続自体から、共有をホストしているサーバーのプラットフォームが何であるかを判断する方法はありません。SMB プロトコルは、その情報をすべて意図的に抽象化します (これが、NTFS がサポートされていない Linux または Mac で NTFS 共有との間でファイルをコピーできる理由です)。

OS ボリューム全体が共有されている場合 (または C$ 共有に接続することによって - これは Windows 以外の Samba サーバーでは利用できません)、この情報を経験的に収集できます。ただし、ホストが 64 ビットか 32 ビットかを判断する最良の方法は、ホストの %PROCESSOR_ARCHITECTURE% 環境変数を確認することです。その理由は、一部の不適切に作成されたソフトウェアは、32 ビット プラットフォームでも Program Files (x86) フォルダーを作成したり、レジストリの Wow6432 ノードに書き込んだりするため、これらのソフトウェアが存在するからといって、必ずしもプラットフォームが 64 ビットであるとは限りません。

ただし、これはすべて、ホストが利用可能であり、クエリを実行するためのアクセス権を持っていることに依存します。ファイルからヒントが得られない場合、アクセスできないサーバー上の共有のみから、ホストしている OS のプラットフォームを判断する方法はありません。

関連情報