我跑了get-acl -path "D:\path\to\file" | fl
:
Path : Microsoft.PowerShell.Core\FileSystem::D:\path\to\file
Owner : SERVER\user
Group : G:S-1-5-21-467825353-2970891935-3496973838-513
我想修改该Group
值。
我能找到很多关于修改所有者的文章,但关于组的文章却不多。
答案1
我不确定修改组值是否会产生如您所想的效果。
get-acl 输出中显示的 Group 值是指所有者的安全组(在您的情况下为 Server\user 的安全组)。
另外,请记住 Get-ACL 只能执行此操作 - 获取 ACL 记录。它不会设置 ACL 记录。
如果您尝试授予特定域安全组对文件或文件夹的访问权限,则需要使用以下命令:
$newacl = New-Object System.Security.AccessControl.FileSystemAccessRule ("domain\username","ACCESSLEVEL","ACTION")
$object = Get-ACL "\\server\pathtofolder"
$object.SetAccessRule($newacl)
Set-ACL -Path "\\server\pathtofolder" -AclObject $newacl
如果您想将服务器 A 上的文件夹的 NTFS 权限复制到服务器 B 上的文件夹,这应该可以满足您的要求。
$newacl = New-Object System.Security.AccessControl.FileSystemAccessRule ("domain\username","ACCESSLEVEL","ACTION")
$server1object = Get-ACL "\\server1\pathtofolder"
$server2object = $server1object
$server2object.SetAccessRule($newacl)
Set-ACL -Path "\\server2\pathtofolder" -AclObject $newacl
如果您更喜欢使用 PowerShell 脚本,则可以使用上面的代码来创建自己的脚本。
ACCESSLEVEL 将被替换为适当的权限级别(例如 FullControl 或 Read)。
ACTION 将被替换为 Allow 或 Deny。
现在,我已经回答了您的问题,但我意识到您可能更喜欢预制的 PowerShell 脚本。
还有预制的 PowerShell 脚本来管理 NTFS 权限。
您可以在“嘿,脚本!博客”中找到一些内容(https://blogs.technet.microsoft.com/heyscriptingguy/2014/11/22/weekend-scripter-use-powershell-to-get-add-and-remove-ntfs-permissions/) 和 CodePlex (https://ntfssecurity.codeplex.com/)。