Powershell添加域用户对文件的ntfs权限
Powershell add domain user to ntfs permission to a file
我正在尝试编写一个脚本,其中一部分从文件中获取 ACL 并添加特定用户 ntfs 修改权限:
$identity = "$domain$adname" #In this example $domain='muzi.local $adname='puzi'
$rights = 'Modify'
$inheritance = 'ContainerInherit, ObjectInherit'
$propagation = 'None'
$type = 'Allow'
$Acl = Get-Acl -Path "$bucketdir$_" #for this example c:\bla.txt
$Acl.AddAccessRule($ACE) #this is where the error output.
Set-Acl -Path "$bucketdir$_" -AclObject $Acl #code would not get here
错误输出:
使用“1”个参数调用“AddAccessRule”时出现异常:“无法设置标志。
参数名称:inheritanceFlags”
在 C:\Step2.ps1:26 char:3
-
$Acl.AddAccessRule($ACE)
-
~~~~~~~~~~~~~~~~~~~~~~~~
- 类别信息:未指定:(:)[],MethodInvocationException
- FullyQualifiedErrorId : ArgumentException
看起来参数没有传递给函数,但如果我将它们一个一个地输出,它看起来很好
我认为您只是忘记了创建新的访问规则,而且,由于您更改的是文件的 ACL,而不是目录,因此您应该使用只有 3 个参数的新规则的构造函数,因为文件没有子对象来传播或继承访问权限:
$identity = "$domain$adname" #In this example $domain='muzi.local $adname='puzi'
$rights = 'Modify'
$type = 'Allow'
# these do not apply for a File (it has no child objects)
# $inheritance = 'ContainerInherit, ObjectInherit'
# $propagation = 'None'
$file = "$bucketdir$_" #for this example c:\bla.txt
# create the new AccessRule
$rule = [System.Security.AccessControl.FileSystemAccessRule]::new($identity, $rights, $type)
$Acl = Get-Acl -Path $file
$Acl.AddAccessRule($rule)
Set-Acl -Path $file -ACLObject $Acl
我正在尝试编写一个脚本,其中一部分从文件中获取 ACL 并添加特定用户 ntfs 修改权限:
$identity = "$domain$adname" #In this example $domain='muzi.local $adname='puzi'
$rights = 'Modify'
$inheritance = 'ContainerInherit, ObjectInherit'
$propagation = 'None'
$type = 'Allow'
$Acl = Get-Acl -Path "$bucketdir$_" #for this example c:\bla.txt
$Acl.AddAccessRule($ACE) #this is where the error output.
Set-Acl -Path "$bucketdir$_" -AclObject $Acl #code would not get here
错误输出: 使用“1”个参数调用“AddAccessRule”时出现异常:“无法设置标志。 参数名称:inheritanceFlags” 在 C:\Step2.ps1:26 char:3
-
$Acl.AddAccessRule($ACE)
-
~~~~~~~~~~~~~~~~~~~~~~~~
- 类别信息:未指定:(:)[],MethodInvocationException
- FullyQualifiedErrorId : ArgumentException
看起来参数没有传递给函数,但如果我将它们一个一个地输出,它看起来很好
我认为您只是忘记了创建新的访问规则,而且,由于您更改的是文件的 ACL,而不是目录,因此您应该使用只有 3 个参数的新规则的构造函数,因为文件没有子对象来传播或继承访问权限:
$identity = "$domain$adname" #In this example $domain='muzi.local $adname='puzi'
$rights = 'Modify'
$type = 'Allow'
# these do not apply for a File (it has no child objects)
# $inheritance = 'ContainerInherit, ObjectInherit'
# $propagation = 'None'
$file = "$bucketdir$_" #for this example c:\bla.txt
# create the new AccessRule
$rule = [System.Security.AccessControl.FileSystemAccessRule]::new($identity, $rights, $type)
$Acl = Get-Acl -Path $file
$Acl.AddAccessRule($rule)
Set-Acl -Path $file -ACLObject $Acl