Підключення до WMI за допомогою монікеру

Використання монікера у сценаріях накладає деякі обмеження:

  • З метою безпеки всередині HTML сторінки використання монікерів не можна.
  • Процес звернення до підсистеми WMI завжди походить від імені поточного облікового запису, ви не зможете вказати права адміністратора, як це було можливо під час використання об'єкта SWbemLocator.

І так, давайте подивимося, з чого складається і що таке монікер. Монікер у простому варіанті це рядок, який дозволяє задати шлях до класу WMI, він складається з обов'язкового префіксу "WinMgmts:", необов'язкових налаштувань безпеки та необов'язкового шляху до потрібного класу.

Щоб не звалювати все в одну купу, давайте розглянемо кожну частину окремо

Префікс "WinMgmts:"

Регістр символів у монікері "WinMgmts:" не має значення, найпростіший приклад використання:

А можна прописати все і в два рядки:

Гнучкість використання монікера полягає і в тому, що при переборі колекції метод GetObject() можна використовувати в середині циклу For Each . in. Так, приклад нижче дозволяє вивести по черзі імена всіх запущених у системі процесів:

Налаштування безпеки в монікері

При роботі з WMI важливим фактором є безпека, тому загальна схема безпеки ґрунтується на рівні операційної системи, а додаткова на рівнях просторів імен та протоколу DCOM. Звідси випливає, що якщо у користувача немає прав на якусь дію в операційній системі, то у нього і не буде права зробити це через WMI, але навіть якщо у користувача є права в системі, то це ще не факт, що такі ж права будуть та у WMI. Тому для доступу до деяких аспектів WMI потрібно додатково вказувати рівні уособлення, аутентифікації та різніпривілеї.

Тепер давайте приступимо до опису параметрів безпеки, їх всього чотири, вони вказуються у фігурних дужках відразу після префіксу WinMgmts:.

Рівень уособлення DCOM (DCOM Impersonation Level) може приймати такі значення:

Прикладом використання може бути рядок:

Рівень автентифікації DCOM (DCOM Authentication Level) може приймати такі значення:

  1. None (Відсутня) - Відсутня автентифікація
  2. Default (За замовчуванням) – Використовуються стандартні налаштування безпеки
  3. Connect (Підключення) – Перевірка автентифікації лише в момент підключення, далі, під час роботи перевірка відсутня.
  4. Cal l(Виклик) – Перевірка справжності при кожному запиті до сервера, заголовки пакетів підписуються, але вміст не шифрується
  5. Pkt (Пакет) – Перевірка автентичності для всіх пакетів, які проходять між клієнтом та сервером. Заголовки пакетів не підписуються та вміст не шифруються.
  6. PktIntegrity (Цілісність пакета) - Перевірка автентичності для всіх пакетів, які проходять між клієнтом та сервером. Заголовки пакетів підписуються, але вміст не шифрується.
  7. PktPrivacy (Секретність пакета) – Перевірка автентичності для всіх пакетів, які проходять між клієнтом та сервером. Заголовки пакетів підписуються, а вміст шифрується.

джерело автентичності (Authority), наприклад,