ジャンクションという機能

2000以降で採用された機能らしいが今まで余り意識していなかったジャンクションという機能がある。
なぜ今頃になってその話題かというと、Vista以降で”Documents and Settings”が無くなり、代わりに”Users”というフォルダが使われるようになったからである。そのため古いソフトのインストールなどで”Documents and Settings”を使おうとした場合に強制的に”Users”に飛ばすためにこの機能が使われている。セキュリティ面を意識したらしいがまったく迷惑な話だ。
ところがこの”c:Users”に指定されているはずのジャンクションが何かの理由で”t:Users”となっていたりすると話がこんがらがる。指定したドライブが存在しないからだ。ソフトのインストールのエラーとして表示されるのは「指定したパスが長すぎます」という関係ない内容だからなおわかりにくい。
この間違った状態を解決するにはジャンクションを削除して正しいものを設定しなおす必要がある。
まず現在の状況を確認する。
dir /a
こうすることでフォルダの属性が表示される。
ジャンクションが張られている場合には”“とその後に仮想のフォルダ名と飛ばし先の実フォルダが表示される。
今回の場合には c: で dir /a すると
日付 時間 Documents and Settings [t:Users]
となっている。
まずこの間違ったジャンクションを削除する。コマンドはrmdirを使う。(DOS窓は管理者として実行する)
この場合には”c:Documents and Settings”のジャンクションを削除したいので
rmdir c:”Documents and Settings”
とする。(スペースを含むフォルダ名なのでダブルコーテーションで囲む)
一応 dir /a で消えたことを確認する。
次に正しいフォルダへのジャンクションを作成する
mklink /J c:”Documents and Settings” c:Users
書式としては
mklink /J (ジャンクション名) (リンク先フォルダ)
となる。
c:Documents and Settings <<===>> c:Users のジャンクションが作成されました
と表示されればOK。
一応 dir /a で正しく作成されたことを確認する。
日付 時間 Documents and Settings [c:Users]
となっているはずだ。