Получение принтеров, на которые у меня есть права доступа - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть сервер, когда пользователь входит в систему, выполняется сценарий входа в систему, который загружает принтеры, на которые у пользователя есть права. Это делается с помощью GPO. Поэтому, когда пользователь вошел в систему, он может видеть принтеры, которые ему разрешено использовать.

Что мне нужно сделать, это загрузить эти принтеры в приложение C #. Я пытался перечислить свойства контейнера групповой политики с помощью фильтра (objectClass = groupPolicyContainer), но мне не удалось найти принтеры, к которым у меня (у текущего пользователя) есть доступ.

1 Ответ

0 голосов
/ 28 февраля 2012

Вы можете использовать WMI для этого и особенно WIN32_Printer класс:

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"]));
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...