Доступ WMI в.NET требует административных привилегий?

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

Во всем, что я нашел, я не заметил никаких упоминаний об этом. Я полагаю, это означает, что мне не нужны права администратора. (Кроме того, потому что я протестировал его на WinXP-боксе на простой учетной записи пользователя, и он работал нормально.)

В любом случае.NET, x86 приложение. Нужно работать на XP и Win 7.

1 ответ

Как и у каждого файла, объекта ядра или любого другого объекта, требующего защиты в классах WMI, пространствах имен и экземплярах Windows, есть ACL, это определяет, кто и к чему может получить доступ. (на основе SID) подключение к WMI рассматривается как доступ к пространству имен WMI, который также имеет ACL. большинство классов и пространств имен в WMI не требуют административной учетной записи для подключения и чтения, запись - это совсем другое. (обратите внимание, что это изменяется при удаленном доступе к нему, который имеет слой DCOM сверху и имеет другой набор необходимых разрешений, которые являются административными, если они не изменены вручную)

Вы можете изучить классы WMI и пространства имен с помощью wbemtest.exe (C:\windows\system32\wbemtest.exe) или с помощью wmiexplorer (с гораздо более приятным графическим интерфейсом), безопасность можно изучить с помощью wmimgmt.msc, и вы можете увидеть, что \\root\cimv2 (пространство имен по умолчанию) имеет доступ для чтения всем аутентифицированным пользователям.

Более того, у Microsoft есть руководство по изменению разрешений на wmi (если, конечно, вам это нужно, обычно это плохая идея): https://technet.microsoft.com/en-us/library/cc771551(v=ws.11).aspx.

Другие вопросы по тегам