3

これは私の最初の投稿ですが、私が遭遇した問題に対してしばらくの間、stackoverflow を使用してきました。

(TL;DR: 私のバッチ スクリプトは、WIM ファイルを正常にアンマウントすると言っていますが、WIM を照会すると、/cleanup-wim を手動で実行するまで、孤立したファイルが残ります。)

Win PE イメージを変更するためのバッチ ファイルを作成しようとしていますが、最後の手順で問題が発生しています。

基本的に私のスクリプトは、最初に amd64 win PE アーキテクチャを作成し、WIM ファイルをマウントし、SYSTEM ファイルのレジストリ ハイブを編集し (そしてハイブを閉じます)、ファイルを特定のフォルダーにコピーし、次に WIM をアンマウントし、ディスクに書き込むか、起動可能な USB にコピーできる ISO。

アンマウント部分を除いて、すべてが機能します。

これが最初にどのように行われるかを理解するために、次のように実行します。

C:\windows\system32\Dism.exe /Mount-Wim /WimFile:C:\winpe_amd64\media\sources\boot.wim /index:1 /MountDir:C:\winpe_amd64\mount

レジストリの変更、ファイルの作成などの後、後で実行します。

C:\windows\system32\Dism.exe /Unmount-Wim /MountDir:C:\winpe_amd64\mount /commit
C:\windows\system32\Dism.exe /cleanup-wim

/unmount-wim を使用すると、次のエラーが表示されることがあります。

イメージ ファイル : C:\winpe_amd64\media\sources\boot.wim
画像インデックス : 1
画像を保存する
[===========================100.0%===================== =====]
アンマウントイメージ
[===========================100.0%===================== =====]

エラー: 0xc1420117

ディレクトリを完全にアンマウントできませんでした。これは通常、アプリケーションがマウント ディレクトリ内で開いているファイルを保持していることが原因です。これらのファイルを閉じて再度アンマウントし、アンマウント プロセスを完了します。

DISM ログ ファイルは、C:\windows\Logs\DISM\dism.log にあります。

これが、スクリプトに /cleanup-wim を実装した理由です。これは以下を引き出します:

C:\winpe_amd64\mount でイメージをアンマウントしています
[===========================100.0%===================== =====]
ドライブ C の古いファイルをスキャンしています
操作は正常に完了しました。

ただし、最初の /unmount-wim が完全に成功したかどうかに関係なく、マウントされた WIM をクエリすると、次のように返されます。

C:\windows\system32\dism.exe /get-mountedwiminfo


マウント ディレクトリ: C:\winpe_amd64\mount
イメージ ファイル : C:\winpe_amd64\media\sources\boot.wim
画像インデックス : 1
マウントされた読み取り/書き込み: はい
ステータス : 無効

操作は正常に完了しました。

/cleaup-wim をもう一度手動で実行すると、最終的に正常にアンマウントされます。

C:\winpe_amd64\mount でイメージをアンマウントしています
[===========================100.0%===================== =====]
ドライブ C の古いファイルをスキャンしています
操作は正常に完了しました。

もう一度クエリを実行すると、マウントされた/孤立した WIM が見つかりません。また、/unmount-wim と /cleanup-wim の間でバッチ スクリプトを 5 秒間待機させようとしましたが、結果は同じでした。また、クリーンアップ コマンドを使用して別のバッチ スクリプトを呼び出しましたが、まだサイコロはありません。

助言がありますか?

4

0 に答える 0