わすれなぐさ

自称情報ブログ・備忘録

タグ:Windows10

Windows 10の更新プログラム(Windows Update)が何度も失敗し、繰り返してしまうような状況に陥ることがあります。そんなときは、だいたい以下の方法で解決できる気がします。

大型アップデート(機能更新)に失敗するとき

① メディア作成ツールを使って、Windows 10のインストール用USBメモリを作成します。(詳しい作成方法は検索してください)
Windows 10 のダウンロード

② 作成したUSBメモリをPCに挿し、USBメモリ内のsetup.exeをダブルクリックして実行します。後は画面の指示に従ってください。

累積更新プログラムに失敗するとき

i) 未適用の大型アップデートがすでに配信されている場合
PCのWindows 10のバージョンが最新でない場合は、累積更新プログラムを無視して大型アップデートを適用してしまえばいいと思います。手順は上記の通りです。

ii) そうでない場合
適用可能な大型アップデートが無い場合は、オフラインインストーラーを使って累積更新プログラムを適用します。

① Microsoft Update Catalogで、失敗する更新プログラムを検索します。(検索する際は、KB番号で検索するのが一番確実ですが、分からなければ自分の環境に適合するキーワードで検索することもできます。例:「x64 windows 10 1709 累積更新」)
Microsoft Update カタログ

② 目的の更新プログラムを見つけたら、右の「ダウンロード」からダウンロードします。

③ ダウンロードしたファイル(.msu)をダブルクリックして実行します。後は画面の指示に従ってください。

Windows 10 April 2018 Update (1803)の影響で、かなり多くのPCが起動しなくなる・ブルースクリーンが多発する問題が発生しています。殊に、Surface Proについては深刻で、起動不能になるのと同時にBitLockerが有効化され、データの取り出しも不可能となる問題が起こっています。(事前に自分自身でBitLockerを有効化済みで、回復キーを保存している場合はデータの復旧が可能です。今回の問題の厄介な点は、意図せずBitLockerが有効になるため誰も内部のデータにアクセスできなくなることです)

症状

Surface ProにWindows 10 April 2018 Updateを適用した後、Windowsを起動することができず、「自動修復」や「問題が発生したため、PC を再起動する必要があります」というブルースクリーンエラーが繰り返し表示される。

原因

Surface Proに内蔵されているSSDとWindows 10 April 2018 Updateの問題です。
Windows 10 April Update 2018適用後、Intel製SSDシステムがクラッシュする問題が発生中 - PC Watch

Surface(Microsoft製)とWindows(Microsoft製)の相性問題でクラッシュするのは流石に草

対処法

メディア作成ツールを用いて作ったUSBメディアを起動し、ストレージのパーティションをすべて削除してWindows 10をクリーンインストールします。
Windows 10 のダウンロード

その他の可能性

もしかすると、SSDのクラッシュ問題ではなく、単にWindows 10の不具合でPCが正常起動しなくなっているだけの可能性もあります。その場合はデータを救出できる可能性が高いです。Windowsの「以前のバージョンに戻す」などの機能で復旧できるかもしれません。

もし、「以前のバージョンに戻す」を実行しようとしても回復キーの入力を求められて実行できない場合は、SSDのクラッシュ問題でBitLockerが有効化されてしまっているため、回復キーが無い限り内部のデータにアクセスすることは不可能です。

前回で、Windows 10インストールの自動化はできました。
  1. 応答ファイル作成の準備
  2. インストールを自動化する応答ファイルの作成
  3. OOBEを自動化する応答ファイルの作成
  4. 応答ファイルでインストール後にコマンドを実行する (この記事)

最後に、Windows 10のインストール後に自動でアプリケーションをインストールするようにしてみましょう。方法をざっくり説明すると、応答ファイルにコマンドを記入して、ログオン時にインストーラーを実行するようにして、アプリケーションをインストールします。

7. 最初のログオン時に実行するコマンドを応答ファイルに記入する

① Windows SIMでAutounattend.xmlを開きます。

② コンポーネント「Shell-Setup\FirstLogonCommands」を「パス 7 oobeSystem」に追加します。

② 「FirstLogonCommands」を右クリックして「新しい SynchronousCommand の挿入」を選択します。

③ 追加した「SynchronousCommand」を選択して、設定の「CommandLine」にコマンドを記入することで、最初のログオン時にコマンドを実行することができます。

④ 「Order」には「1」と記入します。

※「SynchronousCommand」は、同期して実行される、すなわち、順番にひとつずつ実行されるコマンドであることを意味します。しかしながら、FirstLogonCommandsにおけるSynchronousCommandは、現在、AsynchronousCommandのように全コマンドが同時に実行されるそうです。もし複数のコマンドをFirstLogonCommandsに用意するのであれば、Orderは関係なく同時に実行されることに注意してください。

