harukeeeのブログ

@harukeee が書いています。

Windows 10(1803)で sysprep 超まとめ

展開、クローニング作業の例を記事にしてみます。
Windows 7 以降、久しぶりに触ったので備忘録代わりです。

Windows 10 になって久しいですが、まだ苦労している人もいるはず。(きっと)
Azure AD で AutoPilot が使える環境でもなく、、という人(俺)へ。

「知ってる」って人も監査モードを見てから去ってください。
プロファイルのテンプレ化で書いてない記事が多いから。。


用意するもの


あらすじ

  1. Windows ADK で sysprep 用のファイルを作る
  2. クローン用パソコンにOSを入れる
  3. クローン用パソコンで設定を作り込む
  4. 応答ファイルでsysprepする


1.Windows ADK で sysprep 用の応答ファイルを作る

自分の PC でファイルを作成。OS は Windows 10 で。

Windows ADK をインストール。何かいっぱい入るけど気にしない。
f:id:harukeee:20180530212738p:plain

スタートメニューから Windows システム イメージ マネージャー (Windows SIM) を起動する。
f:id:harukeee:20180530213606p:plain

[ファイル] → [Windows イメージの選択] で Windows 10 の ISO ファイルを選択する。
(Professional か Enterprise か Education かがここで聞かれる)
左下「Windows イメージ」に設定テンプレート一覧が表示される。


(ここで、ツールの概要をざっと説明)
左下の「Windows イメージ」枠が sysprep 作成用テンプレート。
中上の「応答ファイル」枠が sysprep に使う XML ファイル。


Windows イメージ」からテンプレートを選択し、「応答ファイル」に追加・コピーする。
「応答ファイル」枠で値をセットする。
保存してできた XML ファイルを sysprep コマンド実行時に読み込ませます。(4)で説明。


上記を踏まえて、一部抜粋をご覧ください。

[XML 抜粋]

    <settings pass="specialize">
        <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">
            <CopyProfile>true</CopyProfile>
            <TimeZone>Tokyo Standard Time</TimeZone>
            <DoNotCleanTaskBar>true</DoNotCleanTaskBar>
            <ProductKey>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</ProductKey>
        </component>
    </settings>

「<component name=」の「Microsoft-Windows-Shell-Setup」が「Windows イメージ」の一覧にあります。
それを右クリックすると応答ファイルの追加先「<settings pass=specialize」が書いています。

サンプルXML を見れば設定そのままなので、丸パクリ可能です。が、
残念ながらサンプルそのままは使えません。Administratorパスワードが違うんで。。

「どれが何の設定?」はこちらのサイトをご覧ください。必要そうなのが抜粋されてます。
sysprepによるプロファイルコピー

その他は、英語ですがヘルプボタンか検索でどうぞ。

ページの最後にサンプル(Unattend.xml)を置いておきますので参考にどうぞ。
実際使っているので、さほど遜色ないかと思います。




2.クローン用パソコンにOSを入れる

(1)と同じ ISO で Windows 10 をインストールします。
インストール完了直後に 監査モード でセットアップします。

監査モード の入り方はキーボードとか言語とか選んだあと、Ctrl + Shift + F3 キー。
(↓こんな感じのときに押せばよい。割とタイミングはアバウト。)
f:id:harukeee:20180530224543p:plain

自動的に Administrator でログインします。
以降、アップデートや、ソフトのインストールや、ドライバや、プリンタなどなど。




3. クローン用パソコンで設定を作り込む

ここからはよくやりがちな事を。

① OneDrive を抹殺

OneDrive を停止

taskkill /f /im OneDrive.exe

OneDriveを削除

C:\Windows\SysWOW64\OneDriveSetup.exe /uninstall

エクスプローラー の サイドバー からも消す(.regで保存してね)
[OneDrive-Remove-SideBar.reg]

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}]
@="OneDrive"
"System.IsPinnedToNameSpaceTree"=dword:00000000


②ストアアプリを消す(PowerShell で実施)

ストアアプリ一覧取得

Get-AppxPackage | Where IsFramework -eq $false | Select Name,PackageFullName

ストアアプリをアンインストール(自分でカスタマイズしてね)

