Windows 10 で Copyprofile を使用せずにスタートメニュー(とタスクバー) のデフォルト レイアウトをカスタマイズする
MDT でマスターイメージ展開をする時に、マスターイメージに設定しておきたい項目の1つとしてスタートメニューのレイアウト(タイルの並び順 ) があります。Windows 7 などではマスター環境を作成した際にスタートボタンの表示項目を変更し、 Sysprep 時に指定する応答ファイル(Unattend.xml) の Copyprofile 属性を使用してマスター環境のプロファイルをデフォルトのプロファイルにコピーすることで実現していました。
Windows 10 ではカスタマイズしたスタートメニューのレイアウトをデフォルトのレイアウトとして保存し、OS 上に作成されるユーザーのスタートメニューに反映させる仕組みがあり、より簡単にデフォルトのスタートメニュー のレイアウトをカスタマイズすることが可能です。また、同じ仕組みの中でタスクバーのカスタマイズにも対応しています。
カスタマイズしたスタートメニュー レイアウトをデフォルトのレイアウトとして設定する方法は以下の通りです。
- Windows 10 上でスタートメニューのレイアウトをカスタマイズする Windows 10 にログインし、UI 上でスタートメニューの並びを変更します
- スタートメニューへのアプリのタイルを追加
- タイルの並び順や大きさの変更
- タイルのグループ化 など
PowerShell を使用してレイアウトファイルにエクスポートする スタートメニューのレイアウトを出力するためにはPowerShell のコマンドレットExport-StartLayout を使用します。
/ja-jp/windows/configuration/customize-and-export-start-layout例) Export-StartLayout -Path C:\temp\StartLayout.xml
管理者権限の PowerShell ウィンドウから2で出力したレイアウトファイルをインポートする スタートメニューのレイアウトファイルのインポートには Import-StartLayout コマンドレットを使用します。
例) Import-StartLayout -LayoutPath C:\temp\StartLayout.xml -MountPath C:\
このコマンドでは現在実行中の Windows 10 のスタートメニューのデフォルト レイアウトを先ほどエクスポートしたレイアウトに設定しています。
このように、Windows 10 ではレイアウトファイルのエクスポート、インポートという非常に簡単な手段でカスタマイズしたスタートメニューをデフォルトのメニューのレイアウトに設定することができます。また、インポートされた時点でそれ以降に作成されるユーザーのスタートメニューに反映されるため、マスター作成時だけでなく、マスター展開時のタスクシーケンス内や、展開後の Windows 10 環境に PowerShell を使用してデフォルトのスタートメニューを変更することも可能です。デフォルトのスタートメニューレイアウトが設定された場合にも、ユーザーは使用時に自由にスタートメニューのレイアウトを変更することができます。さらに、スタートメニューのレイアウトをグループポリシーで設定することも可能です。
グループポリシーでのスタートメニューレイアウトの制御
Windows 10 1703 以降の Windows 10 Pro/Enterprise/Educationでは、スタートメニューのレイアウトを制御するグループポリシーを使用することで、動的なスタートメニューの制御が可能です。グループポリシーで制御する場合には [コンピューターの構成] - [管理用テンプレート] – [スタートメニューとタスクバー] – [スタート画面のレイアウト] を有効にし、レイアウトファイルを指定します。レイアウトファイルはローカルの Windows 10 上、もしくはアクセス可能なネットワーク上に配置し、参照します。
グループポリシーでスタートメニューのレイアウトを設定した場合には、管理者がレイアウトファイル内で指定しない限り、ユーザーはレイアウトを変更することはできません。レイアウトファイルでレイアウトが設定されている部分以外をユーザーが自由に変更できるよう設定することもできます。詳細は参考情報の「グループ ポリシーによる Windows 10 のスタート画面とタスク バーのカスタマイズ」、「スタート画面のレイアウトのカスタマイズとエクスポート」をご参照ください。
MDT タスクシーケンスでのレイアウトの設定
マスターイメージ作成後、 MDT から展開する際にタスクシーケンス内でデフォルトのスタートメニューを設定することもできます。タスクシーケンスの内で設定することで、同じマスターイメージを使用して異なるスタートメニューを持つ環境を展開することも可能です。タスクシーケンスで設定する場合には、State Restoreフェーズに PowerShell スクリプトを実行するタスクを追加します。
PowerShell のスクリプトファイルとレイアウトファイルは MDT サーバーの Deployment Share の Scripts フォルダ内に保存しています。
以下はサンプルの PowerShell スクリプトです。
#SetStartLayout.ps1
$LayoutFile = $Args[0]
Import-StartLayout -LayoutPath $LayoutFile -MountPath $env:SystemDrive\
スクリプトファイル内では単純に Import-StartLayout を実行しています。このサンプルではレイアウトファイルを引数として使用するので、PowerShell スクリプトを実行するタスク作成時にレイアウトファイルを引数として指定します。
レイアウトファイル上のアプリがインストールされていない場合
スタートメニューのレイアウトをエクスポートした際にスタートメニュー上にあったアプリがレイアウトをインポートし、適用された環境に存在しない場合にはスタートメニュー上のそのアプリのタイルがあった部分が空白となります。あとから同じアプリがインストールされると自動的にその領域にタイルが表示されます。
スタートメニューの表示幅を変更する
図の挿入 レイアウトファイルでスタートメニューの横幅を設定することができます。デフォルトの状態ではグループが2つ横に並ぶ配置ですが、1列にして縦に長いレイアウトにすることも可能です。デフォルトのレイアウトで横幅を指定した場合にも、ユーザーは自由に横幅を変更することができます。
スタートメニューの横幅をグループ1列分にする設定はレイアウトファイルの <LayoutOptions > 要素にStartTileGroupsColumnCount=”1” を追加します。
<LayoutOptions StartTileGroupsColumnCount="1" />
タスクバーのデフォルトレイアウトの設定
レイアウトファイルにタスクバーのレイアウトを記載し、タスクバーのデフォルトレイアウトを変更することも可能です。タスクバーのレイアウトは Export-StartLayout で出力されるレイアウトファイルには出力されないため、タスクバーのレイアウトについてはレイアウトファイルを編集し、タスクバーに関するレイアウト定義を追加する必要があります。
例)
デフォルトのタスクバー
UWP アプリとデスクトップアプリ(Excel) を追加したタスクバー
タスクバーのカスタマイズに方法の詳細については参考情報の「Windows 10 タスク バーの構成」のページを参照してください。
なお、エクスポートしたレイアウトファイルにはタスクバーに関する属性定義が含まれていないので、レイアウトファイルの最初の部分にある<LayoutModificationTemplate> タグ内に
xmlns:taskbar="https://schemas.microsoft.com/Start/2014/TaskbarLayout"
を追記する必要があります。タスクバーのレイアウトを定義する際には追加してください。(この記載がないとインポートする際にエラーとなり失敗します)
参考情報
- 「Windows 10 のスタート画面とタスク バーのレイアウトを管理する」
/ja-jp/windows/configuration/windows-10-start-layout-options-and-policies - 「スタート画面のレイアウトのカスタマイズとエクスポート」
/ja-jp/windows/configuration/customize-and-export-start-layout - 「Windows 10 タスク バーの構成」
/ja-jp/windows/configuration/configure-windows-10-taskbar - 「グループ ポリシーによる Windows 10 のスタート画面とタスク バーのカスタマイズ」
/ja-jp/windows/configuration/customize-windows-10-start-screens-by-using-group-policy