Ноу Інти, лекція, сервер сценаріїв wsh

Анотація: Обговорюються призначення і основні властивості сервера сценаріїв Windows Script Host (WSH). Описуються консольний і графічний режими роботи сценаріїв WSH. Порушуються питання вибору мови для написання сценаріїв WSH

Сервер сценаріїв WSH. Мови сценаріїв VBScript і JScript

У двох попередніх лекціях було розглянуто мову командних файлів (мова командної оболонки), який в якості інструменту для автоматизації роботи підтримується у всіх версіях Windows. Однак за допомогою командного інтерпретатора cmd.exe важко написати будь-яку складну програму-сценарій (script): відсутня повноцінна інтерактивність. не можна безпосередньо працювати з робочим столом Windows і системним реєстром і т. д.

Для виправлення цієї ситуації компанією Microsoft був розроблений сервер сценаріїв Windows Script Host (WSH), за допомогою якого можна виконувати сценарії, написані, в принципі, будь-якою мовою (за умови, що для цього мови встановлений відповідний модуль (scripting engine), що підтримує технологію ActiveX Scripting). В якості стандартних мов підтримуються Visual Basic Script Edition (VBScript) і JScript.

Взагалі кажучи, принцип роботи сценаріїв, підтримуваних WSH, полягає у використанні об'єктів ActiveX, тому спочатку ми дуже коротко опишемо можливості самої технології ActiveX компанії Microsoft.

Можливості технології ActiveX

Нагадаємо, що в Windows з самого початку для забезпечення обміну даними між додатками була розроблена технологія зв'язування та впровадження об'єктів (Object Linking and Embedding, OLE). Спочатку технологія OLE використовувалася для створення складених документів, а потім для вирішення більш загальної задачі - надання додатками один одному власних функцій (служб) і правильного використання цих функцій. Технологія, що дозволяє одному з додатком (клієнту автоматизації) викликати функції іншого додатка (сервера автоматизації) була названа OLE Automation. В основі OLE і OLE Automation лежить розроблена Microsoft базова "компонентна" технологія Component Object Model (COM). У загальних словах, компонентний програмне забезпечення - це спосіб розробки програм, при якому використовуються технології створення програмних модулів, подібні технологіям, застосовуваним для розробки апаратних засобів. Складні елементні схеми збираються з стандартизованих мікросхем, які мають чітко визначені документовані функції. Розробник може ефективно користуватися такими мікросхемами, не замислюючись про їх внутрішню структуру. У програмних компонентах, написаних на якій-небудь мові програмування, деталі реалізації використовуваних алгоритмів також приховані всередині компонента (об'єкта), а на поверхні знаходяться загальнодоступні інтерфейси, якими можуть користуватися і інші додатки, написані на тому ж або іншою мовою.

Технологія ActiveX тривалий час була ключовою в продуктах Microsoft. Найбільш повне втілення вона знайшла в програмах Microsoft Office, Internet Explorer, Internet Information Service (IIS). У ці продукти для управління відповідними об'єктами автоматизації були вбудовані інтерпретатори спеціальних мов сценаріїв: VBScript (використовується в Microsoft Office, Internet Explorer, IIS) і JScript (використовується в Internet Explorer, IIS). Однак безпосередньо в операційній системі, поза цих продуктів, виконуватиме сценарії, написані на VBScript або JScript, було не можна.

Сервер сценаріїв WSH є потужним інструментом, що надає єдиний інтерфейс (об'єктну модель) для спеціалізованих мов (VBScript, JScript, PerlScript, REXX. TCL, Python і т. П.), Які, в свою чергу, дозволяють використовувати будь-які зовнішні об'єкти ActiveX. За допомогою WSH сценарії можуть бути виконані безпосередньо в операційній системі Windows, без вбудовування в HTML-сторінки.

Призначення і основні властивості WSH

WSH ставить мінімальні вимоги до обсягу оперативної пам'яті, і є дуже зручним інструментом для автоматизації повсякденних завдань користувачів і адміністраторів операційної системи Windows. Використовуючи сценарії WSH, можна безпосередньо працювати з файлової системою комп'ютера, а також керувати роботою інших програм (серверів автоматизації). При цьому можливості сценаріїв обмежені тільки засобами, які надають доступні сервери автоматизації.

Перерахуємо лише найбільш очевидні завдання, для автоматизації яких прекрасно підходять сценарії WSH.

  • Організація резервного копіювання на мережевий сервер файлів з локальної машини, які відбираються за будь-яким критерієм.
  • Швидка зміна конфігурації робочого столу Windows в залежності від завдань, що виконуються.
  • Автоматичний запуск програм Microsoft Office, створення там складних складових документів, роздруківка цих документів і закриття додатків.
  • Управління роботою додатків, які не є серверами автоматизації, за допомогою посилки в ці додатки натискань клавіш.
  • Підключення і відключення мережевих ресурсів (дисків і принтерів).
  • Створення складних сценаріїв реєстрації для користувачів.
  • Виконання завдань адміністрування локальної мережі (наприклад, додавання або видалення користувачів).

Створення і запуск найпростіших сценаріїв WSH

Розмір сценарію може змінюватися від однієї до тисяч рядків, граничний розмір обмежується лише максимальним розміром файлу у відповідній файлової системи.

Як перший приклад створимо JScript-сценарій, що виводить на екран діалогове вікно з написом "Привіт!". Для цього достатньо c допомогою, наприклад, стандартного Блокнота Windows (notepad.exe) створити файл First.js, що містить всього один рядок:

Той же самий сценарій на мові VBScript, природно, відрізняється синтаксисом і виглядає наступним чином:

Мовою VBScript те ж саме виглядає наступним чином:

Питання по лекції 7, де розглядається взаємодія зі сторонніми програмами, в тому числі емуляція натиснення кнопок клавіатури WshShell.SendKeys.

Питання в тому що під час автоматизації може знадобитися не натискання клавіатури, а натискання кнопок в повідомленнях цих програм.

Можна витягнути інформацію про об'єкті (кнопці) скажімо за допомогою AutoIt Info, або орієнтуватися скажімо на текст на кнопці. але як на цю кнопку натиснути? (Без обходу по клавіатурі)

Де проводиться професійна перепідготовка "Системне адміністрування Windows"? Щось я не зовсім зрозумів як проводиться навчання.

Схожі статті