打印机的访问掩码

时间:2018-02-21 21:12:20

标签: powershell printing mask access

自从我使用Access Masks搞砸了一段时间后,我发现了一个在线脚本,我可以为了我的目的而改变它,但是在这个脚本中它将权限设置为管理文档&# 34; 268435456"我需要将此转换为完全权限。关于我应该使用什么访问掩码的任何想法?代码部分如下:

# Give 'Users' the 'Manage Documents' permission:
$SecurityDescriptor.DiscretionaryAcl.AddAccess( 'Allow',
# AccessControlType
([System.Security.Principal.NTAccount]
'stephen.lyons.sa').Translate([System.Security.Principal.SecurityIdentifier]
),
268435456,                         # AccessMask
'ContainerInherit, ObjectInherit', # InheritanceFlags
'InheritOnly'                      # PropagationFlags

2 个答案:

答案 0 :(得分:0)

.Net对此没有任何问题,但是使用内置PoSH cmdlet进行此类操作要容易得多。

# Get parameters, examples, full and Online help for a cmdlet or function

(Get-Command -Name Get-Acl).Parameters
Get-help -Name Get-Acl -Examples
Get-help -Name Get-Acl -Full
Get-help -Name Get-Acl -Online


(Get-Command -Name Set-Acl).Parameters
Get-help -Name Set-Acl -Examples
Get-help -Name Set-Acl -Full
Get-help -Name Set-Acl -Online

Get-Help about_*

# All Help topics locations
explorer "$pshome\$($Host.CurrentCulture.Name)"
  

Weekend Scripter:使用PowerShell获取,添加和删除NTFS   权限Windows PowerShell Shell权限

     

这篇文章介绍了NTFSSecurity模块,它提供了一堆   用于管理NTFS驱动器权限的cmdlet。它不使用   Windows PowerShell访问文件系统的方式,它的工作原理   在MAX_PATH周围,这是260个字符。 (欲获得更多信息,   请参阅命名文件,路径和命名空间)。这要归功于   AlphaFS。

     

https://blogs.technet.microsoft.com/heyscriptingguy/2014/11/22/weekend-scripter-use-powershell-to-get-add-and-remove-ntfs-permissions

答案 1 :(得分:0)

268435456是一项通用权利,意味着完全控制权。通用权利被称为通用权利,因为无论安全对象是什么,它们都意味着相同的东西 - 对于不同的安全对象来说,这是一种简短的手。

打印机权限比文件系统和注册表权限更复杂,因为'文档'似乎不是儿童容器'或者'子对象'只有...而是他们两者的某种组合。

当我将该访问掩码应用于打印机并将其设置为仅应用于子对象和子容器时(就像您在示例中所做的那样),GUI实际上显示了' Manage Documents&# 39;

如果您希望获得超级特定权限并使用特定于打印机的权限而不是通用权限,则可以使用这些访问掩码和标志添加两个ACE:

# AdministerJob, Delete, ReadJob, ChangePermissions, TakeOwnership
AccessMask: 983088
InheritanceFlags: ObjectInherit
PropagationFlags: InheritOnly

# ReadPermissions
AccessMask: 131072
InheritanceFlags: ContainerInherit
PropagationFlags: InheritOnly

为了解决这个问题,我欺骗并使用了GUI来设置“管理文档”。好吧,然后回去看看它使用命令行。

但是你问的是完全控制。如果我回去使用第二种方法(在GUI中进行更改,然后查看安全描述符),我会看到这两个ACE:

# PrinterFullControl
AccessMask: 983052
InheritanceFlags: None
PropagationFlags: None

# AdministerJob, Delete, ReadJob, ChangePermissions, TakeOwnership
AccessMask: 983088
InheritanceFlags: ObjectInherit
PropagationFlags: InheritOnly

尝试这两个,看看GUI是否报告了您要查找的内容。我使用GUI添加了一个ACE,并选中了所有复选框,因此,如果这不是您要查找的内容,则可能需要进一步调整。