Get-AppxPackage king.com.CandyCrushSodaSaga | Remove-AppxPackage          # Candy Crush Soda Saga
Get-AppxPackage Facebook.Facebook | Remove-AppxPackage                    # Facebook
Get-AppxPackage *zune* | Remove-AppxPackage                               # Groove ミュージック、映画、テレビ
Get-AppxPackage KeeperSecurityInc.Keeper | Remove-AppxPackage             # Keeper
Get-AppxPackage 828B5831.HiddenCityMysteryofShadows | Remove-AppxPackage  # Hidden City アイテム探しアドベンチャー(FCU以降)
Get-AppxPackage NAVER.LINE* | Remove-AppxPackage                          # LINE
Get-AppxPackage 7EE7776C.LinkedInforWindows | Remove-AppxPackage          # LinkedIn(FCU以降)
Get-AppxPackage *solit* | Remove-AppxPackage                              # Microsoft Solitaire Collection
Get-AppxPackage flaregamesGmbH.RoyalRevolt2 | Remove-AppxPackage          # RoyalRevolt 2
Get-AppxPackage 89006A2E.AutodeskSketchBook | Remove-AppxPackage          # SketchBook(FCU以降)
Get-AppxPackage Microsoft.SkypeApp | Remove-AppxPackage                   # Skypeを始めよう
Get-AppxPackage SpotifyAB.SpotifyMusic | Remove-AppxPackage               # Spotify(FCU以降)
Get-AppxPackage *Twitter | Remove-AppxPackage                             # Twitter
Get-AppxPackage *xbox* | Remove-AppxPackage                               # Xbox
Get-AppxPackage Microsoft.XboxApp | Remove-AppxPackage                    # Xbox(AU以降)
Get-AppxPackage Microsoft.XboxGameOverlay | Remove-AppxPackage            # Xbox(AU以降)
Get-AppxPackage Microsoft.XboxIdentityProvider | Remove-AppxPackage       # Xbox(AU以降)
Get-AppxPackage Microsoft.XboxSpeechToTextOverlay | Remove-AppxPackage    # Xbox(AU以降)
Get-AppxPackage Microsoft.MicrosoftOfficeHub | Remove-AppxPackage         # 新しいOffice を始めよう
Get-AppxPackage Microsoft.5220175982889 | Remove-AppxPackage              # テレBing
Get-AppxPackage king.com.BubbleWitch3Saga | Remove-AppxPackage            # バブルウィッチ3(FCU以降)
Get-AppxPackage A278AB0D.MarchofEmpires | Remove-AppxPackage              # マーチ オブ エンパイア
Get-AppxPackage *bing* | Remove-AppxPackage                               # マネー、スポーツ、ニュース、天気
Get-AppxPackage Microsoft.OneConnect | Remove-AppxPackage                 # 有料Wi-Fi & 携帯
Get-AppxPackage DolbyLaboratories.DolbyAccess | Remove-AppxPackage        # Dolby Access

ストアアプリの不死身を無効化(新ユーザーでも復活しない)

Get-AppxProvisionedPackage -Online | Where DisplayName -Like "king.com.CandyCrushSodaSaga" | Remove-AppxProvisionedPackage -Online          # Candy Crush Soda Saga
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "Facebook.Facebook" | Remove-AppxProvisionedPackage -Online                    # Facebook
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "*zune*" | Remove-AppxProvisionedPackage -Online                               # Groove ミュージック、映画、テレビ
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "KeeperSecurityInc.Keeper" | Remove-AppxProvisionedPackage -Online             # Keeper
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "828B5831.HiddenCityMysteryofShadows" | Remove-AppxProvisionedPackage -Online  # Hidden City アイテム探しアドベンチャー(FCU以降)
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "NAVER.LINE*" | Remove-AppxProvisionedPackage -Online                          # LINE
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "7EE7776C.LinkedInforWindows" | Remove-AppxProvisionedPackage -Online          # LinkedIn(FCU以降)
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "*solit*" | Remove-AppxProvisionedPackage -Online                              # Microsoft Solitaire Collection
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "flaregamesGmbH.RoyalRevolt2" | Remove-AppxProvisionedPackage -Online          # RoyalRevolt 2
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "89006A2E.AutodeskSketchBook" | Remove-AppxProvisionedPackage -Online          # SketchBook(FCU以降)
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "Microsoft.SkypeApp" | Remove-AppxProvisionedPackage -Online                   # Skypeを始めよう
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "SpotifyAB.SpotifyMusic" | Remove-AppxProvisionedPackage -Online               # Spotify(FCU以降)
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "*Twitter" | Remove-AppxProvisionedPackage -Online                             # Twitter
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "*xbox*" | Remove-AppxProvisionedPackage -Online                               # Xbox
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "Microsoft.XboxApp" | Remove-AppxProvisionedPackage -Online                    # Xbox(AU以降)
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "Microsoft.XboxGameOverlay" | Remove-AppxProvisionedPackage -Online            # Xbox(AU以降)
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "Microsoft.XboxIdentityProvider" | Remove-AppxProvisionedPackage -Online       # Xbox(AU以降)
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "Microsoft.XboxSpeechToTextOverlay" | Remove-AppxProvisionedPackage -Online    # Xbox(AU以降)
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "Microsoft.MicrosoftOfficeHub" | Remove-AppxProvisionedPackage -Online         # 新しいOffice を始めよう
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "Microsoft.5220175982889" | Remove-AppxProvisionedPackage -Online              # テレBing
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "king.com.BubbleWitch3Saga" | Remove-AppxProvisionedPackage -Online            # バブルウィッチ3(FCU以降)
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "A278AB0D.MarchofEmpires" | Remove-AppxProvisionedPackage -Online              # マーチ オブ エンパイア
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "*bing*" | Remove-AppxProvisionedPackage -Online                               # マネー、スポーツ、ニュース、天気
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "Microsoft.OneConnect" | Remove-AppxProvisionedPackage -Online                 # 有料Wi-Fi & 携帯
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "DolbyLaboratories.DolbyAccess" | Remove-AppxProvisionedPackage -Online        # Dolby Access

