将一个文件的安全权限复制到另一个文件

将一个文件的安全权限复制到另一个文件

我想将一个文件的权限复制到另一个文件。我不想复制数据,只想复制权限。

例如,我创建了一个新文件并希望它具有与已存在的另一个文件相同的权限。

答案1

您可以通过以下几个步骤完成伊卡克尔斯和一个文本编辑器。

首先必须保存原始文件的权限

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)

您可以忽略第二行的所有内容,我们关心的只是第一行。将 更改file1.bin为您的新文件名file2.bin并保存文件。

现在你只需要恢复第二个文件的文件权限,注意,这次我们没有包含文件名。(如果你收到一条错误消息,提示“并非所有引用的权限或组都已分配给呼叫者。“在提升的命令提示符下再次运行该程序。)

icacls C:\test\ /restore perms.txt

答案2

到目前为止,最简单的方法是使用 PowerShell 并运行:

Get-Acl .\file1 | Set-Acl .\file2

答案3

为了批量执行(将安全权限从一个驱动器的子文件夹或所有文件夹复制到另一个驱动器上的相同文件夹/文件结构),请创建一个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:\

请注意,目标文件夹中的文件夹结构必须与源文件夹中的文件夹结构相同,取自其根部,而不取决于您指定哪个子文件夹作为源文件夹。

相关内容