none
Получить список установленных принтеров для конкретного пользователя RRS feed

  • Вопрос

  • Пытаюсь получить список принтеров на удаленной машине посредством WMI. Использую класс Win32_Printer. Однако удаленные принтеры "прописываются" в профиле конретного пользователя, а WMI выдает мне список для админа, данные которого я задаю в SWbemLocator.ConnectServer().

    Могу ли я получить полный список для нужного мне пользователя посредством WMI? И соответсвенно, можно ли добавить удаленый принтер в требуемый профиль, имея права администратора?
    27 ноября 2009 г. 7:01

Ответы

  • Если вы хотите получить список принтеров, настроенный в профиле пользователя, то лучше это сделать в логон-скрипте пользователя (который можно настроить через групповые политики) и сохранять полученную информацию в заданную (лучше скрытую) папку на сетевом сервере.

    Вы не можете напрямую без ухищрений добавить принтер из-под администратора в профиль пользователя. Но, начиная с Windows XP, можно добавить сетевой принтер на уровне системы. Такой принтер будет виден всеми пользователями, которые зайдут в систему локально.

    Подробнее см. обсуждения
    http://social.technet.microsoft.com/Forums/ru-RU/ws2008ru/thread/f0ec8f27-8d65-4061-a0c2-af36653a3758
    http://social.technet.microsoft.com/Forums/ru-RU/windowsserverru/thread/4585e9ae-86c4-40f5-8032-71788c892e97
    • Помечено в качестве ответа Vasily Petrov 27 ноября 2009 г. 7:39
    27 ноября 2009 г. 7:08
    Модератор
  • Можно одним из трех способов:

    - Подключиться удаленно в контексте пользователя, зная его логин и пароль.
    - Побудить пользователя выполнить программу или скрипт, собирающие информацию по принтерам (например, логон-скрипт).
    - Подгрузить куст реестра, находящийся в профиле пользователя на удаленной машине, и проанализировать информацию в нем. Пользователь при этом не должен быть залогинен в системе.
    • Предложено в качестве ответа Mickwel 10 декабря 2009 г. 12:13
    • Помечено в качестве ответа ILYA [ sie ] SazonovModerator 15 декабря 2009 г. 3:06
    9 декабря 2009 г. 16:40
    Модератор

Все ответы

  • Если вы хотите получить список принтеров, настроенный в профиле пользователя, то лучше это сделать в логон-скрипте пользователя (который можно настроить через групповые политики) и сохранять полученную информацию в заданную (лучше скрытую) папку на сетевом сервере.

    Вы не можете напрямую без ухищрений добавить принтер из-под администратора в профиль пользователя. Но, начиная с Windows XP, можно добавить сетевой принтер на уровне системы. Такой принтер будет виден всеми пользователями, которые зайдут в систему локально.

    Подробнее см. обсуждения
    http://social.technet.microsoft.com/Forums/ru-RU/ws2008ru/thread/f0ec8f27-8d65-4061-a0c2-af36653a3758
    http://social.technet.microsoft.com/Forums/ru-RU/windowsserverru/thread/4585e9ae-86c4-40f5-8032-71788c892e97
    • Помечено в качестве ответа Vasily Petrov 27 ноября 2009 г. 7:39
    27 ноября 2009 г. 7:08
    Модератор
  • Не знал, что сетевой принтер можно сделать системным. Это оптимальное решение.
    Спасибо!
    27 ноября 2009 г. 7:38
  • Возвращаясь к исходному: "Могу ли я получить полный список принтеров для нужного мне пользователя посредством WMI"?

    Можно это при помощи WMI и/или PowerShell или нет?

    Заранее спасибо!

    8 декабря 2009 г. 17:56
  • Можно одним из трех способов:

    - Подключиться удаленно в контексте пользователя, зная его логин и пароль.
    - Побудить пользователя выполнить программу или скрипт, собирающие информацию по принтерам (например, логон-скрипт).
    - Подгрузить куст реестра, находящийся в профиле пользователя на удаленной машине, и проанализировать информацию в нем. Пользователь при этом не должен быть залогинен в системе.
    • Предложено в качестве ответа Mickwel 10 декабря 2009 г. 12:13
    • Помечено в качестве ответа ILYA [ sie ] SazonovModerator 15 декабря 2009 г. 3:06
    9 декабря 2009 г. 16:40
    Модератор
  • - Подгрузить куст реестра, находящийся в профиле пользователя на удаленной машине, и проанализировать информацию в нем. Пользователь при этом не должен быть залогинен в системе.

    Мой случай, спасибо!
    10 декабря 2009 г. 12:13
  • - Подгрузить куст реестра, находящийся в профиле пользователя на удаленной машине, и проанализировать информацию в нем. Пользователь при этом не должен быть залогинен в системе.

    Мой случай, спасибо!
     Не совсем понятно только, как это сделать. При попытке удаленно заглянуть в реестр все равно берется куст того пользователя, кто заглядывает.
    22 декабря 2009 г. 12:32
  • При удаленном доступе к реестру все так и происходит, а здесь необходимо подгрузить куст реестра как файл, наподобие того, что делает пункт меню Load Hive в regedit. Что-то типа

    reg load /?

    22 декабря 2009 г. 12:59
    Модератор