Tôi có Máy chủ tệp 2012R2 ( server-docs) và Máy chủ 2012R2 Citrix XenApp / RDS ( server-rds). Người dùng phải là thành viên của UsersRDSđể đăng nhập server-rds.

Đây là cài đặt GPO của tôi để chuyển hướng Tài liệu:

  • Cơ bản: Chuyển hướng thư mục của mọi người đến cùng một vị trí
  • Tạo một thư mục cho mỗi người dùng theo đường dẫn gốc
  • Thư mục gốc : \\server-docs\UserDocs
  • Quyền độc quyền bỏ chọn

Tôi đã theo dõi bài viết này từ MS để đặt quyền trên thư mục gốc: https://technet.microsoft.com/en-us/library/cc737633%28v=WS.10%29.aspx

  • Chủ sở hữu: Toàn quyền kiểm soát, Chỉ các thư mục con và tệp
  • UsersRDS : Danh sách thư mục / Đọc dữ liệu, Tạo thư mục / Nối dữ liệu - Chỉ thư mục này
  • Quản trị viên: Toàn quyền kiểm soát
  • Hệ thống: Toàn quyền kiểm soát, Thư mục này, Thư mục con và tệp

Khi tôi đăng nhập server-rdsbằng TestUser, chuyển hướng thư mục xảy ra và tôi nhận được một thư mục \\server-docs\UserDocs\TestUser\Documents.

TestUservà thư mục con của nó Documentscó cả hai quyền giống nhau:

  • Chủ sở hữu: Toàn quyền kiểm soát, Chỉ các thư mục con và tệp
  • UsersRDS : Danh sách thư mục / Đọc dữ liệu, Tạo thư mục / Nối dữ liệu - Chỉ thư mục này
  • Quản trị viên: Toàn quyền kiểm soát
  • Hệ thống: Toàn quyền kiểm soát, Thư mục này, Thư mục con và tệp
  • TestUser : Toàn quyền kiểm soát, Chỉ thư mục này

Tôi có một máy chủ Tệp 2003 khác và một máy chủ RDS 2003, với cùng quyền đối với thư mục gốc, tôi chỉ có điều này trên thư mục Tài liệu của người dùng:

  • Quản trị viên: Toàn quyền kiểm soát
  • TestUser : Toàn quyền kiểm soát

Nếu tôi kiểm tra Grant the user exclusive Rights on Document foldertrong GPO, chạy gpupdate /forcetrên server-rds, server-rdskhông thể làm chuyển hướng thư mục at logon và tôi nhận được id sự kiện 1085:Windows failed to apply folder redirection settings.

Làm cách nào để tắt tính năng kế thừa cho các tài liệu người dùng để có được các quyền tương tự (như các máy chủ năm 2003 của tôi)?

answer

Vì ACL lạ có vẻ là theo thiết kế, tôi đã phải kiểm tra và thay đổi chúng nếu cần trong quá trình đăng nhập của người dùng bằng tập lệnh Powershell:

Function Repair-UserFullControlACL {
Param(
    [Parameter(Mandatory=$true)]
    [ValidateScript({Test-Path $_ -PathType "Container"})]
    [string]$Folder
)

# We also add System account and local administrators (Replace these french account names if needed)
$OtherAccounts = @("AUTORITE NT\Système", "BUILTIN\Administrateurs", "CREATEUR PROPRIETAIRE")

# `FullControl` for the user
$ACLUser = New-Object System.Security.Principal.NTAccount($FullUserName)
$Rule = New-Object System.Security.AccessControl.FileSystemAccessRule($ACLUser, "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")

# We need the actual folder ACL
$Acl = Get-ACL $Folder

# Checking if everything already OK...
$RuleOK = $False
ForEach ($ACLRule in $Acl.Access){
    If (-not(Compare-Object ($Rule | Format-List * | Out-String -Stream) ($ACLRule | Format-List * | Out-String -Stream))){
        $RuleOK = $True
        break
    }
}
# Adding fullControl if needed
If (-not($RuleOK)){
    Try{
        $Acl.AddAccessRule($Rule)

        ForEach ($Account in $OtherAccounts){
            $ACLAccount = New-Object System.Security.Principal.NTAccount($Account)
            $Rule = New-Object System.Security.AccessControl.FileSystemAccessRule($ACLAccount, "FullControl", "ContainerInherit, ObjectInherit", "None", "Allow")
            $Acl.AddAccessRule($Rule)
        }
        # Saving ACL
        Set-ACL $Folder $Acl -ErrorAction Stop
    }catch{
        Write-Warning "Erreur : Impossible d'accorder le droit 'FullControl' à l'utilisateur sur $Folder : $($_.Exception.Message)"  
    }
}}

Thí dụ :

Repair-UserFullControlACL "\\server\shared\userHomeDir"