Windows 10 1709 スタート画面レイアウトのバックアップと復元

最終更新日

2019/04/09
BackupStart.batの内容を修正。(レジストリのエクスポートに失敗することがあったため、reg exportの順番を最後に変更しました)

スタート画面のピン止めの配置を記録しておきたい。

タイルをずらしたり外してしまって、元に戻せなくなった時のために。

ネットで検索すると、PowerShellコマンド(Export-StartLayoutやImport-StartLayout)を使う方法が出てきます。でも、その方法ではどうしても穴だらけになるんですよね……。

次のURLに書かれている方法に、手を加えてみたら成功しました。

https://www.tenforums.com/tutorials/3088-backup-restore-start-layout-windows-10-a.html

注意事項

  • Windows ユーザーアカウントごとにバックアップ/復元する必要があります。
  • フォルダーオプションにて、拡張子を表示するように設定しておいてください。
  • 復元後は、保存していおいたスクリーンショットと見比べて、抜けがないかチェックしてください。
  • Windows 10をアップグレードやクリーンインストールした場合、旧環境のバックアップを使用した復元はしないでください。
復元時には、レジストリの操作もします。操作内容をよく理解してから実行してください。

スタート画面レイアウトのバックアップ

  1. 次のレジストリキーをエクスポートする。

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount

  2. 次のファイルをバックアップする。

    C:\Users\%username%\AppData\Local\Microsoft\Windows\Shell\DefaultLayouts.xml

  3. 次のフォルダーをバックアップする。

    C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\

  4. スタート画面のスクリーンショットを保存
Windowsにインストールされているアプリケーションのショートカットは、C:\ProgramData\Microsoft\Windows\Start Menu\Programsフォルダーと、C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menu\Programsフォルダーに入っています。後者のフォルダーには、ユーザーが追加したショートカットも含まれます。

スタート画面レイアウトの復元

  1. 次のレジストリキーを削除する。

    HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount

  2. バックアップ手順1でエクスポートしておいた、regファイルを実行する。

    (バックアップ時のHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccountキーがインポートされる)

  3. バックアップ手順2でバックアップしておいたDefaultLayouts.xmlファイルを、C:\Users\%username%\AppData\Local\Microsoft\Windows\Shellフォルダー内に上書きコピーする。
  4. バックアップ手順3でバックアップしておいたProgramsフォルダーを、C:\Users\%username%\AppData\Roaming\Microsoft\Windows\Start Menuフォルダー内に上書きコピーする。
  5. サインアウト→サインイン
    あるいは、PCを再起動

スタート画面レイアウトのバックアップと復元を、バッチファイルで実行

Windows 10 1709で動作確認済。

(スクリーンショットは手作業で保存してください)

バッチファイルの作り方

  1. バックアップ先として、フォルダーを1コ作成。
  2. その中にテキストファイルを2つ作成。(バックアップ用と復元用)

    ファイル名はここでは、
    BackupStart.bat
    RestoreStart_DropFolderHere.bat
    とする。

各バッチファイルの内容 (グレーの部分をコピーして貼り付け、上書き保存)

BackupStart.bat

@echo off

echo.
set /p ANS="スタート画面レイアウトのバックアップを開始します。よろしいですか? (Y/N)"
if "%ANS%"=="y" goto CONT
if "%ANS%"=="yes" goto CONT
exit

:CONT

set PF=%~dp0
cd /d %PF%

set D=%DATE%
set T=%TIME%
if "%T:~0,5"==" 0:00" set D=%DATE%
set T=%T:~0,8%
set T=%T: =0%
set TS=%DATE:/=%_%T::=%

set BF="BK_Start_%USERNAME%"
set BF2=%BF%_%TS%
md %BF2%

xcopy "%LocalAppData%\Microsoft\Windows\Shell\DefaultLayouts.xml" %BF2%\

xcopy /e "%AppData%\Microsoft\Windows\Start Menu\Programs" %BF2%\Programs\

reg export HKCU\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount %BF2%\DefaultAccount.reg

echo.
echo.
echo スタート画面レイアウトのバックアップ作業が終わりました。
echo.
echo コマンドプロンプト画面を閉じます。
echo.
echo.
pause
exit

バックアップフォルダー名は、「BK_Start_Windowsユーザーアカウント名_年月日_時刻」です。変更したい場合は、BK_Start_%USERNAME%の部分だけを変更してください。

フォルダー名に現在の日時を入れる記述は、次のサイトを参照させていただきました。

Windowsのバッチファイル中で日付をファイル名に使用する:Tech TIPS - @IT
https://www.atmarkit.co.jp/ait/articles/0405/01/news002.html

RestoreStart_DropFolderHere.bat

@echo off

echo.
SET /p ANS="スタート画面レイアウトの復元を開始します。よろしいですか? (Y/N)"
if "%ANS%"=="y" goto CONT
if "%ANS%"=="yes" goto CONT
exit

:CONT

set PF=%1
set REG=DefaultAccount.reg
set XML=DefaultLayouts.xml
set PROG=Programs

set LIST=%PF%\%REG% %PF%\%XML% %PF%\%PROG%
set ER=FALSE
for %%I in (%LIST%) do (
if not exist %%I (
echo %%I が見つかりません。
set ER=TRUE
) 
)
if %ER%==TRUE (
goto QUIT
) else (
goto RESTORE
)

:QUIT
echo.
echo.
echo バックアップフォルダーの中身を確かめてください。
echo 処理を中止します。
echo.
echo コマンドプロンプト画面を閉じます。
echo.
echo.
pause
goto EOF

:RESTORE
reg delete HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount /f

reg import %PF%\%REG%

xcopy /y %PF%\%XML% "%LocalAppData%\Microsoft\Windows\Shell\"

xcopy /y /e /d %PF%\%PROG% "%AppData%\Microsoft\Windows\Start Menu\Programs\"

echo.
echo.
echo スタート画面レイアウトの復元処理が終わりました。
echo サインアウト→サインイン、またはPCを再起動してください。
echo.
echo コマンドプロンプト画面を閉じます。
echo.
echo.
pause
exit

set LIST= から goto EOFまでの部分は、バックアップに必要なファイル・フォルダーが揃っているかをチェックしています。不足している場合は復元作業をしません。

上記バッチファイルの使い方

BackupStart.bat

ダブルクリックで実行します。
スタート画面レイアウトのバックアップを開始します。よろしいですか? (Y/N)」と表示されたら、y または yes と入力し、Enterを押します。

(BackupStart.batと同じ場所にバックアップフォルダーが作成されます)

DefaultAccount.regが作成されないことが度々ありました。このようにバックアップに失敗したものは削除し、もう一度バックアップを行ってください。

バックアップに成功していれば次のフォルダー・ファイルが作成されているはずです。

  • Programsフォルダー
  • Programs_ProgramDataフォルダー
  • DefaultAccount.reg
  • DefaultLayouts.xml

RestoreStart_DropFolderHere.bat

BackupStart.batで作成したバックアップフォルダーを、RestoreStart_DropFolderHere.batにドラッグ アンド ドロップします。

スタート画面レイアウトの復元を開始します。よろしいですか? (Y/N)」と表示されたら、y または yes と入力し、Enterを押します。

関連記事