インストールメディアにバッチファイルを置いて応答ファイルで実行する

実行したいコマンドラインがたくさんある場合はバッチファイルにまとめてしまいましょう。

インストールメディア(USBメモリ)内にバッチファイルを置き、「CommandLine」にそのバッチファイルのパスを書いておけば、最初のログオン時にバッチファイルを実行することができます。

もしWindows 10をインストールするPCにCドライブしかないのであれば、USBメモリはDドライブになりますから、「CommandLine」に例えば「D:\Setup.bat」と書いておけばUSBメモリのルートに置いたSetup.batを実行できます。

コンポーネント 設定
Shell-Setup\FirstLogonCommands\SynchronousCommand CommandLine D:\Setup.bat
Order 1

アプリケーションを自動でインストールする

インストールメディア(USBメモリ)内にアプリケーションのインストーラーを置いておき、それをコマンドでCドライブにコピーして、msiexecコマンドなどでインストールを実行すれば、Windows 10のインストール後に自動でアプリケーションをインストールすることができます。

前回の記事では、Windows SIMを使ってWindows 10インストールの前半を自動化する応答ファイルを作成しました。この記事では、インストールの後半であるOOBE(Out-Of-Box Experience)を自動化する設定を応答ファイルに加えていきます。

他の記事:
  1. 応答ファイル作成の準備
  2. インストールを自動化する応答ファイルの作成
  3. OOBEを自動化する応答ファイルの作成 (この記事)
  4. 応答ファイルでインストール後にコマンドを実行する

Windows SIMの使い方は、前回画像付きで詳しく説明したため、今回は簡単にだけ設定を記載します。

6. OOBEの応答ファイルを作成する

① 前回作ったAutounattend.xmlをWindows SIMで開きます。

② 以下のコンポーネントを「パス 7 oobeSystem」に追加します。
  • International-Core (WinPEは付かない)
  • Shell-Setup

③ コンポーネントの設定をします。
コンポーネント 設定
International-Core InputLocale 0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}
SystemLocale ja-JP
UILanguage ja-JP
UILanguageFallback ja-JP
UserLocale ja-JP
Shell-Setup TimeZone Tokyo Standard Time
Shell-Setup\OOBE HideEULAPage true
HideOEMRegistrationScreen true
HideOnlineAccountScreens true
HideWirelessSetupInOOBE true
ProtectYourPC 1
※「TimeZone」は何も書かなくても問題ありませんでした。ただし空白を書き込むと失敗します。
※「NetworkLocation」「SkipMachineOOBE」「SkipUserOOBE」はWindows 10では使わなくなりました。
※「HideLocalAccountScreen」はWindows Server向けの設定です。


④ 「Shell-Setup\UserAccounts\LocalAccounts」を右クリックして「新しい LocalAccount の挿入」を選択します。

⑤ 追加した「LocalAccount」の設定をします。
コンポーネント 設定
Shell-Setup\UserAccounts\LocalAccounts\LocalAccount Description (説明)
DisplayName (表示名)
Group Administrators
Name (ユーザー名)
Shell-Setup\UserAccounts\LocalAccounts\LocalAccount\Password Value (パスワード)
  • 「Description」は書かなくても問題ないと思います。
  • 「Name」はユーザーフォルダの名前になります。
  • パスワードを設定しない場合は、「Value」に空の文字列を書き込んでおきます。

⑥ 応答ファイルをAutounattend.xmlの名前で保存する。

応答ファイルの使い方

作成したAutounattend.xmlをインストールメディア(USBメモリ)のルートに設置することで、そのメディアからブートするとWindows 10を自動インストールできます。

参考

設定値について詳しくは次のリファレンスをご覧ください。
参考:

次の記事

次は、Windows 10のインストール後に自動でアプリケーションがインストールされるようにしてみましょう。

付録

