【質問】 パブリック(共有)のターゲットフォルダを変更するには

質問 【質問】 パブリック(共有)のターゲットフォルダを変更するには

  • 2007年1月15日 10:38
     
     

    OSをインストールしたドライブとは別のドライブにデータを格納するという使い方をする場合(例:WindowsとアプリケーションをCドライブに、データはDドライブに)、各ユーザのドキュメントは「場所」の「移動」で任意のドライブ/フォルダに変更が可能ですが、パブリックにはプロパティに「場所」タブがなくこの操作ができません。

    XPではレジストリエディタで、HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\ と辿り、Common DocumentsやCommon Music などを別ドライブの任意のフォルダに変更することによって、Shell Folders\ の値も変わり、再ログオン後は指定したフォルダを共有ドキュメントとして扱うことができました。

    Vista RC1ではどうだろうとレジストリエディタを起動すると、同じキーがありXPと同じ操作はできましたが結果が反映されず、パブリックのドキュメントやピクチャ、ビデオはデフォルトのままです。

    やはりできるならシステム格納ドライブとは別のドライブ(あるいは物理的に別のディスク)にデータを格納したいのですが、パブリック(共有)のドキュメント、ピクチャ、ミュージック、ビデオのターゲットフォルダの変更に成功された方がいらっしゃいましたら方法をご教示願えないでしょうか。

すべての返信

  • 2007年1月24日 2:10
     
     

    私自身、パブリックフォルダ全体を移行する方法が見つからず、困っていますが、パブリック内の個別のフォルダは移行できました。

    パブリックの個別のフォルダのプロパティには「場所」タブがありますので、面倒ですが、これでそれぞれのフォルダを指定しています。

    但し、Favorites、Recorded TV、パブリック デスクトップの3つのフォルダは場所タブが現れないので今のところ移動できていません。

    私自身、引き続き共有フォルダの全面移動の方法を探しています。

  • 2007年1月24日 8:00
     
     

    bantohさん、情報ありがとうございます。

    個別のフォルダ単位での移行ですね。1月30日に照準を合わせ、すでにRC1を削除してしまいましたので、製品版インストール後にさっそく試させていただきます。

    上位のusersフォルダをそっくり別ドライブに指定することができたという記事を見たことがありますが、やはりドキュメントだけを別ドライブに指定した運用がしたいと思っていますので、そうなるととりあえずは指定可能なフォルダ単位での移行でしょうかね。

    XPとのデュアルブートにしたときに、マイドキュメントや共有ドキュメントはXP、Vistaで同じ場所を参照するようにしたいとも思っていますが、どうやら少し試行錯誤が必要な感じがしています。

  • 2007年1月24日 11:30
     
     

    TweakVI Basic という、Vista x86/x64 対応の Powertoys系ソフトがあります。
    これのフリーバージョンでも、特殊フォルダの設定項目などもあるので、試してみたらいかがでしょう。

    ■ TweakVI Basic 1.0 build 1046
    http://www.totalidea.com/content/tweakvi/tweakvi-index.html

  • 2007年3月2日 5:48
     
     

    私のところでも、ドキュメント類を D: ドライブに置く運用を考えることになり、試行錯誤の末、とりあえず移動ができましたので報告します。まだよく理解できてないところがあり、もっとスマートな方法も含めて、問題点など指摘してもらえると嬉しいです。

    最初に新しいパブリックの場所を作成し、次にレジストリを変更して場所を切り替えます。 C:\Users\Public を D:\pub に変更する前提で進めます。

    1. 新しいパブリックの作成

    余計な問題を最小限にしたいので、オリジナルの C:\Users\Public 以下をアクセス権限等も含めて再現できるようにコピーします。これが実はやっかいで、 My Documents などの Junction も再現したコピーの方法がわかりません。 robocopy /mir コマンドで丸ごとコピーをすると Junction は Directory に読み替えられて、その部分が二重化するので良くありません。そこで Junction を区別して別途作成するように、次のスクリプトを試しました。

    robocopy C:\Users\Public D:\pub /mir /xj /copyall /dcopy:t /v
    cd /d C:\Users\Public
    icacls . /save D:\tmp\c1.txt
    cd Documents
    icacls My* /save D:\tmp\c2.txt /L
    cd /d D:\pub
    icacls . /restore D:\tmp\c1.txt
    cd Documents
    mklink /j "My Music" ..\Music
    mklink /j "My Pictures" ..\Pictures
    mklink /j "My Videos" ..\Videos
    icacls . /restore D:\tmp\c2.txt /L

    icacls コマンドで restore した時に、親からの継承を拒否する設定がわからないため、継承を有効にした状態になります。これをプロパティから個別に外すと、自分のアクセス権限もなくなるのでエラーメッセージが3つぐらい出ますが、変更は受け入れられて、だいたいオリジナルの通りになります。

    よくわからないのが、オリジナルの Junction は非常に強固なセキュリティ設定になっていてプロパティ画面の全面タブの情報も非常に少なくなっています。このあたりまでは再現できていません。また、Explorer でダブルクリックしたときの挙動も違います。

    とりあえず、ツリー丸ごとのコピーはできましたので、次に進みます。

    2. レジストリの変更

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList というキーに Public = %SystemDrive%\Users\Public があるので、これを Public = D:\pub に変更する。

    これで再起動すると、パブリックの場所が置き換わります。再起動直後になぜか、作業に使用したアカウントだけ、デスクトップのごみ箱が消えるという現象が起こりました。理由は不明ですが、個人設定のデスクトップアイコンの変更からすぐに復活できした。

    今のところ他に問題は起きていません。

    ユーザーフォルダも移動させるつもりですが、そちらはパブリックよりも階層が複雑なので手間がかかりそうです。