在powershell中获取并设置打印机ACL

时间:2014-10-15 10:40:40

标签: powershell windows-7

我想授予小组"用户"使用powershell删除一台打印机的权限。

如何获取本地打印机的ACL并将此新ACL包括在内?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

在我的2012服务器上使用PowerShell 4,我会按照以下方式部署打印机。

我创建了一个名为' TEMP'的临时打印机。在此示例中,使用“安全”选项卡定义我希望在特定用户打印机或打印机集上拥有的打印机权限,然后获取安全描述符属性并将其转储到文本文件中,如果您愿意,可以将其存储到变量中与倾销到像我在这里显示的文本文件一样。

(Get-Printer 'TEMP' -Full).PermissionSDDL | Out-File 'C:\OregonOperation.txt'

然后我使用这样的东西将我保存的安全设置拉入变量。     $ perms = Get-Content' C:\ OregonOperation.txt'

然后将其推送到特定打印机,您可以执行以下操作

Set-Printer 'NEWPRINTER' -PermissionSDDL $perms 

如果您想要定位远程计算机,则需要添加-Computer参数。

Set-Printer 'NEWPRINTER' -PermissionSDDL $perms -Computer 'SOMEWORKSTATION'

希望这有帮助。

答案 1 :(得分:0)

这是我用来在打印服务器上的所有打印机上覆盖应用权限的方法。 Server 2012 Powershell v4

设置打印机权限以用作模板,并将其权限加载到变量中。

$printerperms = (Get-Printer -ComputerName Printsvr -Name admin-printer -Full).PermissionSDDL

从要对其应用权限的服务器上获取所有打印机。

$allprinters = get-printer -ComputerName Printsvr -name * | select name -ExpandProperty name

使用“ foreach”命令,您可以使用以下命令从模板打印机应用许可权,并将所述许可权应用于所有人。

foreach ($printer in $allprinters)
{Set-Printer $printer -PermissionSDDL $printerperms -ComputerName Printsvr}