あるファイルのセキュリティ許可を別のファイルにコピーする


19

ファイルの許可を別の許可に複製したいと思います。データをコピーするのではなく、権限のみをコピーします。

たとえば、新しいファイルを作成し、既存の別のファイルと同じ権限を持たせたい。


別のファイルと同じ権限ですが、それらが入っているディレクトリとは異なりますか?
PsychoData

回答:


28

icaclsとテキストエディターを使用すると、いくつかの手順で実行できます。

最初に、元のファイルの権限を保存する必要があります

icacls C:\test\file1.bin /save perms.txt

実行したperms.txtフォルダで作成したファイルを編集する必要がありますicacls。ファイルは次のようになります。

file1.bin
D:AI(A;;0x1301bf;;;BU)(A;ID;FA;;;BA)(A;ID;FA;;;SY)(A;ID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)

2行目のすべてのものを無視できますが、気にするのは最初の行だけです。をfile1.bin新しいファイル名に変更して、ファイルfile2.binを保存します。

ここで、2番目のファイルのファイル許可を復元する必要があります。今回はファイル名を含めなかったことに注意してください。(「参照されているすべての特権またはグループが呼び出し元に割り当てられているわけではありません。」というエラーが表示された場合は、昇格したコマンドプロンプトでプログラムを再度実行します。)

icacls C:\test\ /restore perms.txt

これらをスクリプトに入れて、タスクをいくらか自動化できますか?
PsychoData

2
それはできましたが、ステップ2を簡単に行う方法を頭の中で考えることはできません。とにかくスクリプトを作成する場合は、Powershellですべてを使用File.GetAccessControl()します。File.SetAccessControl()
Scott Chamberlain

4

バッチで作成するには(サブフォルダーまたは1つのドライブのすべてのフォルダーからセキュリティ許可を別のドライブの同じフォルダー/ファイル構造にコピー)、cpdacls.bat次の内容のファイルを作成します。

@echo off
for /r %1 %%f in (.) do call :icacls_one %%f %2

goto :eof

:icacls_one

icacls %1\*.* /save %TEMP%\perms.txt
icacls %2.%~pnx1 /restore %TEMP%\perms.txt
del /q %TEMP%\perms.txt

そして、次のように実行しcpdacls.bat e:\ f:\ます。

宛先フォルダーのフォルダー構造は、ソースフォルダーとして指定したサブフォルダーに依存せず、ルートから取得したソースフォルダーのフォルダー構造と同じである必要があることに注意してください。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.