Microsoft Sticky Notesの内容を別PCへ移行

OS: Windows 10 version 1709
Microsoft Sticky Notes 1.8.2.0, 2.1.17.0

Microsoft Sticky Notesの内容をひとしべひとしべコピーして別PCへ移行してくださいと作業監督の人はかつて仰っていたのだけれどもべらぼうな数の付箋を持つ人だと骨の折れることだからもう少し容易い手口はなかろうかと調べるものである。近頃のSticky Notesであるとデータは以下のフォルダにplum.sqliteのファイル名で作成されるようである。

%localappdata%\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState

これを別PCの同じフォルダへコピーしてやれば内容だけでなく太字やアンダーラインなどの装飾や付箋のカラー、ウィンドウの位置からサイズまで再現された。試みにplum.sqliteの中身を拝見するとそういった情報が格納されている様が見て取れるからなるほどとおもう。

$ sqlite3 plum.sqlite
sqlite> .header on
sqlite> .mode column

sqlite> .table
InkListItem       StorageChangeSet  StrokeMetadata    User
Note              Stroke            UpgradedNote

sqlite> select * from Note;
Text                                                                                             WindowPosition                                CreationNoteIdAnchor  CreationWidth  CreationHeight  Theme       Id                                    ParentId                              Revision    SyncRevision  CreatedById  CreatedAt           DeletedAt   DeletedById  UpdatedAt           UpdatedById
---------------------------------------------------------------------------------------------    --------------------------------------------  --------------------  -------------  --------------  ----------  ------------------------------------  ------------------------------------  ----------  ------------  -----------  ------------------  ----------  -----------  ------------------  -----------
%localappdata%\\Packages\\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\\LocalState\\plum.sqlite  V1NERgMAAAABAAAAAUUBAAAVAQAAMgEAAKsAAAAAAAA=                        320.0          320.0           Blue        a3758da8-c8c1-4d83-9707-2826a8293d0b  5e09a04a-7767-4cc3-bcdd-9995acd44d53  0           0                          636584095623655018                           636584369343910652
\b\i http://www7390uo.sakura.ne.jp/wordpress/                                                    V1NERgMAAAABAAAAAYABAACJAQAAXQEAAH4AAAAAAAA=  a3758da8-c8c1-4d83-9  0.0            0.0             Green       60a73dd6-8b3d-421b-9246-30dce0900128  5e09a04a-7767-4cc3-bcdd-9995acd44d53  0           0                          636584100076882996                           636584369448910247

なおまるきり異なるユーザへも移行できたし1.8.2.0から2.1.17.0への移行も可能であった。然し乍ら2.1.17.0から1.8.2.0へplum.sqliteを移すとSticky Notesが起動しなかったのでどうやらこのバージョン間での前方互換性はない模様である。ずっと古いSticky Notesであるとplum.sqliteではなく以下のフォルダにStickyNotes.sntとしてデータが保存されているということであった。

%appdata%\Microsoft\Sticky Notes

これを今どきのSticky Notesへ移行するのであればStickyNotes.sntをThresholdNotes.sntにリネームして次のフォルダへ放り込むと良いようである。

%localappdata%\Packages\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe\LocalState\Legacy

移行が都合良く運ばないときはSticky Notesをリセットしてやると順調に進むことがあった。

参考:
Microsoft Sticky Notes Importing Legacy Sticky Notes

.esdファイルから.wimファイルをエクスポートする

OS: Windows 10 version 1709
DISM 10.0.16299.15

応答ファイルを作成するにあたっては.wimファイルを要求されるからWindows10のISOファイルに含まれるinstall.wimを用いようと思っていたらinstall.esdしか見当たらない。どうも.esdファイルの内部に暗号化された.wimファイルが複数格納されているという。したがって必要な.wimファイルをエクスポートする必要がある情勢である。

一先ずISOファイルをマウントし、エクスプローラを起動して確認するとどうやらEドライブに落ち着いた模様である。

そうしたらコマンドプロンプトを管理者として実行しinstall.esdの居るe:\sourcesフォルダへ移動する。

c:\>e:
e:\>cd sources
e:\sources>dir /b install.*
install.esd

dismコマンドでinstall.esdの内容を覗いてみるとWindows 10の各種エディションが揃い踏みであった。

e:\sources>dism /get-wiminfo /wimfile:install.esd

展開イメージのサービスと管理ツール
バージョン: 10.0.16299.15

イメージの詳細: install.esd

インデックス: 1
名前: Windows 10 S
説明: Windows 10 S
サイズ: 16,088,647,927 バイト

インデックス: 2
名前: Windows 10 Home
説明: Windows 10 Home
サイズ: 15,902,243,813 バイト

インデックス: 3
名前: Windows 10 Education
説明: Windows 10 Education
サイズ: 16,086,095,424 バイト

インデックス: 4
名前: Windows 10 Pro
説明: Windows 10 Pro
サイズ: 16,086,813,205 バイト

操作は正常に完了しました。

このうち求めるものはインデックス4であるからこれをエクスポートする。大変時間を要する処理であるから暫しお茶に出掛けるのが良かろうと思う。仕上がった.wimファイルが損なわれていることに気付かないまま作業に取り組むと改めて時間を消費してエクスポートする事態に迫られるから、できるだけ早々に異常を検出するために尚いっそう暇はかかるけれども/checkintegrityオプションも指定しておきたいところである。

