正在获取我有权访问的打印机

本文关键字:访问 打印机 获取 | 更新日期: 2023-09-27 18:26:10

我有一个服务器,当用户登录时,会执行一个登录脚本,加载用户有权限的打印机。这是使用GPO完成的。因此,当用户登录时,他可以看到允许他使用的打印机。

我需要做的是在C#应用程序中加载这些打印机。我一直在尝试使用(objectClass=groupPolicyContainer)筛选器枚举组策略容器的属性,但找不到我(当前用户)可以访问的打印机。

正在获取我有权访问的打印机

您可以为此使用WMI,尤其是WIN32_Pinter class:

using System.Management;
namespace WMIQuery
{
  class WmiQuery
  {
    static void Main(string[] args)
    {
      /* On the local computer loged as current user
       */
      ObjectQuery oQuery0 = new ObjectQuery(@"select * from Win32_printer where shared=true");
      ManagementObjectSearcher searcher0 = new ManagementObjectSearcher(oQuery0);
      foreach (ManagementObject queryObj in searcher0.Get())
      {
        Console.WriteLine(String.Format("--> {0} ({1})", queryObj["Name"], queryObj["ShareName"]));
      }
    }
  }
}