# Konfiguration_NTFS_Berechtigungen.ps1 - Jan Kappen - j.kappen@rachfahl.de # Erstellung einer neuen Freigabe für die SOFS-Rolle und Anpassung # der Rechte. Eine Anpassung ist notwendig an den markierten Stellen # # Konfiguration des Namen # Anpassung notwendig! $Sharename = "Share6" $Volumename = "Volume1" # Erstellen des neuen Ordners New-Item -Name $Sharename -ItemType Directory mkdir C:\ClusterStorage\$Volumename\Shares\$Sharename # Erstellung eines neuen Shares mit HA und ohne Caching # # Falls die Quorum-Freigabe erstellt werden soll, kann der Parameter # -ContiniousAvailable auf $false angepasst werden # New-SmbShare -Name $Sharename -Path C:\ClusterStorage\$Volumename\Shares\$Sharename ` -CachingMode None -FullAccess "everyone" -ContinuouslyAvailable $true # Anzeige der Berechtigungen Get-Acl "C:\ClusterStorage\$Volumename\Shares\$Sharename" | fl # Benutzer aus den Rechten entfernen $colRights = [System.Security.AccessControl.FileSystemRights]"Read" $InheritanceFlag = [System.Security.AccessControl.InheritanceFlags]::None $PropagationFlag = [System.Security.AccessControl.PropagationFlags]::None $objType =[System.Security.AccessControl.AccessControlType]::Allow $objUser = New-Object System.Security.Principal.NTAccount("BUILTIN\Users") $objACE = New-Object System.Security.AccessControl.FileSystemAccessRule ` ($objUser, $colRights, $InheritanceFlag, $PropagationFlag, $objType) $objACL = Get-ACL "C:\ClusterStorage\$Volumename\Shares\$Sharename" $objACL.RemoveAccessRuleAll($objACE) Set-ACL "C:\ClusterStorage\$Volumename\Shares\$Sharename" $objACL # Anzeige der Berechtigungen Get-Acl "C:\ClusterStorage\$Volumename\Shares\$Sharename" | fl # Besitzer konfigurieren $acl = Get-Acl "C:\ClusterStorage\$Volumename\Shares\$Sharename" $acl.SetOwner([System.Security.Principal.NTAccount] "Administrators") Set-Acl C:\ClusterStorage\$Volumename\Shares\$Sharename $acl # $acl = Get-Acl C:\ClusterStorage\$Volumename\Shares\$Sharename $acl.SetAccessRuleProtection($True, $False) # # Anpassung der Systemnamen sowie des Failover Cluster-Objekts notwendig! # $rule = New-Object System.Security.AccessControl.FileSystemAccessRule ` ("Powerkurs\Hyperv14$","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) $rule = New-Object System.Security.AccessControl.FileSystemAccessRule ` ("Powerkurs\Hyperv15$","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) $rule = New-Object System.Security.AccessControl.FileSystemAccessRule ` ("Powerkurs\powercluster1$","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) $rule = New-Object System.Security.AccessControl.FileSystemAccessRule ` ("Powerkurs\domain admins","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) $rule = New-Object System.Security.AccessControl.FileSystemAccessRule ` ("SYSTEM","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) $rule = New-Object System.Security.AccessControl.FileSystemAccessRule ` ("CREATOR OWNER","FullControl", "ContainerInherit, ObjectInherit", "None", "Allow") $acl.AddAccessRule($rule) Set-Acl C:\ClusterStorage\$Volumename\Shares\$Sharename $acl # Erneute Anzeige der Einstellungen Get-Acl C:\ClusterStorage\$Volumename\Shares\$Sharename | Format-List