我需要在脚本中更新打印机的权限,即按照我手动执行的方式执行相同的操作:
- 打开设备和打印机小程序
- 双击默认打印机(打开其队列)
- 去打印机 -> 属性
- 在属性对话框中,转到安全标签
- 更改权限每个人(例如,检查管理文档权限)
如何做到这一点?例如,在 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 调用它。