
Ich habe versucht, den Bedarf an Administratorrechten für Windows 10-Domänenmitglieder zu reduzieren. Eine häufige Aktion, die Leute ausführen möchten, ist das Löschen von Desktopsymbolen vom freigegebenen öffentlichen Desktop (wegen des dummen Software-Installers). Also habe ich eine lokale Gruppe hinzugefügt, in der ich die Besitzerbenutzer hinzufüge (ähnlich wie Poweruser) und diese Gruppe mit einem ACL-Eintrag „Löschen zulassen“ im öffentlichen Desktopordner hinzufüge. Das funktioniert (einigermaßen, Sie müssen den Ordner öffnen und können die Symbole nicht direkt auf Ihrem Desktop löschen, aber es ist eine Alternative fürdiese Frage), aber die ACL scheint regelmäßig zurückgesetzt zu werden (der ACE für diese lokale Gruppe mit der Berechtigung „Zulassen“ wird entfernt).
Scheint, als ob etwas die Ordnerberechtigungen zurückgesetzt hat, und ich bin mir nicht sicher, was es ist. Wir glauben nicht, dass es eine Gruppenrichtlinie ist … zumindest nicht beabsichtigt. Gibt es in Windows eine Berechtigungsvorlage für diesen Ordner, die ebenfalls angepasst werden kann? (Und was löst ihre Anwendung aus?)
Dies ist ein Teil des Skripts (der funktioniert, aber die Einstellung geht nach ein paar Tagen verloren):
$PublicDesktop = "$env:Public\Desktop"
$localowneraccount = "$env:COMPUTERNAME\$localowners"
$acl = Get-Acl $PublicDesktop
$t = $null
$t = $acl.Access | where { $_.IdentityReference -eq $localowneraccount -and $_.FileSystemRights.ToString() -imatch "Delete"}
if ($t -eq $null) {
$_perms = "$([System.Security.AccessControl.FileSystemRights]::Delete),$([System.Security.AccessControl.FileSystemRights]::DeleteSubdirectoriesAndFiles)"
$_inherit = [System.Security.AccessControl.InheritanceFlags]::ContainerInherit+[System.Security.AccessControl.InheritanceFlags]::ObjectInherit
$_propagate = [System.Security.AccessControl.PropagationFlags]::InheritOnly
$_allow = [System.Security.AccessControl.AccessControlType]::Allow
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule($localowneraccount, $_perms, $_inherit, $_propagate, $_allow)
$acl.AddAccessRule($AccessRule)
$acl | Set-Acl $PublicDesktop -ErrorAction Stop
Write-Host "Added Delete permission for Public Desktop to Group=<$localowners>"
} else {
Write-Verbose "Public Desktop delete permission already granted to Group=<$localowners>"
}