如何使用 PowerShell/其他脚本设置打印机权限?

如何使用 PowerShell/其他脚本设置打印机权限?

我需要在脚本中更新打印机的权限,即按照我手动执行的方式执行相同的操作:

  1. 打开设备和打印机小程序
  2. 双击默认打印机(打开其队列)
  3. 打印机 -> 属性
  4. 在属性对话框中,转到安全标签
  5. 更改权限每个人(例如,检查管理文档权限)

如何做到这一点?例如,在 PowerShell 中,我可以执行

Get-WmiObject -class win32_printer -filter Default=True

获取默认打印机,然后有方法getSecurityDescriptor()setSecurityDescriptor()例如这个命令:

(Get-WmiObject -class win32_printer -filter Default=True).getsecuritydescriptor().Descriptor

返回 null 所以我不确定我是否以正确的方式执行此操作。

有人有设置打印机权限的实用示例吗?我的方法正确吗?还是我应该完全使用 WMI 以外的其他方法?谢谢。

答案1

我不了解 PowerShell,我只直接使用 .NET 和 WMI 进行打印机权限设置,这可能会变得很混乱,因为权限由安全描述符,它有一个描述符财产,它有一个DACL属性,其中包含一个或多个温控器对象,每个对象包含AccessMask、AceFlags 和 Trustree这是一个Win32_Trustee包含权限适用对象的对象。

也许有一个 PowerShell 插件可以简化上述设置,或者看看SetACL 命令行工具您可以从 PowerShell 调用它。

相关内容