Как исправить поле Win32_Printer.Default, чтобы оно возвращало правильное значение при удаленном использовании WMI?

Класс Win32_Printer возвращает поле для каждого принтера с именем Default (логическое значение). Это работает локально и точно возвращает принтер по умолчанию. Однако при удаленном подключении с помощью WMI он всегда возвращает false.

Я думал, что это может зависеть от пользователя, с которым вы делали удаленный запрос WMI. Однако это не так (я пробовал с разными пользователями и без изменений).

Есть ли способ исправить это? В настоящее время я пытаюсь заставить это работать на клиенте Windows 7, и я подключаюсь к нему из Windows 2008 R2.


person Mark    schedule 03.09.2010    source источник


Ответы (1)


Я вижу, что эта ветка довольно старая, но я подумал, что добавлю свои 2 цента, даже если это не поможет, но такая же проблема существует и с XP. На самом деле под XP вы также не можете прочитать содержимое Win32_CDROMDrive, хотя это исправлено в Windows 7.

Нашли ли вы решение проблемы с принтером по умолчанию с помощью WMI? В качестве альтернативы вы можете прочитать принтер по умолчанию, но не порт из реестра, например: hkcu\software\microsoft\windows NT\CurrentVersion\Windows\Device

Это покажет что-то вроде HP Color LaserJet CP3525 PCL6,winspool,Ne03: Обрежьте дерьмо, и вы получите то, что вам нужно. Теперь у вас есть принтер, и вы можете получить соответствующий порт через WMI.

С уважением,

4 глаза

person 4Eyes    schedule 28.05.2011
comment
Спасибо за Ваш ответ. Меня больше интересовало исправление WMI, чтобы он возвращал правильное значение, а не работал вокруг WMI и находил значение в другом месте. Однако я уверен, что ваш ответ будет полезен для некоторых. Спасибо - person Mark; 31.05.2011