LoginSignup
6
7

More than 3 years have passed since last update.

[Windows] WindowsPEを使ってWindows10をメンテナンス(アプリインストール等)する(その1)

Last updated at Posted at 2019-09-26

もくじ
https://qiita.com/tera1707/items/4fda73d86eded283ec4f

やりたいこと

Windows PEを使って、Windows10にログインせずに、アプリをインストールしたりアンインストールしたり、その他メンテナンスをしたい。

今回やったこと

下記のページを参考にさせていただき、自分のやったこと・試したことをまとめた。
https://qiita.com/SkyLaptor/items/204245cf6bb4fee5b19d

概要

実験環境

下記のPCを使用。

  • Windows10 pro 1903(19H1)
  • Windows ADK for Windows 10, version 1903

作業の流れ

ざっくり、こういう流れでWindowsPEから起動する準備作業をする。
今回は、WindowsPEで起動するところまでをやる。
インストールの仕方(dismコマンド等)はまた別途。

  • 必要物のダウンロード・インストール
    • WindowsADK
    • WindowsPEアドオン
  • WindowsPEメディアを作成
    • 素のWindowsPEを作成し、マウントする
    • mountフォルダの下に必要なフォルダ/ファイルを置く
    • 起動時に実行されるstartnet.cmdを編集しインストール処理を追加
    • mountフォルダに加えた変更をアンマウントしmediaフォルダに反映させる
    • 起動可能なUSBメモリを作成する
    • USBメモリにmediaフォルダの中身をコピーする
    • USBから起動させる
    • WindowsPE起動~メンテ作業を実施する

マウント・アンマウント

マウントとかアンマウントとかの言葉が出てくるが、イメージとしてはこんな感じに自分はしている。
image.png
※「mountフォルダ以下がCドライブになる」と図中で書いているが、今回試した限りでは、PE起動時のドライブは「X:」ドライブだった。

作業

必要物のダウンロード・インストール

ダウンロード、インストールについては、参考にさせていただいたサイトをほぼそのまま実施している。(ドライバ入れなかったりするのが自分がやったのと少しだけ違う)
困ったら、そちらを参照させていただくと良いと思うが、ざっくり下記のようにした。

WindowsADK

下記の「Download the Windows ADK for Windows 10, version 1903」リンクより落とす。
image.png

※ダウンロードしたexeを実行して出てくる画面で「インストールを行う機能を選択してください」画面が出たら、「Deployment Tools」のみチェックを入れる

WindowsPEアドオン

ADKと同じページの「Download the Windows PE add-on for the ADK」リンクより落とす。

※かなり時間かかるので注意。(今回試したときは4時間以上かかった)

WindowsPEメディアを作成

素のWindowsPEを作成し、マウントする

  • まず、スタートメニューの[Windows Kits] > [展開及びイメージングツール環境]を、管理者権限で開く。
  • 開いたら、下記のコマンドをすべて実行する。([展開及びイメージングツール環境]の黒窓に、改行も含めて全部コピーして貼り付ければ、実行してくれる)
新しいPEを作成.cmd
rem 素のWindowsPEを準備する
set WS_DIR=C:\winpe

copype amd64 "%WS_DIR%"

rem マウントする
Dism /Mount-Image /Imagefile:"%WS_DIR%\media\sources\boot.wim" /Index:1 /Mountdir:"%WS_DIR%\mount"

rem --------------

rem 日本語化+αを組み込む
set ADK_PATH=C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit
set ADK_PACK=%ADK_PATH%\Windows Preinstallation Environment\amd64\WinPE_OCs
rem set WS_DIR=C:\winpe

Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\lp.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-FontSupport-JA-JP.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-WMI.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\WinPE-WMI_ja-jp.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-NetFx.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\WinPE-NetFx_ja-jp.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-Scripting.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\WinPE-Scripting_ja-jp.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-PowerShell.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\WinPE-PowerShell_ja-jp.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-DismCmdlets.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\WinPE-DismCmdlets_ja-jp.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-SecureBootCmdlets.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\WinPE-WDS-Tools.cab"
Dism /Image:"%WS_DIR%\mount" /Add-Package /Packagepath:"%ADK_PACK%\ja-jp\WinPE-WDS-Tools_ja-jp.cab"
Dism /Image:"%WS_DIR%\mount" /Enable-Feature /FeatureName:SMB1Protocol

Dism /Image:"%WS_DIR%\mount" /Set-Allintl:ja-jp
Dism /Image:"%WS_DIR%\mount" /Set-Inputlocale:0411:00000411
Dism /Image:"%WS_DIR%\mount" /Set-Layereddriver:6
Dism /Image:"%WS_DIR%\mount" /Set-Timezone:"Tokyo Standard Time"

参考にさせていただいたサイトでは、「ドライバを入れる」という手順があるが、今回はインストールするためだけのPEなので、入れなかった。

  • 作業用PCのC:\winpeに、fwfilesmediamountの3つのフォルダができていることを確認する。
  • mountフォルダの中に、Program FilesProgram Files (x86)ProgramDataWindowsUsersの5つのフォルダができていることを確認する。

