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

Tao*_*Tao 22 windows-7 acl file-permissions

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

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

Sco*_*ain 29

您可以使用icacls和文本编辑器通过几个步骤来完成。

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

icacls C:\test\file1.bin /save perms.txt
Run Code Online (Sandbox Code Playgroud)

您需要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)
Run Code Online (Sandbox Code Playgroud)

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

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

icacls C:\test\ /restore perms.txt
Run Code Online (Sandbox Code Playgroud)

  • 可以做到,但我想不出如何轻松地完成第 2 步。无论如何,如果我要编写脚本,我只会在 Powershell 中使用 `File.GetAccessControl()` 和 `File.SetAccessControl()` 完成整个事情 (2认同)

小智 14

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

Get-Acl .\file1 | Set-Acl .\file2
Run Code Online (Sandbox Code Playgroud)