完成した応答ファイルの内容を載せておきます。
<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="windowsPE">
        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <SetupUILanguage>
                <UILanguage>ja-JP</UILanguage>
            </SetupUILanguage>
            <InputLocale>0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}</InputLocale>
            <SystemLocale>ja-JP</SystemLocale>
            <UILanguage>ja-JP</UILanguage>
            <UILanguageFallback>ja-JP</UILanguageFallback>
            <UserLocale>ja-JP</UserLocale>
        </component>
        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <DiskConfiguration>
                <Disk wcm:action="add">
                    <CreatePartitions>
                        <CreatePartition wcm:action="add">
                            <Order>1</Order>
                            <Size>499</Size>
                            <Type>Primary</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>4</Order>
                            <Extend>true</Extend>
                            <Type>Primary</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>3</Order>
                            <Size>16</Size>
                            <Type>MSR</Type>
                        </CreatePartition>
                        <CreatePartition wcm:action="add">
                            <Order>2</Order>
                            <Size>100</Size>
                            <Type>EFI</Type>
                        </CreatePartition>
                    </CreatePartitions>
                    <ModifyPartitions>
                        <ModifyPartition wcm:action="add">
                            <Format>NTFS</Format>
                            <Label>Windows RE</Label>
                            <Order>1</Order>
                            <PartitionID>1</PartitionID>
                            <TypeID>DE94BBA4-06D1-4D40-A16A-BFD50179D6AC</TypeID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Format>NTFS</Format>
                            <Label>Local Disk</Label>
                            <Letter>C</Letter>
                            <Order>4</Order>
                            <PartitionID>4</PartitionID>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <PartitionID>3</PartitionID>
                            <Order>3</Order>
                        </ModifyPartition>
                        <ModifyPartition wcm:action="add">
                            <Format>FAT32</Format>
                            <Label>System</Label>
                            <Order>2</Order>
                            <PartitionID>2</PartitionID>
                        </ModifyPartition>
                    </ModifyPartitions>
                    <DiskID>0</DiskID>
                    <WillWipeDisk>true</WillWipeDisk>
                </Disk>
            </DiskConfiguration>
            <ImageInstall>
                <OSImage>
                    <InstallFrom>
                        <MetaData wcm:action="add">
                            <Key>/IMAGE/INDEX</Key>
                            <Value>4</Value>
                        </MetaData>
                    </InstallFrom>
                    <InstallTo>
                        <DiskID>0</DiskID>
                        <PartitionID>4</PartitionID>
                    </InstallTo>
                </OSImage>
            </ImageInstall>
            <UserData>
                <ProductKey>
                    <Key />
                </ProductKey>
                <AcceptEula>true</AcceptEula>
            </UserData>
        </component>
    </settings>
    <settings pass="oobeSystem">
        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <OOBE>
                <HideEULAPage>true</HideEULAPage>
                <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
                <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
                <ProtectYourPC>1</ProtectYourPC>
            </OOBE>
            <UserAccounts>
                <LocalAccounts>
                    <LocalAccount wcm:action="add">
                        <Password>
                            <Value>UABhAHMAcwB3AG8AcgBkAA==</Value>
                            <PlainText>false</PlainText>
                        </Password>
                        <DisplayName>User</DisplayName>
                        <Name>User</Name>
                        <Group>Administrators</Group>
                    </LocalAccount>
                </LocalAccounts>
            </UserAccounts>
            <TimeZone>Tokyo Standard Time</TimeZone>
        </component>
        <component name="Microsoft-Windows-International-Core" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
            <InputLocale>0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}</InputLocale>
            <SystemLocale>ja-JP</SystemLocale>
            <UILanguage>ja-JP</UILanguage>
            <UILanguageFallback>ja-JP</UILanguageFallback>
            <UserLocale>ja-JP</UserLocale>
        </component>
    </settings>
</unattend>

前回の記事では、Windows SIMをインストールして、カタログファイルを作成するところまで進みました。今回の記事では、実際にSIMを使って応答ファイルを作成していきます。

他の記事:
  1. 応答ファイル作成の準備
  2. インストールを自動化する応答ファイルの作成 (この記事)
  3. OOBEを自動化する応答ファイルの作成
  4. 応答ファイルでインストール後にコマンドを実行する

5. Windowsセットアップの応答ファイルを作成する

Windowsのインストールには2段階あります。前半が「Windowsセットアップ」で、プロダクトキーの入力や、インストール先パーティションの設定などを行います。後半が「OOBE (Out-Of-Box Experience)」で、言語やユーザーアカウントの設定を行います。

まず、この記事ではWindowsセットアップを自動化する項目から設定していきましょう。

① 新しい応答ファイルを作成します。
SIM 7

② 「Windows イメージ」パネルの「Components」を展開します。
SIM 9

③ インストールするWindows 10が64ビットの場合は「amd64_Microsoft-Windows」で始まる項目を、32ビットの場合は「x86_Microsoft-Windows」で始まる項目を使用します。

まずは「International-Core-WinPE」と書かれた項目を右クリックして「パス 1 windowsPE に設定を追加」を選択します。
※実際は「amd64_Microsoft-Windows-International-Core-WinPE_10.0.16299.15_neutral」のような長い名前ですが、省略して「International-Core-WinPE」と書くことにします。
※追加する項目は「International-Core-WinPE」です。ほとんど同じ名前で「WinPE」が付いていない項目があるので、間違えないように気を付けてください。
SIM 10

