Server 2008 R2 – 将新权限应用于服务器上的所有打印机

我们安装了一个新的64位打印服务器(Server 2008 R2),在我们以前的打印服务器上,我们有帮助台作为高级用户组的成员,并给他们“打印机pipe理员”,以便在打印机closures时更换打印机端口。

它看起来像有一个疏忽,并没有添加时,我们设置新的服务器。

我已经将它们添加到高级用户,并进入“PRINTMANAGEMENT.MSC”中的打印服务器属性,并授予权限,但似乎这只适用于新的打印机,因为它似乎不是inheritance现有打印机。

无论如何获得这些权限传播到现有的打印机?

这些设置为本地打印机,绑定到标准的TCP / IP端口。

我遇到这个问题意识到我从来没有发布我所做的,最终我想出了一种方法来使用SUBINACL.exe(需要在像System32一样的path目录中)

并通过所有打印机的PowerShell循环

这里是代码,在打印服务器上以pipe理员身份从PS控制台运行

$Logpath = "c:\temp\logs" Stop-Transcript -ErrorAction "SilentlyContinue" Start-Transcript $Logpath -Append $PRINTERS = (Get-WmiObject Win32_Printer) foreach($PRINTER in $PRINTERS) {$Server = $PRINTER.SystemName $PrinterName = $PRINTER.name Write-Host \\$Server\$PrinterName Invoke-Command -AllowRedirection {subinacl.exe /printer \\$Server\$PrinterName /Grant=domain\username=F} } Stop-Transcript 

我不再在那里工作了,但是我希望有人能从中find答案。

我认识到这不是一种将安全权限应用到所有打印机的方法,但它可以解决您的问题。

打印机上的默认权限通常似乎包括分配给域组“打印操作员”的pipe理权限。 考虑将您的帮助台组添加到“打印操作员”。

此外,似乎还有一组全局的权限,可能允许将设置应用于打印服务器属性下的所有打印机,这些打印机属性可通过右键单击printmanagement.msc中的打印服务器名称来printmanagement.msc

注意:我之前没有使用过打印服务器属性acl,所以我不能说它是否按照你想要的方式工作。

当我运行它似乎是拉动服务器名称和打印机名称,但运行命令错误 –

\ [打印服务器名称] [打印机名称] Invoke-Command:无法评估参数“ConnectionUri”,因为其参数被指定为脚本块,因此没有input。 没有input就无法评估脚本块。 在C:\ ntutils \ utils \ Subinacl7.ps1:13 char:15 + Invoke-Command <<<< -AllowRedirection {c:\ ntutils \ utils \ subinacl.exe / printer http:// $ Server / $ PrinterName / Grant = ter minalserver \ ManagePrintQueues = M} + CategoryInfo:MetadataError:(:) [Invoke-Command],ParameterBindingException + FullyQualifiedErrorId:ScriptBlockArgumentNoInput,Microsoft.PowerShell.Commands.InvokeCommandCommand