e:\sources>dism /export-image /sourceimagefile:install.esd /sourceindex:4 /destinationimagefile:c:\win10pro.wim /compress:max /checkintegrity

展開イメージのサービスと管理ツール
バージョン: 10.0.16299.15

イメージをエクスポートしています
[==========================100.0%==========================]
操作は正常に完了しました。

用心を重ねて.wimファイルが正しくマウントできるか確認するならこういう具合である。

c:\>mkdir mount
c:\>dism /mount-wim /wimfile:c:\win10pro.wim /index:1 /mountdir:c:\mount /readonly
c:\>dism /unmount-wim /mountdir:c:\mount /discard

アンマウントする際にはマウントしたフォルダから予め抜け出しておかないと「エラー: 0xc1420117 ディレクトリを完全にはマウント解除できませんでした。これは通常、アプリケーションがマウント ディレクトリ内のファイルを開いていることが原因です。マウント解除のプロセスを完了するには、これらのファイルを閉じてから、再度マウントを解除してください。」となる。

参考:
Windows 10 のダウンロード
What Is an ESD File?
Convert an ESD File to a WIM File for Driver Updates in Your Windows Image*
DISM イメージ管理のコマンド ライン オプション

15を超えるファイルを選択してもコンテキストメニューが省略されないようにする

OS: Windows 10 ver 1709
Excel 2016

夥しい数のエクセルファイルを一遍に選択して印刷しようと右クリックをしたところ「印刷」のメニューが見当たらない。僅かな数であれば印刷メニューがあらわれるのでこれは閾値が定められていると考えて調べると、デフォルトでは15ファイルまでという設計である。此れを超えると「開く」、「印刷」、「新規」のメニューが省かれるという情勢である。

15個のエクセルファイルを選択したときのコンテキストメニュー
16個のエクセスファイルを選択したときのコンテキストメニュー

この数を操作したいのであれば次のレジストリを作成、編集するとよいようである。

HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer
Name : MultipleInvokePromptMinimum
Type : DWORD

コマンドプロンプトから一息に操作してしまうならこういう具合である。このあとエクスプローラを再起動すると反映された。

>reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer" /v MultipleInvokePromptMinimum /t REG_DWORD /d 16 /f

10進数で16以上の値を放り込むとファイルの選択数に依らずコンテキストメニューがかいつまんで表示されることは無くなった。一方で操作できるファイルの数はこのレジストリの値にどうしても制限されるようである。MultipleInvokePromptMinimumに20をセットしたとすれば、ファイルを100選択してもメニューに「印刷」は表示されるけれども実際には1ファイル印刷して終いであった。なんと素直でない作りであるなとおもったけれども手も足も出ない。

参考:
Context menus are shortened when more than 15 files are selected

コマンドプロンプトからdesktop.iniを表示する

OS: Windows 10 version 1709

フォルーダオプションから「隠しファイル、隠しフォルダー、または隠しドライブを表示する」を選択し、「保護されたオペレーティング システムファイルを表示しない(推奨)」のチェックを外せばdesktop.iniのアイコンが姿をあらわすけれどもちょっと手間である。コマンドプロンプトであればも少し手数が少なくて良い。desktop.iniのファイル属性をattribコマンドで詳らかにするとこうである。

C:\Users\guro\Desktop>attrib
A  SH        C:\Users\guro\Desktop\desktop.ini

SとHはそれぞれシステムファイル属性、隠しファイル属性を示しておりこれらの属性がファイルを透明な存在たらしめる。そうであるからこれらを解除できればしめたものである。ヘルプによれば-sと-hオプションを用いると良い。

C:\Users\guro\Desktop>attrib -s -h desktop.ini
C:\Users\guro\Desktop>attrib
A                    C:\Users\guro\Desktop\desktop.ini

これで包み隠されていたdesktop.iniのアイコンが露見する。+sと+hオプションで以って再び非表示にできる。

C:\Users\guro\Desktop>attrib +s +h desktop.ini
C:\Users\guro\Desktop>attrib
A  SH                C:\Users\guro\Desktop\desktop.ini

参考:
attrib | Microsoft Docs

動画ファイルのアイコンをMPC-BEのものに関連付ける

OS: Windows 10 version 1709
MPC-BE(64bit) 1.5.2 (build 3445) beta

何の拍子か突然に動画ファイルのアイコンがMPC-BEのデフォルトアイコンで統一されてしまい泡を食った。MPC-BEのデフォルトアイコンがたいへん控えめなデザインであるから見た目を色とりどりの華やかなアイコンに再び変更しようと試みるものである。MPC-BEを起動したら「表示」→「オプション」と辿ってゆく。

プレーヤーのカテゴリにある「形式」の設定画面を表示し「変更」ボタンを押下する。

「アイコンの関連付け」にチェックを入れ「適用」をクリックする

ことでアイコンがきらびやかなデザインへと変更される。適用ボタンをクリックすると「既定のプログラムを設定する」ウィンドウがどうしてか立ち上がって来るけれども閉じて躱した。

なお、アイコン画像は以下のDLLファイルに格納されておりResourcesExtractなどで内部を窺うことができた。

C:\Program Files\MPC-BE x64\mpciconlib.dll