Підключення до 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) може приймати такі значення:
- None (Відсутня) - Відсутня автентифікація
- Default (За замовчуванням) – Використовуються стандартні налаштування безпеки
- Connect (Підключення) – Перевірка автентифікації лише в момент підключення, далі, під час роботи перевірка відсутня.
- Cal l(Виклик) – Перевірка справжності при кожному запиті до сервера, заголовки пакетів підписуються, але вміст не шифрується
- Pkt (Пакет) – Перевірка автентичності для всіх пакетів, які проходять між клієнтом та сервером. Заголовки пакетів не підписуються та вміст не шифруються.
- PktIntegrity (Цілісність пакета) - Перевірка автентичності для всіх пакетів, які проходять між клієнтом та сервером. Заголовки пакетів підписуються, але вміст не шифрується.
- PktPrivacy (Секретність пакета) – Перевірка автентичності для всіх пакетів, які проходять між клієнтом та сервером. Заголовки пакетів підписуються, а вміст шифрується.
джерело автентичності (Authority), наприклад,