是否可以通过组策略将“pipe理打印机”权限授予客户机上的所有打印机对象? 默认情况下,它看起来像是将权限授予了超级用户和pipe理员。 我想将其授予域中的特定安全组。
在这种情况下,打印机安装在本地(也有一些是networking打印机,但他们不受pipe理..驱动程序直接安装在客户端上)。
是的,用启动脚本。
包含在Windows 2003资源工具包中的setprinter.exe。 您可以使用:
setprinter.exe 3“pSecurityDescriptor = xxxxxxxxxx”
您需要遍历所有已安装的打印机,然后应用新的ACL。 这将假定您可以对所有工作站上的所有打印机使用相同的ACL。 这可能不是问题,因为大多数人不使用本地打印机上的自定义安全性。
“pSecurityDescriptor =使用SDDL格式,使用setprinter -examples 3获取更多信息。
用你想要的方式设置打印机的安全性,使用setprinter -show3打印机来得到如何应用SDDL的文本。
当每个人都有pipe理打印机,并且所有其他权限都是通用默认值时,这就是命令和SDDL的外观:
setprinter.exe 3 pSecurityDescriptor =“O:BAG:DUD:(A; OIIO; RPWPSDRCWDWO ;;; BA)(A ;; LCSWSDRCWDWO ;;; BA)(A; CIIO; RC ;;; CO)(A; OIIO; RPWPSDRCWDWO ;;; CO)(A ;; LCSWSDRCWDWO ;;; WD)(A; OIIO; RPWPSDRCWDWO ;;; PU)(A ;; LCSWSDRCWDWO ;;; PU)”
所有这些都必须在一条线上。
这是一些列出打印机的PowerShell代码:
Get-WMIObject Win32_Printer -ComputerName $ env:computername | 的foreach对象{$ _。名称}
所以命令做的工作将是
Get-WMIObject Win32_Printer -ComputerName $ env:computername | foreach-object {setprinter.exe $ _。Name 3 pSecurityDescriptor =“O:BAG:DUD:(A; OIIO; RPWPSDRCWDWO ;;; BA)(A ;; LCSWSDRCWDWO ;;; BA)(A; CIIO; RC ;; ; CO)(A; OIIO; RPWPSDRCWDWO ;;; CO)(A ;; LCSWSDRCWDWO ;;; WD)(A; OIIO; RPWPSDRCWDWO ;;; PU)(A ;; LCSWSDRCWDWO ;;; PU)“}
再次,这一定是一条线。