【问题标题】:Get and set printer ACL in powershell在 powershell 中获取和设置打印机 ACL
【发布时间】:2014-10-15 10:40:39
【问题描述】:

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

我如何获取本地打印机的 ACL 并将这个新的 ACL 包含到那些?

感谢您的帮助。

【问题讨论】:

标签: powershell windows-7


【解决方案1】:

这是我用来在打印服务器上的所有打印机上一揽子应用权限的方法。 服务器 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}

【讨论】:

    【解决方案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'
    

    希望这会有所帮助。

    【讨论】:

    • 不幸的是,我在 Windows7 上工作,没有 Get-Printer 和 Set-Printer 功能。
    • 我认为 Jeroen 发布了你最好的选择。还有这个线程也可能有用。 serverfault.com/questions/86477/…
    • 好主意!这非常适合我今天所需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 1970-01-01
    • 1970-01-01
    • 2010-11-08
    • 1970-01-01
    • 2020-09-15
    相关资源
    最近更新 更多