如何使用 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屬性,其中包含一個或多個Win32_ACE對象,每個對象包含AccessMask、AceFlags 和 Trusttree這是一個Win32_受託人包含權限適用對象的物件。

也許有一個 PowerShell 插件可以簡化上述設置,或者看看SetACL 命令列工具您可以從 PowerShell 呼叫它。

相關內容