[展開及びイメージングツール環境]の黒窓は、一度開いたら本手順が終わるまで閉じないこと。閉じると、マウントしたイメージをアンマウントできなくなったりする。閉じてしまった場合は、こちらを参照。

mountフォルダの下に必要なフォルダ/ファイルを置く

'mount'フォルダの下に、実際にWindowsPEが起動したときに使いたいものを入れておく。図では、「myFolder」というフォルダを入れている。
アプリをインストールしたい場合などは、ここに.appxやインストールに必要なバッチファイルを入れておけばよい。

image.png

起動時に実行されるstartnet.cmdを編集しインストール処理を追加

WindowsPEが起動したら、C:\winpe\mount\Windows\System32にあるstartnet.cmdが自動的に実行される。必要に応じて、そこに処理を追加する。

※素の'startnet.cmd'は下記のようなもの。ここに、処理を追加するが、もとからあるwpeinitは消さないこと。(PEの初期化処理をしているらしい)

素のstartnet.cmd
wpeinit

何かアプリを自動でインストールしたいようなときは、ここにインストール処理を追記するか、インストール用のバッチを呼ぶような記述を追記する。

今回試した時、なぜか「上書き禁止」になっていたので、別でstartnet.cmdを作成して、上書きして編集した。

mountフォルダに加えた変更をアンマウントしmediaフォルダに反映させる

mountフォルダの中に必要物を置いたら、下記のコマンドを[展開及びイメージングツール環境]に入れて、mountに加えた内容を反映させる。(=アンマウント)

アンマウント.cmd
set WS_DIR=C:\winpe
Dism /Unmount-Image /Mountdir:"%WS_DIR%\mount" /Commit

※アンマウントした後は、mountフォルダの中身は空になる。

USBメモリにmediaフォルダの中身をコピーする

アンマウント&コミットした内容を、USBメモリにコピーする。
下記のようなコマンドを使用して行う。

set WS_DIR=C:\winpe
rem FドライブがUSBメモリの時は、
rem makewinpemedia /ufd "%WS_DIR%" F:
makewinpemedia /ufd "%WS_DIR%" {USBメモリのドライブレター}:

(USBメモリにmediaフォルダの中身をコピーする(別解))

USBメモリを作成する際、上の「USBメモリにmediaフォルダの中身をコピーする」が正しい手順だと思うが、今回こっちの手順で作業していた。これでも動作はしていたので、どちらでも行けるっぽい。(ただ、上の本来のmakewinpemediaを使ったやり方を推奨)

  • まず、使用するUSBメモリをfat32でフォーマットする。
  • 次に、上でアンマウントして出来上がったメディアフォルダC:\winpe\mediaの中のものをすべてUSBメモリにコピーする。これで、WindowsPE起動用USBの出来上がり。 image.png

USBから起動させる

USBメモリから起動するようBIOS設定(起動の優先順位設定)をする。(やり方はモノによると思うので、割愛)
その後、再起動。

WindowsPE起動~メンテ作業を実施する

USBから起動すると、WindowsPEが起動する。

上で変更したstartnet.cmdの内容にもよるが、通常は起動後コマンド入力できるように黒窓が起動しているので、ここでメンテナンスしたいことを実施する。

これで、WindowsPEの準備から起動までは完了。
作ったWindowsPEを直したいときは、下のようにする。

作成したWindowsPEを修正したいとき

最新の状態がmediaフォルダの中(=USBメモリの中身)に保存されているので、それをマウントして、編集して戻す、ということをする。具体的には下記を実施する。

  • マウント実施(mediaフォルダの中身をmountフォルダに展開していじれるようにする)
  • mountフォルダ内を編集(startnet.cmdを編集したり、必要なものを配置したりする)
  • アンマウント&コミット を実施してmediaフォルダを作成しなおす
  • できたmediaフォルダの中身をUSBメモリにコピーする

マウント、アンマウントする際には、[展開及びイメージングツール環境]に下記のコマンドを入力する。

マウント.cmd
set WS_DIR=C:\winpe
Dism /Mount-Image /Imagefile:"%WS_DIR%\media\sources\boot.wim" /Index:1 /Mountdir:"%WS_DIR%\mount"
アンマウント.cmd
set WS_DIR=C:\winpe
Dism /Unmount-Image /Mountdir:"%WS_DIR%\mount" /Commit

備考

ここでやったのは、WindowsPEが起動するまでの準備なので、やりたかったアプリのインストール等はまだできていない。
インストールなどを実現するには、アプリのappxなどをmountフォルダの中に保存し、インストール用のバッチを書いてインストール処理をPEで行う必要がある。

dismで行うインストールも試したところ、特にPEだからといって特殊なコマンドを使うということはなかったので、また別途まとめる。

参考

日本語版WindowsPEメディアを作成する方法
https://qiita.com/SkyLaptor/items/204245cf6bb4fee5b19d

6
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
7