
- •Утиліти і засоби для роботи з wmi
- •Підключення до wmi
- •Робота з об'єктами sWbemServices і sWbemObject
- •Як дістатися до конкретного об'єкту: мова запитів wql
- •Робота з подіями
- •6.1 Архітектура роботи з подіями в wmi
- •6.2 Типи подій
- •6.3 Запит, реєструючий подію
- •Класи wmi
- •7.1 Класи wmi для роботи з устаткуванням
- •7.2 Класи для роботи з операційною системою
- •Робота із службами
- •Робота з файлами і каталогами
- •Робота з журналом подій Windows
- •Об'єкт операційної системи - Win32_OperatingSystem
- •Робота з Win32_Process : запуск, завершення роботи, моніторинг процесів на комп'ютері
- •Інші класи для роботи з операційною системою
- •7.3 Класи для роботи зі встановленими продуктами
- •Практичне завдання:
7.2 Класи для роботи з операційною системою
Оскільки одна з цілей WMI - забезпечити повний контроль над операційною системою, набір класів в цьому розділі дуже великий (декілька сотень). Велика частина цих класів (як і класів для роботи з устаткуванням) призначена для отримання інформації і їх властивості доступні тільки на читання. Ми розглянемо тільки ті класи, у яких існують методи, за допомогою яких можна програмно управляти комп'ютером.
Робота із службами
Класи Win32_BaseService, Win32_Service і Win32_SystemDriver представляють служби Windows : Win32_Services - звичайні, Win32_SystemDriver - драйвери (насправді великої різниці між службами і драйверами для Windows немає і інформація про них зберігається в одній гілці реєстру), Win32_BaseServices - і те, і інше разом. У ці класів є важливі методи:
Change - можливість змінити будь-які параметри служби : режим запуску, ім'я, що відображується, ім'я користувача/пароль, від імені якого запускатиметься ця служба, навіть замінити виконуваний файл служби (вказати новий шлях до нього). Оскільки найчастіше міняється режим запуску (наприклад, InternetConnection Sharing на усіх комп'ютерах можна перевести в режим Disabled), то для нього передбачений окремий метод ChangeStartMode.
Create - можливість із скрипта створити нову службу на комп'ютері, Delete - відповідно, її видалити (те ж саме можна зробити за допомогою утиліт Resource Kit);
PauseService, ResumeService, StopService, StartService - змінити стан служби. Перевірити, чи можна службу зупинити або припинити, можна за допомогою властивостей AcceptStop і AcceptPause.
Найбільш ситуації, що часто зустрічаються, для роботи із службами:
потрібний централізований змінити пароль для усіх служб, що працюють від імені певного облікового запису
перевести яку-небудь службу (частіше усього ICS і Server) в режим Disabled
відстежити стан служби і у разі потреби її запустити
запустити скриптом ті служби, для яких стоїть автозапуск, але нині з якихось причин вони не працюють.
Для усіх цих ситуацій використовуються класи Win32_BaseService. У багатьох ситуаціях їх застосування дозволить адміністраторові заощадити безліч часу.
Робота з файлами і каталогами
Можливості роботи з файлами і каталогами в WMI є взаємодоповнюючими по відношенню до об'єктної моделі WSH/FSO. З одного боку, за допомогою WMI не можна, наприклад, записати інформацію в текстовий файл, з іншої - в WMI реалізовані додаткові можливості, яких немає в WSH, наприклад, можливість змінити дозволи на файл/каталог, поміняти власника, настроїти аудит, дізнатися, скільки процесів теперішній час відкрили цей файл і тому подібне. Головний клас для роботи з файловою системою в WMI - Win32_Directory, який може бути використаний для роботи як з каталогом, так і з окремим файлом. Його головні методи:
Copy і CopyEx (розширена версія, відрізняється можливістю включити/відключити рекурсію і точніше визначити місце виникнення помилки) - копіювання каталогу/файлу;
Delete/DeleteEx, TakeOwnerShip/TakeOwnershipEx, Compress/CompressEx, Uncompress/UncompressEx, Rename - коментарів не вимагають;
ChangeSecurityPermissions і ChangeSecurityPermissions - можливість поміняти дозволи для файлу.