Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_drsp_09.doc
Скачиваний:
0
Добавлен:
17.02.2020
Размер:
207.87 Кб
Скачать

18

Лабораторна робота № 9.

Використання засобів адміністрування систем. WMI.

Теоретична частина

  1. Знайомство з WMI. Архітектура WMI

WMI (Windows Management Instrumentarium) - це реалізація Microsoft ініціативи WBEM (Web - BasedEnterprise Management), оголошеної консорціумом фірм і спрямованої на зниження загальної вартості володіння мережею. WMI використовується для створення скриптів для повного управління Windows, у тому числі:

  • самою операційною системою;

  • системними пристроями;

  • AD;

  • реєстром;

  • лічильниками продуктивності;

  • файловою системою і тому подібне

WMI поставляється у складі Windows 2000, Windows XP і Windows Server 2003, на Windows 98, ME і NT його треба заздалегідь встановлювати (дистрибутиви - на Web -сайте Microsoft).

Архітектура WMI складається з 4 головних компонентів.

Перший компонент - застосування, що управляють. Як правило, це застосування або служби Windows, які отримують дані від WMI. Зазвичай вони забезпечують можливість взаємодії користувача сWMI. У нашій ситуації роль застосувань, що управляють, гратимуть скрипти. Стандартні застосування, що управляють, - SMS, MOM, Tivoli, набір інструментів, що входять до складу WMI SDK і тому подібне

Другий компонент - керовані об'єкти, тобто ті об'єкти, доступ до яких можна отримати за допомогою WMI. Різноманітність керованих об'єктів дуже велика - від вентилятора, встановленого в системного корпусі, до, наприклад, SQL Server з усіма встановленими базами даних.

Третій компонент - провайдери WMI, тобто драйвери WMI, які дозволяють дістати доступ до якого-небудь класу об'єктів. Наприклад, в стандартному постачанні Windows присутні драйвери WMI для роботи з реєстром, журналом подій, апаратними пристроями і тому подібне

Четвертий компонент - програмне забезпечення WMI (WMI software, winmgmt.exe) і репозитарийCIM (Common Information Model). Обидва ці компоненти відповідають за надання запрошуваній засобами WMI інформації і реакцію на виклик методів, проте у них існує розподіл обов'язків : WMI software відповідає за динамічну інформацію WMI (те, що безпосередньо береться від операційної системи, устаткування і тому подібне), а репозитарий CIM - за статичну інформацію (грубо кажучи, налаштування WMI на цьому комп'ютері). Фізично цей репозитарий розташований у файлі CIM.REP в каталозі C :\WINNT\system32\wbem\Repository.

  1. Утиліти і засоби для роботи з wmi

Основний набір стандартних засобів для роботи з WMI поставляється разом з WMI SDK. До складу SDKвходят:

  • WMI CIM Studio - основна графічна утиліта, призначена для перегляду просторів імен WMI, класів, їх властивостей і методів. Можна використовувати також для виконання WQL -запросов;

  • WMI Event Registration і WMI Event Viewer - ці засоби можна використовувати для реєстрації событийWMI і перегляду подій (аналогічно тому, як це реалізовано, наприклад, в PerformanceMonitor), що сталися;

  • WMI Object Browser - виділена в окремий засіб частина WMI CIM Studio. Використовується для перегляду класів WMI, їх властивостей і методів. Працювати необхідно обережно - якщо звернутися до великого набору екземплярів якого-небудь класу (наприклад, інформації про служби), такий запит виконуватиметься дуже довго, а переривати виконання аварійно важко.

  • Утиліта mofcomp - вона дозволяє компілювати файли MOF (Managed Object Format) з текстового в двійковий формат, а також додавати їх в репозитарий CIM. Використовується, наприклад, для того, щоб забезпечити можливість звернення засобами WMI до вашого застосування.

Ще один засіб для роботи з WMI - консоль WMI Control. Вона доступна, наприклад, з ComputerManagement і призначена в основному для адміністрування служби WMI (резервне копіювання і відновлення репозитария, налаштування системи безпеки і тому подібне)

Просте, але в деяких ситуаціях дуже зручний засіб - Scriptomatic, яке можна викачати з Web -сайта Microsoft. Цей засіб реалізований у вигляді застосування HTML (HTA) і призначений для автоматичного створення скрипта, що виводить інформацію про значення усіх властивостей усіх екземплярів якого-небудь класу WMI. Може використовуватися як швидкий броузер по класах WMI.

Дуже зручна можливість - встановити ODBC -драйвер для WMI і дістати можливість працювати з WMI як з великою базою даних зі значною кількістю таблиць. Драйвер ODBC лежить на дистрибутиві Windows 2000 Advanced Server в каталозі D :\VALUEADD\MSFT\MGMT\WBEMODBC. Після установки у вас з'явиться системне джерело даних під назвою WBEM Source і довідка по ньому у вигляді файлу Wbemdr32.chm. Головне - не заповнювати ім'я користувача і пароль для підключення, тому що при підключенні виникне помилка. Якщо ви хочете підключитися до локального комп'ютера, екран властивостей підключення з Access повинен виглядати так, як вказано на малюнку 1:

Мал. 1

Потім треба натиснути на кнопку OK і у вікні Namespace Selection вибрати потрібний простір імен (як правило, CIMV2).

Незважаючи на усі перераховані вище можливості, все-таки головний інструмент для роботи з WMI (як записано в документації по WMI) - це скрипти.

  1. Підключення до wmi

