拒绝将任何工作站和服务器上的文档打印到某个用户组?

是否有可能Active Directory域完全否认从任何工作站和服务器的文档打印到某些用户组使用组策略或其他方式?

重要的是:

  • 禁止必须适用于用户(同一台计算机上的其他用户必须能够打印)。
  • 即使用户的电脑有本地连接的打印机,禁止也必须工作。
  • 它必须能够通过更改域组中的成员资格来快速启用或禁用用户进行打印。
  • 一些打印机通过USB连接到用户的计算机

  • 添加一个安全组“DenyPrinting”到设置打印 – >拒绝的所有打印机。
  • 使用GPO为该组“禁用打印机的添加”。
  • 将用户添加到不应该打印的组

我发现的最佳方法是:

在使用GPP的域中的所有计算机上,使用本地系统帐户为常规PowerShell脚本创build任务:

$Account = "DOMAIN\Group_deny_print" Get-Printer -full | Where-Object Type -eq "Local" | foreach { try { $acl = New-Object -TypeName Security.AccessControl.CommonSecurityDescriptor $false, $false, ($_ | Select-Object PermissionSDDL -ExpandProperty PermissionSDDL); Write-Host "Deny $Account print to printer ($_.Name)"; $NTAccountSid = (New-Object Security.Principal.NTAccount $Account).Translate([Security.Principal.SecurityIdentifier]).Value; $acl.DiscretionaryAcl.AddAccess( [System.Security.AccessControl.AccessControlType]::Deny, $NTAccountSid, 131080, #Print = (ACCESS_MASK.PRINTER_ACCESS_USE | BASE_RIGHTS.READ_CONTROL), [System.Security.AccessControl.InheritanceFlags]::None, [System.Security.AccessControl.PropagationFlags]::None); $newacl = $acl.GetSddlForm("All"); } catch [Exception] { Write-Error -Message "Failed:`n $_.Message" -Exception $_.Exception } $_ | Set-Printer -PermissionSDDL $newacl -verbose; } 

但是int只能在Windows Server 2012 / Windows 8或更高版本中使用。