Доступ 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.