わすれなぐさ

自称情報ブログ・備忘録

間違いの指摘や役に立ちそうな情報など、些細な事でも気軽にコメントしてください。ブログ管理人へ直接連絡したいときは右下のフォームをご利用ください。

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

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

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

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

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

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

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

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

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

インストールメディア(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)を自動化する設定を応答ファイルに加えていきます。Windows WIMの使い勝手は前回、画像付きで説明したので、今回の記事は画像を省いています。

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>
                    <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>
    <cpi:offlineImage cpi:source="wim:c:/temp/install.wim#Windows 10 Pro" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>

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

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

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

OOBEの自動化は次の記事で行うので、まずは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/NAME
Value Windows 10 Pro

この設定は、前回の記事で「DISM /Get-WimInfo /WimFile:U:\sources\install.esd」コマンドで確認した内容に対応しています。「/IMAGE/INDEX」「4」と代わりに記入してもWindows 10 Proをインストールできます。詳細は次のリファレンスをご覧ください。
※install.esd(複数のエディションが含まれるイメージ)ではなくinstall.wim(単一のエディションのイメージ)を使う場合は、OS選択画面は表示されませんので、プロダクトキーが空白でも完全自動でインストールできます。
※メディア内のinstall.esdは、install.wimやinstall*.swmに置き換えても正常にインストールできます。


⑧ 「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を自動化する設定を応答ファイルに追加していきます。

このページのトップヘ