C# - 为 Active Directory 发布的打印机获取打印机 ACL
C# - Get Printer ACL for Active Directory published printers
在 C# 中枚举发布到 Active Directory 的打印机相当简单,并且没有问题。
我的实际问题是,我想根据打印机队列 ACL 将返回的打印机数量限制为我(或用户)有权访问的打印机。
正如这里已经提到的 How to programmatically search a printer in Active Directory 队列的实际 ACL(如果我被允许 print/manage 等)没有存储在 Active Directory 对象本身中。
调用所有实际打印机队列的第二个循环也可以,但我还没有找到如何访问远程打印机队列 ACL。
一旦我拥有所有 AD 发布的打印机,关于如何调用打印机 object/extract ACL 的任何想法?
您可以使用 WMI。有两个 类 我会看:
Win32_Printer
有一个 GetSecurityDescriptor()
方法。
Win32_Share
有一个 GetAccessMask()
方法。
我不确定哪一个是正确的选择,但在两者之间我希望你会没事的。
在 C# 中枚举发布到 Active Directory 的打印机相当简单,并且没有问题。
我的实际问题是,我想根据打印机队列 ACL 将返回的打印机数量限制为我(或用户)有权访问的打印机。
正如这里已经提到的 How to programmatically search a printer in Active Directory 队列的实际 ACL(如果我被允许 print/manage 等)没有存储在 Active Directory 对象本身中。
调用所有实际打印机队列的第二个循环也可以,但我还没有找到如何访问远程打印机队列 ACL。
一旦我拥有所有 AD 发布的打印机,关于如何调用打印机 object/extract ACL 的任何想法?
您可以使用 WMI。有两个 类 我会看:
Win32_Printer
有一个GetSecurityDescriptor()
方法。Win32_Share
有一个GetAccessMask()
方法。
我不确定哪一个是正确的选择,但在两者之间我希望你会没事的。