「Windows 10ミニTips」は各回の作成時点で最新のWindows 10環境を使用しています。

OneDriveフォルダーの実態が異なるPCとPCでは、そこに保存したショートカットファイルが正しく動作しないケースが散見される。そこでフォルダーのショートカットファイルを対象に、各PCで意図するとおり動作する方法を紹介しよう。

rundll32.exeを利用する

通常、OneDriveクライアントは「%USERPROFILE%\OneDrive」フォルダーを使用し、各PC間でファイルを共有している。だが、サイズの大きいファイルを共有している場合、ホストドライブではなく別ドライブをOneDrive用フォルダーとして指定するケースも珍しくない。

例えば、SSDをホストドライブとして運用し、大容量のHDD上にOneDriveフォルダーを作成する場合もあるだろう。これ自体は問題ないが、OneDriveフォルダー内にショートカットファイルを作成していると、ちょっとした不便が発生する。

Windows 10のショートカットファイルは、絶対パスをリンク先として指定しているため、OneDriveフォルダー内に「フォルダーに対するショートカットファイル」を作成しても、前述のようにOneDrive用フォルダーが異なると正しく動作しない。それならば相対パスで指定すれば……と考えてしまうが、ショートカットファイルのリンク先は絶対パスのみ指定可能だ。

OneDriveフォルダーの指定で、OneDrive内に存在するショートカットファイルの動作が異なる

筆者はOneDrive for Businessを使用しているが、デスクトップPCと2-in-1 PCではパスが異なるため、フォルダーのショートカットファイルを開くとエラーになってしまう

この問題を解決するには、リンク先のカスタマイズを行えばよい。ここでは例として、「%USERPROFILE%\OneDrive\ドキュメント\Work1」フォルダーのショートカットファイルを、別のフォルダーから参照する手順を紹介しよう。

ショートカットファイルのプロパティダイアログを開き、その内容を「rundll32.exe url.dll,FileProtocolHandler "{相対パス}"」に書き換える。なお、この際アイコンの参照先が「rundll32.exe」になるため、「%SystemRoot%\System32\imageres.dll」からフォルダーアイコンに変更しよう。

対象となるショートカットファイルを選択した状態で[Alt]+[Enter]キーを押すか、「プロパティ」ボタンをクリック/タップ

「リンク先」を「C:\Users\kaz\OneDrive\ドキュメント\Work1」から「rundll32.exe url.dll,FileProtocolHandler "..\ドキュメント\Work1"」に変更したのち、「アイコンの変更」ボタンをクリック/タップ

テキストボックスの内容を「C:\WINDOWS\system32\imageres.dll」に変更してから「Tab」キーを2回押し、上から4つめのアイコン→「OK」ボタン→「OK」ボタンと順にクリック/タップ

これで、フォルダーのショートカットファイルは、OneDriveフォルダーのパスに限らず自由に開けるようになった。ただし、このTipsには2つの問題がある。フォルダーのショートカットファイルが「フォルダー」として動作しなくなるため、ダブルクリックすると異なるウィンドウが開くようになってしまう。また、フォルダーではないため、ドラッグ&ドロップも不可能だ。

変更したフォルダーのショートカットファイルを開くと、別のウィンドウが開く

ドラッグ&ドロップ時は「rundll32.exeで開く」ことになるため、ファイルのコピーや移動は行えない

OneDrive上で多くのファイルを管理し、各PCの環境をそろえたい方は、試してみてはいかがだろうか。なお、実行ファイルのショートカットファイルでは、このような問題は発生しない。

阿久津良和(Cactus)