PCキッティングを楽にするイメージ展開で困った部分の対策
本記事は「corp-engr 情シスSlack(コーポレートエンジニア x 情シス)#1 Advent Calendar 2022」の2022/12/20の記事です。
はじめに
PCキッティングは手組みで設定する?何台もあったらどうする?10台ぐらいまでなら手組み?時間かけて頑張れば行けるかもしれないが時間がかかる。
これを楽にするためにアプリケーションのインストールや各種設定をし終わったPCを雛形としてクローン化して、そのイメージをコピーすることである程度までは楽にできる。本記事はこの辺りをざっくりと説明し、トラブルを経験したところを主に記載する。
イメージ化するためには何がいるの?
HDDの中身をバックアップしてほかのHDDにコピーするのがイメージ展開では?いや、それだと少なくともOSのライセンス違反になる。イメージ展開するための雛形を作るためには必要なライセンスは・・・。
Software in CSP Windows 11 Pro Upgrade
イメージ化する場合には「再イメージング権」のある媒体からOSをインストールして作りこむ必要がある。
Docsは以下 ※以前はボリュームライセンスと呼ばれていた。
メーカーPCを購入した際に入っているOSはこの再イメージング権がないため1ライセンスでよいので購入の必要がある。
メーカーPCのOSをそのままイメージングすることはできないので、「Windows 11 Pro Upgrade」のイメージ媒体を利用して1からOSの入れ直しなければならない。
Software inCSP Windows 11 Pro Upgradeの認証回数について
ボリュームライセンス時代の知識ではあるが、500回ぐらい認証すると認証が上限となりライセンス認証ができなくなったことがあった。
その場合はMSに電話で相談をして、再イメージング権でのみ使用していることを伝えて、認証回数を増やしてもらったことがある。今はどうなのかわからないが、認証が通らなくなったらMSサポートに電話してみるのがよいだろう。
OSイメージ展開ソフト
ある程度設定をしたものをイメージバックアップし、他のPCにクローニングするためにOSイメージ展開ソフトを使う。Symante Ghost等が有名だろう。
再イメージング用の作成の流れ
OSをインストール
「再イメージング権」のある媒体のisoを使ってインストールSysprepで「システム監査モードに入る」を実行する。
administratorアカウントでログインされるので、セットアップで利用していたユーザを削除する。
※複数ユーザで作成した場合、アルファベット順で一番最初のユーザの文がDefaultプロファイルとなる。メーカーから配布されたドライバをインストール
予め入れておきたいソフトのインストール
例)プリンタドライバ、グラフィックドライバ等
※ユーザ依存が発生しそうなソフトはキッティング時に入れると良い。Windows Updateの適用
不要ソフトのアンインストール
OSに標準でついてくる不要なアプリをアンインストールする。
特に Microsoft Storeアプリはアンインストールしておかないと後ほど行うSysprepでエラーになる。Sysprepで「システムのOOBEに入る」
OSイメージ展開ソフトでイメージバックアップを取得する。
OSイメージ展開ソフトで各PCに配布する。
注意点:Sysprep
Sysprepはイメージ化するために行う必要がある。
「システムのOOBEに入る」を実行することで、各種設定を初期化し、次回OS起動時にOSの初回起動時の設定画面が表示させるようにできる。
「システムのOOBEに入る」をストアアプリがインストールされているSysprep適用時にエラーが出るので注意。
Sysprepで何するのか
OSは初回起動をするとSIDなる固有のIDが作成される。OSイメージを単純にバックアップしてコピーするとこのSIDが重複し、正常に動かない可能性がある。そのSIDを初期化するためにSysprepを使用する。
また、Sysprepにおいてxml形式の応答ファイルを読み込ませて実行することでOSの初回起動時の設定画面をある程度スキップすることができる。
xmlファイルの準備の仕方は「Sysprep」「自動応答ファイル作成」辺りを検索すると情報が手に入るだろう。
自動応答ファイルで使っているもの
Windows ADKで入る「Windowsシステムイメージマネージャ」を使って作成する。
実際に使っているもので意識して設定しているものは以下
・AcceptEula
こちらをTrueにしておくことで「ソフトウェアライセンス条項」をスキップできる。同意以外はないのでスキップするに越したことはない。
・ProductKey
ここでボリュームライセンスキーを入れておけば、キー入力は聞かれないので楽。
・SkipRearm ※もはやいらないか
以前はSysprepするにも回数制限があったが、下記を見る限りボリュームライセンスなら気にしなくてよいとの記述があるのでいらないようだが。
とは言え、おまじないとして入れている。
Sysprepを実行する前にやっておいたほうがいいこと
Sysprepを実行する前にLANケーブルを抜いた状態で以下を行っている。
・WSUS情報の削除
WSUS環境下の場合はコマンドプロンプトより以下を実行。
net stop wuauserv
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v AccountDomainSid /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v PingID /f
REG DELETE "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate" /v SusClientId /f
・Microsoft store起因のsysprepエラー回避GPOの適用
コマンドプロンプトで以下を実行
rem Microsoft コンシューマー エクスペリエンスを無効にする の有効化
reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\CloudContent" /v "DisableWindowsConsumerFeatures" /d "1"
rem 更新プログラムの自動ダウンロードおよび自動インストールをオフにする の有効化
reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\WindowsStore" /v "AutoDownload" /d "2"
rem 最新バージョンの Windows への更新プログラム提供をオフにする の有効化
reg add "HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\WindowsStore" /v "DisableOSUpgrade" /d "1"
rem ポリシーの適用
gpupdate
・ストアアプリの削除
Powerhshellで以下を実行 (21H2までは実績あり)
Import-Module Appx
Import-Module Dism
#ストアアプリをアンインストール
Get-AppxPackage -AllUsers king.com.CandyCrushSodaSaga | Remove-AppxPackage # Candy Crush Soda Saga
Get-AppxPackage -AllUsers Facebook.Facebook | Remove-AppxPackage # Facebook
Get-AppxPackage -AllUsers *zune* | Remove-AppxPackage # Groove ミュージック、映画、テレビ
Get-AppxPackage -AllUsers KeeperSecurityInc.Keeper | Remove-AppxPackage # Keeper
Get-AppxPackage -AllUsers 828B5831.HiddenCityMysteryofShadows | Remove-AppxPackage # Hidden City アイテム探しアドベンチャー(FCU以降)
Get-AppxPackage -AllUsers NAVER.LINE* | Remove-AppxPackage # LINE
Get-AppxPackage -AllUsers 7EE7776C.LinkedInforWindows | Remove-AppxPackage # LinkedIn(FCU以降)
Get-AppxPackage -AllUsers *solit* | Remove-AppxPackage # Microsoft Solitaire Collection
Get-AppxPackage -AllUsers flaregamesGmbH.RoyalRevolt2 | Remove-AppxPackage # RoyalRevolt 2
Get-AppxPackage -AllUsers 89006A2E.AutodeskSketchBook | Remove-AppxPackage # SketchBook(FCU以降)
Get-AppxPackage -AllUsers Microsoft.SkypeApp | Remove-AppxPackage # Skypeを始めよう
Get-AppxPackage -AllUsers SpotifyAB.SpotifyMusic | Remove-AppxPackage # Spotify(FCU以降)
Get-AppxPackage -AllUsers *Twitter | Remove-AppxPackage # Twitter
Get-AppxPackage -AllUsers *xbox* | Remove-AppxPackage # Xbox
Get-AppxPackage -AllUsers Microsoft.XboxApp | Remove-AppxPackage # Xbox(AU以降)
Get-AppxPackage -AllUsers Microsoft.XboxGameOverlay | Remove-AppxPackage # Xbox(AU以降)
Get-AppxPackage -AllUsers Microsoft.XboxIdentityProvider | Remove-AppxPackage # Xbox(AU以降)
Get-AppxPackage -AllUsers Microsoft.XboxSpeechToTextOverlay | Remove-AppxPackage # Xbox(AU以降)
Get-AppxPackage -AllUsers Microsoft.MicrosoftOfficeHub | Remove-AppxPackage # 新しいOffice を始めよう
Get-AppxPackage -AllUsers Microsoft.5220175982889 | Remove-AppxPackage # テレBing
Get-AppxPackage -AllUsers king.com.BubbleWitch3Saga | Remove-AppxPackage # バブルウィッチ3(FCU以降)
Get-AppxPackage -AllUsers A278AB0D.MarchofEmpires | Remove-AppxPackage # マーチ オブ エンパイア
Get-AppxPackage -AllUsers *bing* | Remove-AppxPackage # マネー、スポーツ、ニュース、天気
Get-AppxPackage -AllUsers Microsoft.OneConnect | Remove-AppxPackage # 有料Wi-Fi & 携帯
Get-AppxPackage -AllUsers DolbyLaboratories.DolbyAccess | Remove-AppxPackage # Dolby Access
Get-AppxPackage -AllUsers Microsoft.LanguageExperiencePackja-JP* | Remove-AppxPackage # Microsoft.LanguageExperiencePackja-JP
#ストアアプリの不死身を無効化
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
Get-AppxProvisionedPackage -Online | Where DisplayName -Like "Microsoft.LanguageExperiencePackja-JP" | Remove-AppxProvisionedPackage -Online #Microsoft.LanguageExperiencePackja-JP
#sysprep 時にエラーになるストアアプリのアンインストール
Get-AppxPackage -AllUsers Microsoft.DesktopAppInstaller | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.GetHelp | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.Getstarted | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.Messaging | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.Microsoft3DViewer | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.MicrosoftStickyNotes | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.Office.OneNote | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.People | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.Print3D | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.StorePurchaseApp | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.Wallet | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.WebMediaExtensions | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.Windows.Photos | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.WindowsAlarms | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.WindowsCalculator | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.WindowsCamera | Remove-AppxPackage
Get-AppxPackage -AllUsers Microsoft.WindowsCamera | Remove-AppxPackage
その後自動応答ファイルを指定してSysprepを実行。
無事シャットダウンをしたら、バックアップを行って、マスタイメージとしましょう。
Sysprepでのトラブルが発生した場合には
下記で対処した際の記録をまとめた。
おわりに
今回は大量PC作成で楽になるイメージ作成で気を付ける点について記載した。具体的なやり方については他の先人達が詳しく説明しているだろうから、そちらにお任せする。
気づいたり、新たな発見があれば記載していく。