Slipeer Asked: 2016-11-21 23:39:50 +0800 CST2016-11-21 23:39:50 +0800 CST 2016-11-21 23:39:50 +0800 CST 拒绝从任何工作站和服务器向某个用户组打印文档? 772 Active Directory 域是否可以使用组策略或其他方式完全拒绝从任何工作站和服务器向某个用户组打印文档? 重要的是: 该禁令必须适用于用户(同一台计算机上的其他用户必须能够打印)。 即使用户的 PC 具有本地连接的打印机,该禁令也必须有效。 它必须能够通过更改其在域组中的成员身份来快速启用或禁用用户进行打印。 一些打印机通过 USB 连接到用户的计算机 group-policy printing active-directory 2 个回答 Voted haveNidea 2016-11-22T08:46:10+08:002016-11-22T08:46:10+08:00 使用设置 Print -> Deny 将安全组“DenyPrinting”添加到所有打印机。 使用 GPO 为该组“禁用添加打印机”。 将用户添加到不应打印的组中 Best Answer Slipeer 2016-12-01T04:24:59+08:002016-12-01T04:24:59+08:00 我发现的最好方法: 在使用 GPP 的域中的所有计算机上,使用本地系统帐户为常规运行 powershell 脚本创建一个任务: $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 或更高版本。
我发现的最好方法:
在使用 GPP 的域中的所有计算机上,使用本地系统帐户为常规运行 powershell 脚本创建一个任务:
但 int 仅适用于 Windows Server 2012 / Windows 8 或更高版本。