Вызов WMI C из службы не возвращает полный список принтеров. - PullRequest
0 голосов
/ 10 марта 2020

Я создаю приложение NodeJS, которое упаковано как приложение Windows. Одна из функций приложения требует отображения пользователю списка доступных принтеров. Я использую пакет узлов, который упаковывает WMI C, чтобы извлечь список принтеров из Windows (в частности, из пакета "wmi c - js").

Проблема I у меня есть то, что, когда приложение запускается как Windows служба, вызов WMI C не возвращает все принтеры. В частности, общие принтеры не отображаются. Ни один из них не является принтером OneNote, но меня это не беспокоит (хотя это другая точка данных). Все остальные принтеры, включая Microsoft XPS Document Printer и Print to PDF, отображаются.

Если я запускаю исполняемый файл напрямую, он может получить полный список принтеров, включая общие принтеры.

Общие принтеры, которые я хочу видеть, уже добавлены в качестве принтеров на странице настроек Windows Принтеры и сканеры, и я могу печатать на них.

Я попытался настроить службу для работы от имени других пользователей. с разными разрешениями, но не было никакой разницы. Мне не удалось найти какую-либо информацию о том, почему WMI C будет возвращать другую информацию при вызове из службы.

В производственной среде приложение будет работать как служба, и общие принтеры должны использоваться, поэтому я хотел бы найти способ надежного извлечения всех принтеров.

...