iTunes に読み取り専用のファイルを喰わせる - ネットワークフォルダ編

2010-06-20 09:32:59 | iPhone, iPod & iTunes


さて今回はライブラリをネットワーク上の他のマシン(ここでは XP が稼動するマシン)に置いている場合の話である。ネットワーク越しに共有フォルダへアクセスするには UNC パスを用いる必要があるため、前回のようにローカルフォルダのドライブパスと二刀流といった荒業を使うことができない。

ではどうするか。OS が XP Pro であればコトは簡単だ。共有設定ダイアログの「新しい共有」というボタンを押して同一の共有フォルダに対して複数の共有設定を作成すればよい。一方はフルアクセス、もう一方は読み取り専用のアクセスといった具合だ。

問題となるのは XP Home の場合である。前回も少し触れたが、この OS は「簡易ファイルの共有」といって機能の限定された共有フォルダしか作成することができない(XP Pro であっても諸事情により簡易ファイルの共有を使わざるを得ない場合は同様)。ダイアログに「新しい共有」というボタンがないのである。力技で直接レジストリに複数の設定を書き込んでみたが、共有フォルダとしては複数表示されるものの、アクセス許可は双方とも読み取り専用となってしまい、全く役に立たない。自宅サーバは XP Home マシンであり、長いこと手詰まりの状態が続いていた。

※共有設定はレジストリの HKLM¥SYSTEM¥ControlSet001¥Services¥lanmanserver¥Shares 以下に書き込まれている。また OS が認識している共有フォルダはコントロールパネルから [管理ツール > コンピュータの管理 > システムツール > 共有フォルダ > 共有] で確認することができる。


しかし解決のヒントは思わぬところに転がっていた。全く別の件で掻き集めた情報の中にここで使えるテクニックがあったのである。結論から言うと、NTFS の機能であるリパースポイント(Reparse Point)を用いて「ジャンクション」と呼ばれるフォルダのリンクを作成する。いわゆるフォルダのショートカットとは異なるのは、そこに実体があるかのように振舞うということ。

例えば "D:¥Music" のジャンクションとして "D:¥Music2" を作成する。エクスプローラから見るとジャンクションは通常のフォルダと見分けが付かない。"D:¥Music2" にアクセスすると普通に階層を辿れるが、その実態は "D:¥Music" そのものである。わかりやすくいえば「異なるフォルダとして存在しているが実体は同じ」ということになる。Windows では馴染みが薄いが概念的には Linux/Unix などでいう「シンボリックリンク」に近い。

これを利用して、"D:¥Music" をフルアクセス、"D:¥Music2" を読み取り専用の共有フォルダとして公開する。つまり hoge というサーバであれば "¥¥hoge¥Music"、"¥¥hoge¥Music2" というアクセス権の異なる二つの入り口を作ることができる。もちろん iTunes には後者を食わせればよい。

ジャンクションの利用に関しては「無知」が引き起こす大きな問題を孕んでいるため、ここではその作成法を解説しない。外部リンクを参照するなどして、その導入を検討してほしい。


外部リンク


最新の画像もっと見る