1

オンラインの Windows から使用するGetWindowsDirectoryと、C:\Windows のように OS がインストールされているディレクトリを取得できます。

Windows PE から同じ関数を使用すると、X:\Windows(スクリーンショットのように) 魔女は Windows PE 自体の Windows ディレクトリを意味します。オフラインの Windows ディレクトリを取得するにはどうすればよいですか? のようD:\Windowsに、またはそれが持っているどんな文字でも。

ここに画像の説明を入力

あなたが提案できる機能はありますか?

4

1 に答える 1

0

mountvol.exeマウントされたすべてのボリュームを一覧表示するというユーティリティ (WinPE および/または Windows で使用可能) があります。winpe ドライブは常にx:であり、「オフライン」インストールは多くの場合 (常にではありません) にマウントされd:ます。

ボリュームを列挙するための Windows API もありFindFirstVolumeますFindNextVolume。これにはマウントされていないボリュームが含まれ、マウントされていないボリュームにドライブ文字を割り当てることができます。

ボリュームのリストを取得したら、各ボリュームを調べて、関心のある「ターゲット」ボリュームであるかどうかを判断する必要があります - ボリューム ラベルなど - \Windows の存在、および/または bcd データベースを調べて判断する必要があります。どのボリュームが起動可能か。些細なことではありませんが、可能です。bcd データベースは、実際には、読み取り専用でマウントできる Windows レジストリ ハイブです...そして、そこから情報を引き出すのが仕事です。

オフライン ボリュームがマウントされていない場合でも (これは珍しいことです)、Windows API を使用してボリュームの内容を調べることができますが、\\?\(ドライブ文字ではなく) プレフィックスとボリューム ID を使用する必要があります。ボリュームをマウントする方が簡単です。

本当にオフライン ボリュームが見つからない場合は、物理ディスクが存在するかどうかを確認してください。そうでない場合は、特定のハード ドライブのドライバーを winPE イメージに追加する必要がある場合があります。通常、ドライブを使用する実行中の OS からこれらを取得できます。/addDriverDISM には、ドライバー ストアからドライバーをコピーするためのサブコマンドがあります。多くの場合、.NET をビルドしているコンピューター上の既存のドライバー ストアを指すだけです.wim

于 2016-11-25T16:25:19.303 に答える