Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

taskbar-backup

タスクバーのピン留めを丸ごとバックアップして、消えたときに元通りに復元する Windows 用ツールです。

Windows 10 / 11 専用です。Microsoft が公式に保証していない内部の仕組みに依存しています(詳しくは「制約」)。

ざっくり言うと、こうなります。

ふだん — タスクバーを好みの状態に整えたら、backup.bat をダブルクリックしておく

事故の日 — Windows Update などでピンが全部消えても、restore.bat をダブルクリックすれば、控えを撮った時のタスクバーが並び順まで含めて丸ごと戻る

うっかりの日 — 操作ミスでピンを1個外してしまったときも同じです。外したピンはごみ箱に入らず、「元に戻す」も効きません。ふつうはアプリを探して挿し直し、並び順も手で直すことになります(Chrome でサイトから作ったショートカットは、作り直しがさらにひと手間です)。restore.bat なら控えの状態にまとめて戻せます

Note

「ピンが消える」は実在する事故です。アップデート後にタスクバーのピン設定が正しく引き継がれない既知の問題が、Microsoft のサポートフォーラムやニュース記事で報告されています。毎回起きるものではありませんが、起きたら手で挿し直すしかありません——このツールはその日のための保険です。

  • 人間がやること: ピンを整えたら backup.bat を押す。消えたら restore.bat を押す
  • 機械がやること: ピンの実体ファイルと「どれがピン留めされているか」の記録の両方を控える。ついでに、ピン名を汚す見えないゴミを掃除する(下の「ゴミ掃除」)

インストールは不要です。Windows に最初から入っているものだけで動きます。ターミナルを開く必要も、コマンドを覚える必要もありません。

導入

入手のしかたは2通りあります。

A. ZIP でもらう

  1. Releases から taskbar-backup-v○.○.zip をダウンロードする
  2. ZIP を好きな場所に解凍する

B. Git でもらう(Git を使えるならこちらが楽です。更新も git pull で済みます)

git clone https://github.com/arinansamo/taskbar-backup.git

どちらの場合も、そのあとは共通です。

  1. タスクバーを好みの状態に整える
  2. backup.bat をダブルクリックする

これで最初の控えが撮れました。以後、ピンの構成を変えるたびに backup.bat を押し直してください。

Note

はじめて実行するとき、警告が出ることがあります。

  • 「WindowsによってPCが保護されました」→「詳細情報」→「実行」の順にクリック
  • 「セキュリティの警告」→「開く」を押す

どちらも、インターネットからダウンロードしたファイルに Windows が出す通常の警告です。

仕組み

Windows はタスクバーのピンを2か所に分けて記録しています。

場所 中身
隠しフォルダ(%APPDATA%\...\User Pinned\TaskBar) ピンの実体である .lnk ファイル
レジストリ(HKCU\...\Explorer\Taskband) 「どれを・どの順で」表示するかの一覧

タスクバーの表示を決めているのは一覧(レジストリ)のほうで、.lnk はそこから参照される素材です。片方だけ戻しても復元にはならないため、このツールは必ず両方をセットで控え、セットで戻します。

taskbar-pins\
├─ backup.bat        控えを撮る
├─ restore.bat       控えの通りに戻す
├─ tools\            実体の PowerShell スクリプト
├─ pinned\           控えその1: ピンの .lnk 一式(backup が作る)
└─ taskband.reg      控えその2: ピン一覧の記録(backup が作る)

pinned\ と taskband.reg は毎回丸ごと撮り直しで、常に「最後に backup した瞬間」だけが残ります。

使い方

  • 控えを撮る — backup.bat をダブルクリック。「前回の控えは消えます。実行しますか?」の確認に「はい」を押すと実行されます(壊れたタスクバーの日に押し間違えて、無事な控えを上書きしてしまう事故を防ぐための確認です)
  • 控えの通りに戻す — restore.bat をダブルクリック。確認なしで即実行します。反映のためにエクスプローラーを再起動するので画面が一瞬瞬きますが、開いていたフォルダーは復元後に自動で開き直されます(場所のみ。ウィンドウの位置やタブ構成までは戻りません)

どちらも、正常に終われば黒い窓は 2 秒で勝手に閉じます。窓が残っているときは、何か報告(ゴミを削除した・警告・エラー)が書いてあるときです。