④ 同様にして、「Setup」をパス1に追加します。
※こちらも似た名前で「Shell-Setup」がありますが、単に「Setup」のほうを追加してください。
SIM 12

⑤ ウィンドウ中央の「応答ファイル」パネルで「International-Core-WinPE」をクリックすると、右のパネルに設定項目が表示されるので、次のように入力します。
コンポーネント 設定
International-Core-WinPE InputLocale 0411:{03B5835F-F03C-411B-9CE2-AA23E1171E36}{A76C93D9-5523-4E90-AAFA-4DB112F9AC76}
SystemLocale ja-JP
UILanguage ja-JP
UILanguageFallback ja-JP
UserLocale ja-JP

SIM 13
※「InputLocale」のやたら長い値はMicrosoft IMEを意味しています。ウェブページによっては「0411:e0010411」と書かれていることもあり、どう違うのか分かりませんでしたが、ここでは次の参考文書に示されている書き方に合わせました。
⑥ 「International-Core-WinPE」のツリーを開くと「SetupUILanguage」があるので、これにも設定を加えます。
コンポーネント 設定
International-Core-WinPE\SetupUILanguage UILanguage ja-JP

SIM 14

⑦ 以下の設定も記入します。
コンポーネント 設定
Setup\UserData AcceptEula true
Setup\UserData\ProductKey Key (プトダクトキー)

プロダクトキーがあれば「Key」の値を入力してください。なければ、エディションごとの共通プロダクトキーを入力することもできます。共通キーが使えるのは、今までに一度でもWindows 10をインストールしたことがあるPCのみです(多分)。

共通キー:
また、プロダクトキーに空の文字列を書き込んでおくこともできます。空の文字列を書き込むには、「Key」を右クリックして「空の文字列の書き込み」にチェックを付けます。
SIM 15

プロダクトキーを空白にした場合、Windowsセットアップで「インストールするオペレーティング システムを選んでください」の画面が表示されます。この設定を自動化してWindows 10 Proをインストールするには次の設定を加えます。
コンポーネント 設定
Setup\ImageInstall\DataImage\InstallFrom\MetaData Key /IMAGE/INDEX
Value 4

Valueの「4」は、前回の記事で「DISM /Get-WimInfo」コマンドで確認したインデックス番号です。この他、「/IMAGE/NAME」「Windows 10 Pro」と記入してもWindows 10 Proをインストールできます。詳細は次のリファレンスをご覧ください。
⑧ 「DiskConfiguration」を右クリックして「新しい Disk の挿入」をクリックします。 SIM 16

⑨ 新しく作られた「Disk」の設定を変更します。
コンポーネント 設定
Setup\DiskConfiguration\Disk DiskID 0
WillWipeDisk true

SIM 17

⑩ 「CreatePartitions」を右クリックして「新しい CreatePartition の挿入」を4回行います。
SIM 18

⑪ 同様に「新しい ModifyPartition の挿入」も4回行います。
SIM 19

⑫ 4つの「CreatePartition」を次のように設定します。
Extend false false false true
Order 1 2 3 4
Size 499 100 16
Type Primary EFI MSR Primary
※空欄の部分には何も書き込みません。

⑬ 4つの「ModifyPartition」を次のように設定します。
Format NTFS FAT32 NTFS
Label Windows RE System Local Disk
Letter C
Order 1 2 3 4
PartitionID 1 2 3 4
TypeID DE94BBA4-06D1-4D40-A16A-BFD50179D6AC

SIM 20

⑭ 次の設定を加えます。
コンポーネント 設定
Setup\ImageInstall\OSImage\InstallTo DiskID 0
PartitionID 4

※以上のパーティション構成はUEFI/GPTの場合の構成です。パーティションサイズは、Windows 10 Fall Creators Updateを普通にクリーンインストールしたときのデフォルト値にしています。Windows 10のパーティション構成については次のページが参考になります。

⑮ 以上でWindowsセットアップの応答ファイルが完成しました。ここで一度保存してみましょう。ファイル名は「Autounattend.xml」とします。
SIM 21

メッセージパネルに「設定は変更されていません。応答ファイルに保存されません。」という説明がたくさん現れると思いますが無視してください。

⑯ 一度応答ファイルを閉じて開き直すと、未設定の項目が消えてスッキリします。
SIM 22

参考

設定の詳細については次のページをご覧ください。
参考:

次の記事

次は、インストールの後半であるOOBEを自動化する設定を応答ファイルに追加していきます。

このページのトップヘ