スタートメニューのバックアップとリストアにはBackupSMLが便利だった

Windows 10のスタートメニューはアイコンサイズの変更、カテゴリ分け、グループ化等、ちょっとしたランチャーアプリ並の機能を持っており、これがOS標準で使えるというのですから大変便利になりました。

しかし、この便利になったスタートメニューをがっつりカスタマイズし始めると、ふとバックアップはどうすれば良いのだろう、と悩みます。だって、OS初期化したらこのスタートメニューのレイアウトは元に戻ってしまうじゃありませんか。

ぼくとかOSの初期化が半分趣味になっているので2~3ヶ月に1度は初期化するし、そのたびにスタートメニューを使いやすいレイアウトに戻すのに苦労してきました。

以前は使えていた方法

スタートメニューのレイアウト情報ってどこに保存されているのでしょうか。

以前は C:\Users\[ユーザー名]\AppData\Local\TileDataLayer に存在しました。

このフォルダをバックアップしておき、元に戻したいときには別ユーザーでログインしてから、TileDataLayerフォルダを上書きすれば元に戻せました。
(※ログイン中のユーザーフォルダの中身は書き換えられないため)

でもですね、Windows 10のVersion 1709で突如として TileDataLayer フォルダが失くなってしまったのですよ。

理由はよく知りません。現在、2019年03月5日時点のWindows 10の最新バージョンは1809ですが、今確認してもTileDataLayerフォルダは存在しません。

どうやらスタートメニューの保存場所はレジストリに移動してしまったようです。

Powershellを使う方法

実はPowershellにはスタートメニューをエクスポート/インポートするコマンドがあります。

コマンドラインをバリバリ使っている人でもPowershellと聞くと身構える人がいますが、別に従来のコマンドプロンプトと大して変わりません。普通にスタートメニュー右クリックするだけで「Powershell」が出てきますし、コマンドプロンプトよりアクセスしやすいくらいです。

そして表示されたPowershellのコマンドプロンプトで以下のようなコマンドを入力するだけなので、けっこう気軽に使えます。

■Powershellでスタートメニューをエクスポートするコマンド

Export-StartLayout -path startmenu.xml

■Powershellでスタートメニューをインポートするコマンド

Import-StartLayout -LayoutPath startmenu.xml -MountPath C:\

コマンドが覚えられないなら、拡張子.ps1にして保存しておけば右クリックメニューから実行できるようにもなります。

しかし、ですね。

エクスポートは現在のユーザーからなので良いとして、インポートは「デフォルトユーザー」のプロファイルに書き込まれるのです。

デフォルトユーザー、つまり、新規ユーザーを作ったときに使われるプロファイルですね。だから、ここでインポートしても何も起こらず、あらためて新規ユーザーを作ったときにインポートしたスタートメニューが復元される、というわけです。

まぁこれはこれで使い道があります。例えば、社内のPCを管理している立場の人が、新しい部署に50台くらいPCを設置することになった場合、1台ずつスタートメニューを業務用に配置するとか、考えただけで気が遠くなります。

なので、あらかじめ良い感じのスタートメニューを作っておき、各PCにはAdministratorでログインしてスタートメニューをインポートして、最後に一般ユーザーのアカウントを追加する、というやり方です。

いやーでもさー、個人使用の場合はちと大袈裟だよね…。

OSの初期セットアップでも、クリーンナップでもどっちでも良いですが、必ずユーザーアカウントは作らされるし、セットアップが終わった後にあらためてAdministratorでログインして、インポートして、新規ユーザー作って、セットアップ時に作成したアカウントは削除して… というのもなんか… うーん、めんどくさい。

フリーソフトを使う方法

スタートメニューのレイアウトはレジストリに保存されるようになったっぽいので、そこをバックアップしようかなーとも思ったのですが、なんかけっこうバラけている上に中身がバイナリなので、この場所で合っているのか…ちゃんと動くのか…とチェックするのが怖くなりました。

というわけで、スタートメニューのバックアップしてくれるフリーソフトくらいあるんじゃね?と探してみたところ、やっぱり普通にありました。

多くのフリーソフトを開発して世に出しているSordumというチームが開発したBackup Start Menu Layoutという名前そのまんまなソフトです。

https://www.sordum.org/10997/backup-start-menu-layout-v1-1/

Backup Start Menu Layout v1.1の使い方

  1. Backup SMLをダウンロードする。
    https://www.sordum.org/downloads/?backup-start-menu-layout

  2. インストール不要なので、BackupSML.exeかBackupSML64.exe(64bit用)かお好きなほうを起動。

  3. BackupSMLを起動したらフロッピーのアイコンをクリックしてバックアップ開始。一瞬で終わる。


  4. すると New Layout としてレイアウトが保存される。複数保存できるし、そのデータはBackupSMLを実行したフォルダの下にMenuLayoutsというフォルダが作成され、個別に保存される。


  5. 動作確認のためスタートメニューをバ~ラバラにしてみる。


  6. BackupSMLで時計のアイコンをクリックすると復元。


  7. 驚いたことに再起動はおろかログオフすら必要なく、即座にスタートメニューが復元。

尚、BackupSMLはコマンドラインでも使用可能です。

BackupSML_x64.exe /?

と入力すればヘルプが表示されますが、/C でバックアップ、/Rでリストアが可能。

これなら毎日実行するバックアップ用のバッチファイルに組み込むのも簡単ですね。

まとめ

いやー、Backup SMLめちゃめちゃ便利ですね。

実を言うとスタートメニューのバックアップや復元についてはTileDataLayerフォルダがなくなってからずいぶんと悩んでいました。

一応、Powershellでエクスポートはしていましたが、OS初期化時にインポートする際にユーザーアカウントを作ったり消したりするのが面倒で面倒で。

まさかこんな簡単に、しかもログインしたままで、スタートメニューのバックアップとリストアが出来るフリーソフトが存在するとは思いもしませんでした。

便利なフリーソフトを開発してくれてありがとうっ!