web-dev-qa-db-ja.com

あるディレクトリから別のディレクトリにファイル権限をコピーする

週末に、会社のデータをあるハードドライブから別のハードドライブにコピーしました。許可はコピーされると思いましたが、コピーされませんでした。

すべてのデータを再度コピーすることなく、元々設定されていた権限を新しいデータにコピーするための最良の(そして最も速い)方法は何ですか?ユーザーがデータにアクセスしているため、変更が失われる可能性があるため、データを再コピーしないでください。

データはWindows Server 2008 R2でホストされています

18
Simon Foster

私はこれでうまくいくと思います:

robocopy source destination /E /COPY:SOU /xo /xn /xc /xx /LOG+:F:\Sec.log.

"[〜#〜] sou [〜#〜]"コピー:[〜#〜] s [〜#〜]=セキュリティ情報(NTFS ACL)、- [〜#〜] o [〜#〜]=所有権情報、[〜#〜] u [〜#〜]=監査情報

これが機能しない場合は、次のコマンドを使用してNTFSアクセス許可をバックアップできます。

icacls d:\data /save ntfspermissions.txt /t /c

/ Tスイッチを使用すると、サブフォルダーの権限も取得できます。 / Cスイッチを使用すると、エラーが発生しても続行できます(ただし、エラーは表示されます)。

次に、このコマンドを使用してアクセス許可を復元します。

icacls d:\ /restore ntfsperms.txt

アクセス許可を保存するコマンドでは、ターゲットフォルダーD:\Dataを指定しましたが、それらを復元したとき、ターゲットとしてD:\のみを指定したことに注意してください。 D:\をrestoreコマンドのターゲットとして指定すると、そのレベルの他のフォルダーのアクセス許可が台無しになる可能性がありますが、ntfspermissions.txt出力ファイルからわかるように、Dataフォルダーに関する情報しかありませんとサブフォルダーです。変更されるのはそれだけです。

17

PowerShellの使用:

Get-Acl 'source path' | Set-Acl 'destination path'
3
torvin
xcopy e:\*.* z: /T /E /I /H /K /X /Y

e:は、いくつかの共有とあらゆる種類の継承ブロックが点在する物理ドライブのルートでした。 z:は「新しい」ドライブで、この場合はマップされたドライブです。

共有ではなく、権限のみが機能しました。

0
John Lamb

Robocopy を使用してみてください。私の知る限り、それはまだ新しいWindowsバージョンで動作します。

0
pritaeas

プリーアスが言ったように、ロボコピー。

使用するスイッチの便利なリファレンスガイド

/ copyallまたは/ copy:DATSOUは「すべて」(データ、属性、タイムスタンプ、NTFS ACL、所有者、監査情報)をコピーします。

/ COPY:copyflag [s]:何をコピーするか(デフォルトは/ COPY:DAT)(copyflags:D = Data、A = Attributes、T = Timestamps S = Security = NTFS ACLs、O = Owner info、U = aUditing info) 。

0
HopelessN00b