restore が戻すのは「最後に backup を押した瞬間」の状態です。その後に増やしたピンは消え、減らしたピンは復活します(それが復元というものなので)。

ゴミ掃除(backup のおまけ機能)

ピンを外したとき、Windows がまれに .lnk ファイルの削除をしそこねます。残ったファイルは画面には出ませんが名前を占有し続けるため、同じアプリをピンし直すと X (2).lnk のような番号付きの名前にされてしまいます。

backup.bat は控えを撮る前に毎回、隠しフォルダの全ファイルをピン一覧と突き合わせ、一覧に載っていないファイル(=この削除しそこねの残骸)を削除します。これで番号付きの名前は発生しなくなります。番号付きの名前を見つけたときは、ピンを挿し直すよう警告も出します。

万一この判定が本物のピンのファイルを巻き込んでも、起きるのは「そのピンのアイコンが1個壊れる」だけで、挿し直せば直ります。

制約

  • 控えは、撮った PC・撮ったユーザー専用です。 控えの中身には絶対パス(ユーザー名入り)が含まれるため、他人や別の PC に配って復元することはできません。自分の環境の保険としてお使いください
  • ピンの保存場所と形式は Microsoft が公式に文書化・保証していないため、将来の Windows 更新で動かなくなる可能性があります(Windows 10 / 11 の現行では安定して同じ仕組みです)
  • OS の言語設定・ユーザー名・ドライブ構成には依存しません。管理者権限も不要です

安全について

  • 触る場所は4つだけです。自分のフォルダ内の pinned\ と taskband.reg(控え)、Windows 側の隠しフォルダとレジストリの Taskband キー(ピンの現物)。それ以外のファイル・設定には一切触れません
  • レジストリで書き換えるのは自分のアカウント領域(HKCU)のピン一覧だけで、システム全体の設定には触れません
  • backup が削除するのは「一覧に載っていないファイル」だけです。表示中のピンの実体を消すことはありません
  • 設計上、影響が及ぶ範囲は上記4か所(タスクバーのピン関連)に限定されます。万一の不具合の際も、ピンを挿し直すことで回復できる想定です

開発メモ

利用者が触る2つの .bat は、tools\ にある同名の PowerShell スクリプトを呼ぶだけの薄いランチャーです。

実装の決めごと:

  • Windows に最初から入っている Windows PowerShell 5.1 を対象にする。外部モジュールも PowerShell 7 固有の構文も使わない
  • .ps1 は UTF-8 (BOM付き)。BOMが無いと PowerShell 5.1 が日本語を Shift-JIS として読んで化ける
  • .bat からは -ToolDir "%~dp0." と末尾ドット付きでパスを渡す("%~dp0" のままでは末尾の \ が閉じ引用符を壊す)
  • ピン一覧の実体はレジストリ Taskband キーの Favorites 値(非公開形式のバイナリ)。ピンを一覧に登録する公開 API は存在しない(アプリが勝手に自分をピンするのを防ぐため意図的に塞がれている)ので、合成はあきらめ、本物の値を丸ごと書き出して丸ごと書き戻す方式を採る
  • レジストリの書き戻しはエクスプローラーの停止中に行う。エクスプローラーは終了時に自分の記憶でピン一覧を上書きし返すため、順序は「止める → 書く → 起動する」で固定
  • ゴミ判定の名前照合は、Favorites のバイト列を UTF-16(偶数・奇数両方のオフセット)とシステムの ANSI コードページで解読し、さらに実ファイルの 8.3 短縮名でも突き合わせる。一覧内の名前は 8.3 短縮名(VISUAL~1.LNK 等)で入っていることが多く、UTF-16 の名前は奇数バイト位置から始まることがあるため。判定を誤って本物を消す方向が一番まずいので、照合は「どれか1つでも一致したら本物」と保守的に倒す
  • 控えの pinned\ と taskband.reg は個人情報(ユーザー名入りのパス、使用アプリ一覧)を含むため、.gitignore でリポジトリから除外している

ライセンスと免責

MIT License です。無料で自由に使えるかわりに、無保証です。

Important

タスクバーのピンは Windows の非公開領域にあり、このツールはそこを読み書きします。「安全について」の通り被害範囲は限定される設計ですが、それでも万一何かが起きたとしても、作者は責任を負えません(同梱の LICENSE に書いてある通りです)。

About

タスクバーを丸ごとバックアップして、いつでも元通りに復元する Windows 専用ツール

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages