none
共有フォルダからフォルダ移動を行った際にアクセス権設定が消える RRS feed

  • 質問

  • 【目的】
    1つのファイルサーバ内、同一ドライブでアクセス権を保持したままフォルダ移動を行いたい。

    フォルダ容量が数100GBほどあり、既に社内で共有しているフォルダへの移動を行う為、robocopyは時間がかかってしまうため避けたい。

    【トラブル内容】
    該当フォルダを"切り取り" → 対象のディレクトリへ"貼り付け"を行った。
    元々持っていたアクセス権が全て消え、ログインしていた管理者アカウントのみがアクセス権に設定されていた。

    【詳細】
    A:移動元フォルダ(共有:every one にフルコントロール)
    B:移動先フォルダ
    C:移動したいフォルダ

    A→BへCフォルダを切り取り貼り付けた際に上記トラブルが起きた。

    【動作テスト結果】

    複数のパターンで動作テスト行った結果、下記のことまでは判明した。

    移動元フォルダが共有設定されていると、再現率100%でアクセス権が消える。

    移動先フォルダの共有設定有無、フォルダ容量は関係なく起こる。

     【環境】
    windows2012serverR2

    上記トラブルについて、何か情報ございましたらご教授願えますでしょうか。

    何卒宜しくお願い致します。

    2016年8月26日 9:43

回答

すべての返信

  • フォルダのコピー時にACLが消えてしまうのは仕様です。

    なので、

    ・robocoyやフリーソフトなどで権限そのままでコピーする
    ・バックアップソフトでバックアップ後に違う場所に復元する(権限がどうなるかはソフトによる?)
    ・iaclsといったコマンドでACLをバックアップして再設定

    といった工夫が必要です。

    フォルダーを別のフォルダーにコピーおよびそのアクセス許可を保持する方法
    https://support.microsoft.com/ja-jp/kb/323007

    icaclsコマンドでファイルのアクセス制御リストACLを保存/復元する
    http://www.atmarkit.co.jp/ait/articles/1006/18/news099.html

    ファイルやフォルダーを回復する
    https://technet.microsoft.com/ja-jp/library/cc772028(v=ws.11).aspx

    ところで削除された権限(移動したい権限)は、上位フォルダから継承されたものでしょうか。たとえば、BフォルダがAフォルダ直下にあり、消えたアクセス権は「Everyone」でしょうか。であれば、事前に「B」フォルダに対して「Everyone フルコントロール」を付与した状態にし、CフォルダをBにコピーすることで「所有者」や個別に設定した権限以外はコピー元と同じように設定できます。


    • 編集済み やき(Yaki) 2016年8月29日 6:25
    • 回答の候補に設定 佐伯玲 2016年8月30日 4:02
    • 回答の候補の設定解除 yukimaru 2016年8月31日 0:21
    2016年8月29日 6:23
  • エクスプローラ上で、"フォルダの切り取り→貼り付け"と、"コピー→貼り付け"、同一ドライブ内か、別ドライブかによって

    アクセス権設定を保持するか、親フォルダのアクセス権にて上書きされるかの動作が異なるという認識でおります。

    ※参考サイトにて書かれている内容のとおりの理解でおります。

    自分の認識違いでトラブルと考えているだけで、質問の内容はwindows2012serverR2では仕様どおりの動きということでしょうか?

    今回行いたい作業としてはwindows2012serverR2上で、同一ドライブ内でのフォルダ移動になります。

    【参考サイト】

    http://ebi.dyndns.biz/windowsadmin/2008/10/30/%E3%82%B3%E3%83%94%E3%83%BC%E3%83%9A%E3%83%BC%E3%82%B9%E3%83%88%E3%81%A8%E3%82%AB%E3%83%83%E3%83%88%E3%83%9A%E3%83%BC%E3%82%B9%E3%83%88%E3%81%A7%E3%81%AFntfs%E3%82%A2%E3%82%AF%E3%82%BB/r

    ロボコピー、バックアップソフトによる処理ですと、時間がかかってしまい、避けたいと考えております。

    "icaclsコマンドでファイルのアクセス制御リストACLを保存/復元する"方法について内容の確認させて頂きたいとおもいます。

    >削除された権限(移動したい権限)は、上位フォルダから継承されたものでしょうか。

    継承はしておらず、個別にフォルダに設定された部署ごとのセキュリティグループ、個人アカウントのアクセス権になります

    2016年8月30日 10:11
  • # 参考サイトから課題を読み取ることができませんでした。リンク誤りでしょうか。
    アクセス権についてですが、WindowsServer2003とそれ以降では挙動が異なるのは仕様です。

    コピーし、ファイルとフォルダーを移動するときにアクセス許可を処理する方法
    https://support.microsoft.com/ja-jp/kb/310316

    NTFSで、同一ボリューム上でフォルダ移動させた時のアクセス権
    https://social.technet.microsoft.com/Forums/ja-JP/39752830-8bc7-4e01-95f5-e9f02aefafb9/ntfs?forum=w7itprogeneralja

    元の動作に戻す方法も併記されていましたが、WS2012では使用できそうにありません。探している方がいましたが、解決はしていないようです。

    "MoveSecurityAttributes"のレジストリのエントリが Windows 7 では、Windows Vista では、Windows Server 2008 または Windows Server 2008 R2 では機能しません。
    https://support.microsoft.com/ja-jp/kb/2617058

    MoveSecurityAttributes in Server 2012 R2
    https://social.technet.microsoft.com/Forums/office/en-US/c4769d6c-6a9b-42a5-a212-83a1e5871b72/movesecurityattributes-in-server-2012-r2?forum=winserverfiles

    もし要件が

    ・時間をかけない
    ・権限据え置きで、異なるパスからアクセスしたい

    ということであれば、シンボリックリンクやジャンクションで一時的にパスを作ることで対応できないでしょうか。
    その間にフォルダを同階層に別名コピーして、最後にジャンクションを削除してフォルダ名を正しいものに戻す…という方法もあります。

    • 回答の候補に設定 佐伯玲 2016年9月1日 5:56
    • 回答としてマーク 佐伯玲 2016年9月20日 8:08
    2016年8月31日 4:39