1

我正在使用 Windows 10 和 Powershell。我正在将大量文件目录移动到新服务器上。文件将很容易被复制,但权限不会被复制。我一直在努力创建一系列脚本来保存目录每个级别的所有权限,然后能够在每个级别为新位置的文件提供相同的权限。这就是我想出的保存文件权限的方法。(T:\ 是要从中移动文件的目录)

注意:我打算使用 get-acl 和 set-acl 但显然你不能在不重写每个文件的所有者的情况下使用 set-acl。

$output = @()
ForEach ($item in (Get-ChildItem -Path T:\ -Recurse -Directory)) {

    ForEach ($acl in ($item.GetAccessControl().Access)){

        $output += $acl | 
            Add-Member `
                -MemberType NoteProperty `
                -Name 'Folder' `
                -Value $item.FullName `
                -PassThru
    }
}
$output | Export-Csv -Path .\outfile.csv -NoTypeInformation

这可以将必要的信息保存到文件中。我的问题是在文件位于新位置后重新加载所有权限。据我所知,我需要使用 File.SetAccessControl(String, FileSecurity) 方法。然而,我正在尝试的一切都没有按预期工作。

这里有什么帮助吗?也许我的目标完全错了。

4

0 回答 0