Перше, що необхідно зробити в скрипті - підключитися до служби WMI на локальному або видаленому комп'ютері. Підключення можна виконувати двома різними способами: за допомогою объектаSwbemLocator або (більш стандартний спосіб) за допомогою так званого моникера.

Перший спосіб виглядає так:

1) спочатку отримуємо об'єкт SwbemLocator :

Dim oLocator

Set oLocator = CreateObject("wbemScripting.Swbemlocator")

У об'єкту SwbemLocator - усього лише одна властивість і один метод - властивість security_ використовується для отримання посилання на однойменний вкладений об'єкт, і як можна здогадатися, використовується для налаштування безпеки при підключенні (якщо вона відрізняється від параметрів за умовчанням), а метод ConnectServer використовується для підключення до служби WMI на локальному або видаленому комп'ютері. Якщо ви підключаєтеся до служби WMI на локальному комп'ютері, скористатися правами іншого користувача (відмінного від поточного) вам не вдасться - такі обмеження служби DCOM.

2) далі викликаємо метод ConnectServer, який повертає нам об'єкт SWbemServices, :

Dim oServices

Set oServices = oLocator.ConnectServer("LONDON", "CIMV2")

Якщо ми збираємося підключитися до простору імен за умовчанням (настроюється з консолі ComputerManagement, за умовчанням CIMV2) на локальному комп'ютері, то виклик методу може виглядати так:

Set oServices = oLocator.ConnectServer()

3) отриманий об'єкт SWbemServices можна використовувати для виконання запитів WQL, отримання посилань на об'єкти WMI і тому подібне

Другий спосіб підключення до WMI (практично стандартний) - використання моникера. Моникер - це спеціальна мітка, яка використовується для підключення до COM -объектам. При використанні моникера синтаксис виходить коротшим і гнучкішим (хоча, можливо, менш зрозумілим).

Найпростіший спосіб використання моникера - застосування синтаксису виду

Dim oSvc

Set oSvc = GetObject("WinMgmts:")

В цьому випадку ми отримуємо той же об'єкт SWbemServices з параметрами за умовчанням: тобто підключаємося до простору імен Root\CIMV2 на локальному комп'ютері з правами користувача, від імені якого був запущений скрипт.

На жаль, в PrimalScript підказок за властивостями і методами ми позбавляємося. Якщо вони дуже потрібні, то можна використовувати редактор VBA з синтаксисом виду

Dim oSvc As SWbemServices

Set oSvc = GetObject("WinMgmts:")

Як додаткові параметри при визначенні моникера можна вказати рівень имперсонации (за умовчанням -

GetObject("WinMgmts:{impersonationLevel=impersonate}"),

означає роботу з правами поточного користувача і регіональні налаштування підключення. Наприклад, щоб підключитися з англійськими регіональними налаштуваннями, можна використовувати синтаксис виду GetObject("WinMgmts:[Locale = ms_409]").

Далі моникеру можна передати інформацію про те, до чого ми підключаємося:

1) імені комп'ютера

2) простору імен в нім

3) об'єкту в цьому просторі імен

Наприклад, щоб підключитися до комп'ютера Vancouver, можна використовувати синтаксис

Set oSvc = GetObject("WinMgmts://Vancouver")

Щоб підключитися на нім до простору імен ROOT\CIMV2 (зазвичай робота виконується тільки з ним, це ж простір імен вибирається за умовчанням, тому звичайний простір імен не вказується), синтаксис може виглядати так:

Set oSvc = GetObject(“WinMgmts://Vancouver/root/cimv2”)

А щоб підключитися на нім до об'єкту, що представляє систему логічних дисків, синтаксис може бути таким:

Set oSvc = GetObject(“WinMgmts://Vancouver/root/cimv2:Win32_LogicalDisk”)

В принципі, можна підключитися і безпосередньо до об'єкту логічного диска, наприклад, C :. Синтаксис при цьому може виглядати так:

Set oSWbemObject = _ GetObject(“WinMgmts://Vancouver/root/cimv2:Win32_LogicalDisk.DeviceID=’C:’”)

Але це вже виходить запит WQL, про яких буде розказано нижче. Крім того, повертається не объектSWbemServices, як в попередніх випадках, а об'єкт SWbemObject.

Не дивуйтеся, якщо де-небудь в коді побачите слэши у зворотний бік: синтаксис WMI допускає і те, і інше. Наприклад, код виду

Set oSvc = GetObject(“WinMgmts:\\Vancouver”)

також цілком допустимо.

Який же метод з двох вибирати?

Microsoft рекомендує використовувати тільки моникер, аргументуючи це тим, що :

1) синтаксис простіший;

2 можна повертати не лише об'єкт SWbemServices, але і відразу об'єкт SWbemObject.

Усі приклади у Microsoft побудовані тільки на використанні моникера.

Проте при використанні об'єкту SWbemLocator у нас - свої переваги:

1) тільки при використанні цього методу можна підключатися до комп'ютера з правами іншого користувача. Вимагається це не часто, але іноді все-таки вимагається;

2) можливість роботи з підказками в PrimalScript у нас зберігається.

Ну а об'єкт SWbemObject можна отримати за допомогою усього лише одного додаткового кроку - виклику методу Get об'єкту SWbemServices.

Ще раз відмітимо, що підключатися з правами іншого користувача можна тільки до видаленого комп'ютера. Якщо ви спробуєте підключитися з новими правами до служби WMI на локальному комп'ютері, виникне помилка.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]