Использование ManagementScope (WMI) - какие-нибудь готы?


Я хочу использовать систему.Управление.ManagementScope для запроса списка зарегистрированных в данный момент пользователей.

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

Хорошо ли подходит ManagementScope / WMI? Должен ли он всегда быть доступен для запроса на большинстве ОС? Есть ли какие-либо проблемы безопасности, которые я должен рассмотреть, скажем, например, не повышенный пользователь входит в рабочую станцию, сможет ли этот пользователь запросить WMI? Будет ли системная учетная запись работать как служба?

Есть ли другие готы, о которых я должен знать, прежде чем идти этим маршрутом?

Спасибо

1 3

1 ответ:

Системная учетная запись, запускающая службу, - это способ, которым мы ее обрабатываем, поскольку не все пользователи являются локальными администраторами. Мы выталкиваем сервис одновременно с графическим интерфейсом и говорим с ним по каналам IPC. Это работает, и это проще, чем беспокоиться о том, какие области пользователи могут видеть в WMI. В нашем случае это также облегчает запись в журнал событий.

WMI, вероятно, самый простой способ сделать это. Вы можете посмотреть на pinvoke / Win32 API (или потенциально даже API сервера терминалов) , но WMI, скорее всего, является легче всего встать и надежно работать.

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

AFAIK, Windows 2000 и ниже потребуется другой запрос, чем Windows XP и выше, как в случае с XP и выше вы запросите Win32_LogonSession для результатов, где LogonType=2 (interactive). Поскольку 2000 и ниже поддерживают только одного вошедшего в систему пользователя консоли, вы просто запросите Win32_ComputerSystem и получите свойство UserName для возвращенного результата.