我们设置了一个新的 64 位打印服务器(Server 2008 R2),在我们以前的打印服务器上,我们将服务台作为高级用户组的成员,并为他们提供了“Manager Printers”,以便他们可以在打印机出现故障时更改打印机端口。
看起来有一个疏忽,并且在我们设置新服务器时没有添加它。
我已将它们添加到高级用户,并进入“PRINTMANAGEMENT.MSC”中的打印服务器属性并授予权限,但似乎这只适用于新打印机,因为它似乎没有继承任何现有打印机。
无论如何要获得这些权限以传播到现有打印机?
这些被设置为本地打印机,绑定到标准 TCP/IP 端口。
我遇到了这个问题,意识到我从未发布过我所做的事情,最终我想出了一种使用 SUBINACL.exe 的方法(需要位于像 System32 这样的路径目录中)
并通过所有打印机的 powershell 循环传递它
这是代码,以打印服务器上的管理员身份从 PS 控制台运行它
我不再在那里工作了,但我希望有人能从中受益。
我知道这不是将安全权限应用于所有打印机的方法,但它可能会解决您的问题。
打印机的默认权限通常似乎包括分配给域组“Print Operators”的管理权限。考虑将您的服务台组添加到“打印操作员”。
此外,似乎有一组全局权限,可以允许将设置应用于打印服务器属性下找到的所有打印机,可以通过右键单击
printmanagement.msc
.注意:我之前没有使用过 Print Server Properties acl,所以我不能说它是否按照你想要的方式工作。
当我运行它时,它似乎在提取服务器名称和打印机名称,但在运行命令时出错——
\[打印服务器名称][打印机名称] Invoke-Command:无法评估参数“ConnectionUri”,因为它的参数被指定为脚本块并且没有输入。没有输入就无法评估脚本块。在 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
这个问题困扰了我一段时间,在这个线程的帮助下,我到达了我需要的地方。正如 Mike 指出的那样,脚本给了我错误,我尝试修改它但没有成功。最后直接用good'ol CMD。
首先,我得到了我的打印机列表。
其次,我将结果与命令一起粘贴到 excel 中。
查看 Excel 布局的图像
第三,我将其复制到 Notepad++ 中并清理了空格。
最后,粘贴到CMD并运行它。
看起来很多,但花了我 10 分钟。抱歉不干净!希望能帮助到你!