treedown’s Report

システム管理者に巻き起こる様々な事象を読者の貴方へ報告するブログです。会社でも家庭でも"システム"に携わるすべての方の共感を目指しています。

※https化しました。その影響でしばらくリンク切れなどがあるかもしれませんが徐々に修正していきます。 リンク切れなどのお気づきの点がございましたらコメントなどでご指摘いただけますと助かります。

アプリケーション経由だと表示されないショートカット

個人のPCでは全く気にすることではないけども、会社のPCであれば多少は気にしておきたいプロファイルの違い。
今回はプロファイルの違いによってユーザの使い勝手に影響した話をご報告です。

デスクトップ上のショートカット

デスクトップ上に表示されているショートカット、ファイルの保存先をNASのようなファイルサーバにしている場合には
「ショートカットをダブルクリックして共有フォルダを開く」
という動作をしますが、今回はその動作について問合せがありました。

「デスクトップにあるはずのファイルサーバへのショートカットがない、ってユーザからジャンジャン言われますよ。」

え?でも…、あるじゃないですか。
そのユーザのPCのデスクトップには確かにファイルサーバの共有フォルダへのショートカットが存在していました。

「別名で保存、ってやるときには無いじゃないか、ってことらしいよ。」

うーん、それってWordとかExcelとかアプリケーション経由でってこと?

「そう、いま言われたのはメモ帳だけどね。保存先を共有フォルダに指定するときだけじゃなくって、アプリケーションを開いてからアプリ内でファイルを開く(読込む)時もそう。」

ここで思ったのは、そのファイルサーバへのショートカット。
そのショートカットはPC標準環境として設定しているので、ログインユーザのデスクトップ(ユーザのプロファイル内のデスクトップフォルダ)じゃなく、パブリックのデスクトップ(C:\Users\Public\Desktop)に保管して、PCのログインユーザがなんでも同じ共有フォルダが表示されるように設定していました。

試してみたら、

Word/Excel/notepad(メモ帳)と言ったアプリケーションのメニューバーから「ファイルを開く」を選択して、ファイルサーバの共有フォルダを選択しようとデスクトップ上にある共有フォルダへのショートカットを参照しようと探してみたものの…

ない

アプリケーション経由で開くデスクトップはログインユーザのデスクトップを参照しているので、当然のことながらパブリックのデスクトップに保管してあるショートカットは参照できない、という動きでした。

検証

もうちょっと詳しく動作を見てみます。
Windows10に移行してから明確に試してなかったのですが、アプリケーション経由でデスクトップを開いたときに参照されるフォルダは
「ユーザプロファイルのデスクトップフォルダのみ」
ということが分かりました。
Windows10でパブリックのプロファイルにあるデスクトップ上に存在するショートカットが存在するPC、

f:id:treedown:20190228165341p:plain
ここで、Wordを起動して、文書を保存しようとします。そうすると、デスクトップ上にはパブリックのデスクトップに配置したショートカットが表示されません。

f:id:treedown:20190228165410p:plain
※アドレス欄が<C:\Users\%USERNAME%\Desktop>という指定になっているのが見て取れます。これでユーザプロファイル上のデスクトップフォルダをピンポイントで参照しているので、パブリックのデスクトップ上に配置した共有フォルダへのショートカットが表示されないんだろうな、と考えました。

ちなみにアプリケーションで違いはありませんでした。Word(winword)でもワードパッド(wordpad)でも、メモ帳(notepad)でも同じです。

…でもなぁ、これWindows7とかWindows8.1の時は違ったような…。
そう思って、Windows8.1で確認してみました。
さっそくショートカットを同じように置いて、

f:id:treedown:20190228165441p:plain
同じようにワードパッド(wordpad)で試してみました。(Officeが入ってないPCしか試せそうな環境がなかったので)
ワードパッドでファイルを「名前を付けて保存」ってすると…

f:id:treedown:20190228165459p:plain
ん?ちゃんと表示されます。
この画面からプロパティを開いて見ましたが、ちゃんとパブリックのデスクトップに配置されているショートカットがデスクトップ上に表示されることが確認できました。
ってことは、これはWindows10特有の動きなのかな、という感じがします。

対処法

月並みで簡単な対処法ですが、パブリックのデスクトップにあるショートカットをログインユーザのデスクトップ上に移動する、
という処理で済ませるしかないか、と言う結論に至りました。

コピーだとパブリックのデスクトップにショートカットがあることによって同じショートカットが重複して表示されます。悪くないけどあまりユーザからの見かけ上は良くないなぁ、ということで移動してしまうことにしました。

バッチファイルで
-------------------------------------------------------
if exist "%ショートカットの.lnkファイルへのフルパス%" goto mvlnkfile
rem echo 対象のショートカットは存在しませんでした。次へ。
rem pause
goto end

:mvlnkfile
rem 既存ファイルが発見されれば削除
SET COPYCMD=/Y
del "%ショートカットの.lnkファイルへのフルパス%"
rem echo 対象ファイルのファイル削除を実行しました。
rem pause

:end
-------------------------------------------------------
こんな感じの処理を作っておいて、削除した後に
-------------------------------------------------------
xcopy "%ファイル保管場所%" "%ファイル送付場所%" /D /I > nul
-------------------------------------------------------
xcopyコマンドで共有フォルダに保存した、ショートカットをユーザプロファイルのデスクトップにコピーすることにしました。
※ユーザプロファイルへのショートカットコピーには権限が必要ありませんが、パブリックのプロファイル上にある既存のショートカットファイルを削除するためには管理者権限が(UACが動作して)要求されます。

まとめ

Windows10ではアプリケーション経由ではパブリックのデスクトップに配置したショートカットが参照できなくなっているから、サインインしているユーザプロファイルのデスクトップに配置しないといけないよ、という話でした。
MSさん、こういうの、変えないで欲しい…。