
我需要在腳本中更新印表機的權限,即執行與我手動執行的操作相同的操作:
- 打開設備和印表機小程式
- 雙擊預設印表機(開啟其佇列)
- 去印表機 -> 屬性
- 在屬性對話框中,轉到安全標籤
- 更改權限每個人(例如,檢查管理文件權限)
怎麼做?例如,在 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屬性,其中包含一個或多個Win32_ACE對象,每個對象包含AccessMask、AceFlags 和 Trusttree這是一個Win32_受託人包含權限適用對象的物件。
也許有一個 PowerShell 插件可以簡化上述設置,或者看看SetACL 命令列工具您可以從 PowerShell 呼叫它。