sysprep 時にエラーになるストアアプリのアンインストール
追加アンインストール。(ユーザーログイン後は復活。要カスタマイズ)

Get-AppxPackage Microsoft.DesktopAppInstaller | Remove-AppxPackage
Get-AppxPackage Microsoft.GetHelp | Remove-AppxPackage
Get-AppxPackage Microsoft.Getstarted | Remove-AppxPackage
Get-AppxPackage Microsoft.Messaging | Remove-AppxPackage
Get-AppxPackage Microsoft.Microsoft3DViewer | Remove-AppxPackage
Get-AppxPackage Microsoft.MicrosoftStickyNotes | Remove-AppxPackage
Get-AppxPackage Microsoft.Office.OneNote | Remove-AppxPackage
Get-AppxPackage Microsoft.People | Remove-AppxPackage
Get-AppxPackage Microsoft.Print3D | Remove-AppxPackage
Get-AppxPackage Microsoft.StorePurchaseApp | Remove-AppxPackage
Get-AppxPackage Microsoft.Wallet | Remove-AppxPackage
Get-AppxPackage Microsoft.WebMediaExtensions | Remove-AppxPackage
Get-AppxPackage Microsoft.Windows.Photos | Remove-AppxPackage
Get-AppxPackage Microsoft.WindowsAlarms | Remove-AppxPackage
Get-AppxPackage Microsoft.WindowsCalculator | Remove-AppxPackage
Get-AppxPackage Microsoft.WindowsCamera | Remove-AppxPackage


③スタートメニューをテンプレート化

Export-Startlayout -path C:\Windows\Temp\Startmenu.xml
Import-StartLayout -LayoutPath C:\Windows\Temp\Startmenu.xml -MountPath C:\

C:\Users\Default\AppData\Local\Microsoft\Windows\Shell に LayoutModification.xml ができる。




4. 応答ファイルでsysprepする

社内インフラ担当ならおそらく「ググる」と同じ動詞レベル。

(1)で作った XML ファイルを

C:\Windows\System32\Sysprep

に置き、コマンドプロンプト

cd C:\Windows\System32\Sysprep
Sysprep /generalize /oobe /shutdown /unattend:○○○.xml

とすると何か始まって、そのうち勝手にシャットダウンします。

シャットダウン後は起動しないように。
なんでって、そりゃSIDがどーのこーのだから。(←自習)

このままディスクイメージを他のパソコンにクローニング。
Ghost やら Acronis やら。まあ色々ありますんで割愛。

参考情報ですが、プロダクトキーが間違っていると sysprep 後に [specialize] エラーが発生します。
まあ、普通にしてれば間違わないので単なる失敗談です。




おわりに

基本的に Active Directory がある前提で書いてるので、
細かい設定はポリシーでやってしまってください。

有用そうなリンクを少し貼っておきます。

Windows 10 法人向け技術情報まとめ | TechNet

Windows10Pro 企業内配布時の設定 クライアントストアアプリ無効編 - 1279Blog

「教育機関向け Microsoft ストア」でアプリを展開する方法 - Windows Blog for JapanWindows Blog for Japan



サンプル

[Unattend.xml]

<?xml version="1.0" encoding="utf-8"?>
<unattend xmlns="urn:schemas-microsoft-com:unattend">
    <settings pass="specialize">
        <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">
            <CopyProfile>true</CopyProfile>
            <TimeZone>Tokyo Standard Time</TimeZone>
            <DoNotCleanTaskBar>true</DoNotCleanTaskBar>
            <ProductKey>XXXXX-XXXXX-XXXXX-XXXXX-XXXXX</ProductKey>
        </component>
    </settings>
    <settings pass="generalize">
        <component name="Microsoft-Windows-PnpSysprep" 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">
            <DoNotCleanUpNonPresentDevices>true</DoNotCleanUpNonPresentDevices>
            <PersistAllDeviceInstalls>true</PersistAllDeviceInstalls>
        </component>
        <component name="Microsoft-Windows-Security-SPP" 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">
            <SkipRearm>1</SkipRearm>
        </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">
            <AutoLogon>
                <Password>
                    <Value>######PasswordHash######</Value>
                    <PlainText>false</PlainText>
                </Password>
                <Enabled>true</Enabled>
                <Username>Administrator</Username>
            </AutoLogon>
            <OOBE>
                <HideEULAPage>true</HideEULAPage>
                <NetworkLocation>Work</NetworkLocation>
                <SkipMachineOOBE>true</SkipMachineOOBE>
                <SkipUserOOBE>true</SkipUserOOBE>
                <ProtectYourPC>1</ProtectYourPC>
            </OOBE>
        </component>
        <component name="Microsoft-Windows-International-Core" processorArchitecture="wow64" 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>ja-JP</InputLocale>
            <SystemLocale>ja-JP</SystemLocale>
            <UILanguage>ja-JP</UILanguage>
            <UserLocale>ja-JP</UserLocale>
        </component>
    </settings>
    <cpi:offlineImage cpi:source="wim:c:/users/administrator/desktop/install.wim#Windows 10 Pro" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
</unattend>