Я пытаюсь сделать эквивалент в PowerShell:
icacls documents /deny users:w
Итак, в качестве руководства: https://blog.netwrix.com/2018/04/18/how-to-manage-file-system-acls-with-powershell-scripts/, я пытаюсь это сделать. На самом деле права - это запись и синхронизация (неожиданно), «Запись, синхронизация».
$acl = Get-Acl documents
$AccessRule = New-Object System.Security.AccessControl.FileSystemAccessRule(
'Users','Write, Synchronize','Deny')
$acl.SetAccessRule($AccessRule)
$acl | Set-Acl documents
Но внутри $ accessrule есть только «Запись»:
$accessrule
FileSystemRights : Write
AccessControlType : Deny
IdentityReference : Users
IsInherited : False
InheritanceFlags : None
PropagationFlags : None
И если я приведите права к правильному типу, который работает:
[System.Security.AccessControl.FileSystemRights]'write,synchronize'
Write, Synchronize
Даже если я использую эквивалентное число для перечисления прав, 1048854, будет отображаться только свойство 'Write'.
Или если Копирую права из другого файла, все отлично работает.
get-acl file1 | set-acl documents