Архив номеров
Форум
Контакты

Отлажено до автоматизма: автоматизация Windows штатными средствами

ЛЮБОЙ ПРОЦЕСС НУЖДАЕТСЯ В АВТОМАТИЗАЦИИ. МНОГИЕ ПРОГРАММЫ ИМЕЮТ ВСТРОЕННЫЕ МЕХАНИЗМЫ ДЛЯ УСКОРЕНИЯ И АВТОМАТИЗАЦИИ СВОИХ НАСТРОЕК: КОМАНДНЫЕ КЛЮЧИ, ВСТРОЕННЫЕ ПЛАНИРОВЩИКИ, ПОДГРУЖАЕМЫЕ ВАРИАНТЫ НАСТРОЕК И Т.П. ВСТРЕЧАЮТСЯ ДАЖЕ ЭКЗЕМПЛЯРЫ С ПРИМИТИВНЫМИ СКРИПТОВЫМЫ ЯЗЫКАМИ.

Не отстает от данной тенденции и операционная система Windows, в которой проблема рутинных операций стоит особенно остро. Даже в ранних версиях этой ОС возможностей командных .ВАТ-файлов не хватало для полноценной автоматизации. Конечно, выпускались и продолжают выпускаться различные «эмуляторы движений мыши» и тому подобный софт, но это - всего лишь полумера. Требовалось нечто более универсальное и гибкое по возможностям и спустя некоторое время «ЭТО» появилось.

Что представляет собой WSH?

Начиная с Windows 98 и Windows NT 4 Option Pack, в состав дистрибутива входит сервер сценариев Windows Script Host (WSH).

Реализован он в двух файлах - в WScript.exe, предназначенном для взаимодействия с пользователем через графическую оболочку GUI (Диалоговые окна) и в CScript.exe, предназначенном для работы в командной строке. В данном режиме сценарии WSH посылают сообщения в окно консоли, подобно встроенным командам и консольным приложениям, а также сообщают код возврата ERRORLEVEL.

Выполнение сценариев

Сценарии WSH могут исполняться как при двойном клике, при котором управление будет передано обработчику WScript.exe, так и с помощью командной строки:

WScript.exe путь/имя сценария [параметры сервера скриптов] [аргументы сценария]
CScript.exe путь/имя сценария [параметры сервера скриптов] [аргументы сценария]

Полный список параметров сервера сценариев можно узнать, выполнив команды

WScript.exe //? или CScript.exe //?

Чтобы каждый раз не задавать серверу сценариев нужные параметры в командной строке, можно указать их в дополнительных свойствах скрипта, щелкнув по нему правой кнопкой мыши и выбрав «Свойства» из контекстного меню. Когда вы зададите нужные параметры и закроете диалоговое окно, нажав кнопку Ок, Windows создаст дополнительный файл с тем же именем, что и у сценария, и расширением .wsh. Это простой текстовый файл, похожий на стандартный .ini, с настройками для данного сценария. Не следует переносить этот файл в другой каталог отдельно от файла сценария.

Сценарии на WSH

Сценарии WSH 1.0 представляют собой небольшие подпрограммы в текстовом формате, не требующие компиляции перед выполнением, написанные на языке VBScript или JScript (реализация JavaScript от Microsoft). Замечу, что именно эти языки используются при написании клиентских сценариев для придания web-страницам интерактивности. Возможно использование и других языков - например, привычных юниксоидам Perl или Python, но для этого требуется установить в систему дополнительные модули сторонних производителей.

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

HelloWord.vbs

WScript.Echo “Hello, Word”

HelloWord.js

WScript.Echo (“Hello, Word”);

Результатом будет вывод знаменитого сообщения.

Начиная с Windows 2000 и по Windows Vista включительно Windows Script Host 2.0. является неотъемлемой частью операционной системы. WSH 2.0 имеет определенные преимущества по сравнению с предыдущей версией:

Помимо .vbs и .js сценариев теперь можно использовать XML-контейнеры .wsf, что существенно облегчает отладку, позволяет разбиение скриптов на модули и даже объединение модулей на разных языках. Кроме того, теперь в .wsf можно разместить справочную информацию с примерами запуска сценария, превращая его в полноценное приложение.

Если у вас Windows версии раньше 2000, то сервер сценариев WSH можно установить отдельно, предварительно скачав его с сайта Microsoft:

http://support.microsoft.com/kb/188135

Вот как будет выглядеть простейшая реализация сценариев WSH 2.0, выводящих сообщение «Hello Word»:

HelloWordVBScript.wsf

<?xml version="1.0" encoding="windows-1251"?>
<job id="Sample VBScript">
<script language="VBScript">
<![CDATA[

WScript.Echo “Hello, Word”

]]>
</script>
</job>

HelloWordJScript.wsf

<?xml version="1.0" encoding="windows-1251"?>
<job id="Sample JScript">
<script language="JScript">
<![CDATA[

WScript.Echo (“Hello, Word”);

]]>
</script>
</job>

Возможности и применение

Основной сегмент применения сценариев WSH – это выполнение каких-либо операций на клиентских компьютерах и серверах без непосредственного вмешательства пользователя или администратора в тех случаях, когда групповые политики (GP) Active Directory бессильны.

В таких ситуациях создается сценарий, инициирующий выполнение нужных действий на определенном этапе работы операционной системы, который затем прописывается в групповой политике.

Некоторые возможности WSH на практике

Рассмотрим откомментированный листинг:

MapNetworkDrive.wsf

' Проверка наличия сетевого диска, в случае отсутствия производится попытка подключения.

Dim driveletter, netshare
driveletter = “X:”
netshare = "\\network\directory"

' Эта функция проверяет наличие сетевого диска
Function CheckNetworkMapping(DriveLetter)
Dim Drive
‘Проверяем наличие подключенного сетевого диска
CheckNetworkMapping = False
For Each Drive In wshNetwork.EnumNetworkDrives
If LCase(Drive) = LCase(DriveLetter) Then
CheckNetworkMapping = True
Exit For
End If
Next
If Not CheckNetworkMapping Then
WScript.Echo "Сетевой диск не найден. Проверьте сетевое соединение"
End If
End Function

' Эта подпрограмма ассоциирует букву с сетевым каталогом
sub MapNetwork(driveletter, netshare)
on error resume next
err.clear

‘Подключаем сетевой диск"
wshNetwork.MapNetworkDrive driveletter, netshare, true ,,"888"
if err <> 0 then
'Если подключение не удалось, вывести сообщение об ошибке
WScript.Echo "не могу ассоциировать " & driveletter & " с " & netshare
end if
end sub

Данный сценарий очень полезен при использовании сетевых программ на нестабильном сетевом соединении (например, VPN). Будучи установленным на нужные компьютеры, он значительно снизит нагрузку на техподдержку и побережет нервы пользователей.

Сценарий можно улучшить. Например, заставить проверять и восстанавливать в случае необходимости доступ к ресурсу через определенный промежуток времени. Это можно осуществить, создав бесконечный цикл с помощью операторов Do While … Loop и задав период ожидания - wscript.sleep соответственно. Прекратить выполнение бесконечно зацикленного скрипта можно лишь остановив процесс wscript.exe в Диспетчере задач Windows.

Защита сценариев WSH от модификации

Так как сценарии WSH распространяются и выполняются в исходных кодах без предварительной компиляции, то анализ и модификация исходного кода не составляет никаких трудностей.

В целях безопасности кода и авторских прав, в версии WSH 2.0 появилась возможность скрывать исходный текст скриптов без изменения функциональности. Для шифрования используется программа Script Encoder, которую можно скачать на сайте компании Microsoft.

Расшифровку скриптов перед их выполнением сервер сценариев WSH производит самостоятельно.

В системе зарегистрированы специальные расширения для файлов с зашифрованными сценариями WSH: .vbe для сценариев VBScript и .jse для сценариев JScript. Зашифрованные сценарии можно использовать в .wsf-контейнерах. Для этого в качестве значения аргумента language должно быть указано «VBScript.Encode» или «JScript.Encode».

Пример зашифрованной программы “Hello Word”

HelloWordVBScriptEncode.wsf

<?xml version="1.0" encoding="windows-1251"?>
<job id="Sample VBScript">
<script language="VBScript.Encode">
<![CDATA[

#@~^GgAAAA== Um.bwDR21tK~J_+sVK~~ KDNruQgAAA==^#~@

]]>
</script>
</job>

При использовании Script Encoder следует помнить:

  1. Что русские буквы не шифруются.
  2. Кроме WSH-сценариев .vbs и .js, Script Encoder может шифровать контейнеры .wsf, скрипты для web-страниц, а также серверные ASP-сценарии. Более подробная информация содержится в справке к программе.
  3. Не стоит всецело полагаться на шифрование c помощью Script Encoder. Оно одностороннее. Алгоритм давно известен, и в Сети уже имеются программы для дешифрации. Одну из них, WSH Script Decoder, можно скачать по адресу http://www.shareware4u.de/detail_templ.php?ProgrammID=10313&Dl=1&Alt1=1.

Эволюция WSH

Наряду с многочисленными дополнениями в Windows Vista компания Microsoft готовила консольный сервер командных сценариев нового поколения Monad (или MSH Command shell), созданный на базе .NET Framework.

Рассмотрим основные нововведения, реализованные в нем:

  • Консольная CMD-подобная оболочка, во многом схожая с Unix Shell.
  • Размещение настроек в отдельном файле делает их модификацию простой и дает возможность легко скопировать их на другие машины.
  • Разделение профилей по уровню доступа или иным критериям.
  • Pipeline (трубопровод) - механизм передачи данных между различными модулями системы в виде структурированных .NET-объектов.
  • Виртуальный слой информации, который виден в оболочке в качестве отдельного диска. Теперь, вместе с привычными A, C и D, вы также можете видеть диски переменных сред, настроек, ярлыков всевозможных программ и частей реестра. Это позволяет, например, получать доступ к реестру как к файловой системе.

После публикации 21 июля 2005 года хакером Second Part To Hell вируса, в последствии названного компанией F-Secure как Danom (Monad наоборот), Microsоft отказалась от включения Monad в операционную систему Windows Vista. Однако работа над Monad ни на секунду не прекращалась.

В конце декабря 2005 года вышла вторая бета-версия Monad в вариантах для х86 и х64 платформ. На этот раз оболочка требовала NET Framework 2.0. Также была заявлена причина отказа от интеграции новой командной оболочки и грядущей ОС: «Чтобы полностью разработать и внедрить ее, потребуется от трех до пяти лет», - заявил главный вице-президент Microsoft Bob Muglia на Tech Ed 2005.

В начале января 2006 года была выпущена Monad Shell Beta 3.

И, наконец, в начале мая 2006 года Microsoft анонсировала финальную версию Monad с официальным названием «Power Shell». Новая версия PowerShell 1.0 содержит около 130 встроенных утилит (так называемых cmdlets) для выполнения общих задач системного администрирования, таких как управление службами, процессами, журналами событий, сертификатами, реестром, и использования инструментария управления Windows (WMI).

Минимальными для Power Shell считаются операционные системы Windows XP Service Pack 2 Server 2003 SP1 и Windows Vista. Также необходимым условием является и установленный .NET Framework 2.0. Скачать Monad Power Shell можно по адресу http://support.microsoft.com/kb/926140/.

WWW

http://msdn.microsoft.com/scripting - Раздел на Microsoft, посвященный скриптовым языкам
http://forums.microsoft.com/TechNet-RU/ShowForum.aspx?ForumID=1234&SiteID=40 – Раздел, посвященный написанию сценариев на официальном форуме Microsoft
http://www.reskit.net/monad/ - Сайт, посвященный Power Shell
http://www.script-coding.info – Русскоязычный сайт
http://forum.sysadmins.ru/3/79925/ - Большая коллекция готовых скриптов
http://job57.narod.ru/wsh/ - Дополнительная информация по WSH
http://www.visualbasicscript.com/ - Англоязычный форум, посвященный VBScript
http://www.batchfiles.co.nr/ - Сетевой учебник по командным файлам
http://www.winscripter.com/
http://www.win32scripting.com/
http://www.activestate.com/ - Модули для WSH, поддерживающие языки Active Perl, Active Python, Active XSLT

Редакторы для WSH

Конечно, для создания простейших сценариев на WSH можно обойтись и стандартным Блокнотом. Однако когда число строк переваливает за пятый десяток, ориентироваться в коде становится, мягко говоря, не комфортно. Итак, встречаем:

Microsoft Script Debugger
Бесплатный отладчик от официального разработчика WSH

Vbsedit 3.3 (http://www.vbsedit.com)
Редактор, заточенный именно под VBScript-файлы для ОС Windows

PrimalScript (http://www.sapien.com)
Отличный инструмент для работы с Windows Script Host. Весит набор чуть больше 3 Мб, поддерживая при этом более 30 языков программирования. Для нас примечательно, что в свежей версии PrimalScript присутствует даже мастер построения WMI-сценариев! А раскрывающийся справа список в подсказке PrimalScript укажет тысячи и тысячи зарегистрированных в системе COM-объектов, с помощью которых возможности манипулирования расширяются до невероятных пределов.



Обсуждение статьи
Логин:
Пароль:
Регистрации на сервере не требуется. Если у вас есть форумный логин, вы можете использовать его.
Если нету, то вы можете зарегистрироваться на forum.itspecial.ru
Обсуждение этой статьи на forum.itspecial.ru
Для отправки сообщения введите код, указанный на картинке
Заголовок
Сообщение

Guest guest@gameland.ru Отправлено: 13.05.2010 4:41:09
RE: Отлажено до автоматизма: автоматизация Windows штатными средствами
What I Like About You nice site! replica watches implies the use of the highest quality materials that are carefully handcrafted by professionals omega watch known people wearing
Guest guest@gameland.ru Отправлено: 11.10.2010 4:17:32
RE: Отлажено до автоматизма: автоматизация Windows штатными средствами
cheap ghds
Cheap ghd straighteners
Pure Black GHD
Guest guest@gameland.ru Отправлено: 11.10.2010 4:22:05
RE: Отлажено до автоматизма: автоматизация Windows штатными средствами
Optical8 is a store specialised in fasionable glasses and cheap eyeglasses.Take some time in Optical8 and you'll find some ideal glasses in style and fashion. Enjoy your shopping!
kobe016 zhuang016@sohu.com Отправлено: 14.01.2011 5:11:30
RE: Отлажено до автоматизма: автоматизация Windows штатными средствами
[url=href="http://www.chaneloutlet2011.com]chanel outlet[/url]
[url=href="http://www.chaneloutlet2011.com]chanel bags[/url]
[url=href="http://www.chaneloutlet2011.com]cheap chanel bags[/url]
[url=href="http://www.chaneloutlet2011.com]chanel bags outlet[/url]
[url=href="http://www.chaneloutlet2011.com]Chanel handbag[/url]
[url=href="http://www.chaneloutlet2011.com]Chanel sunglasses[/url]
kobe016 zhuang016@sohu.com Отправлено: 14.01.2011 5:12:30
RE: Отлажено до автоматизма: автоматизация Windows штатными средствами
[url=href="http://www.chaneloutlet2011.com]chanel outlet[/url]
[url=href="http://www.chaneloutlet2011.com]chanel bags[/url]
[url=href="http://www.chaneloutlet2011.com]cheap chanel bags[/url]
[url=href="http://www.chaneloutlet2011.com]chanel bags outlet[/url]
[url=href="http://www.chaneloutlet2011.com]Chanel handbag[/url]
[url=href="http://www.chaneloutlet2011.com]Chanel sunglasses[/url]
kobe016 zhuang016@sohu.com Отправлено: 14.01.2011 5:12:38
RE: Отлажено до автоматизма: автоматизация Windows штатными средствами
[url=href="http://www.chaneloutlet2011.com]chanel outlet[/url]
[url=href="http://www.chaneloutlet2011.com]chanel bags[/url]
[url=href="http://www.chaneloutlet2011.com]cheap chanel bags[/url]
[url=href="http://www.chaneloutlet2011.com]chanel bags outlet[/url]
[url=href="http://www.chaneloutlet2011.com]Chanel handbag[/url]
[url=href="http://www.chaneloutlet2011.com]Chanel sunglasses[/url]
kobe016 zhuang016@sohu.com Отправлено: 14.01.2011 5:13:06
RE: Отлажено до автоматизма: автоматизация Windows штатными средствами
[url=href="http://www.chaneloutlet2011.com]chanel outlet[/url]
[url=href="http://www.chaneloutlet2011.com]chanel bags[/url]
[url=href="http://www.chaneloutlet2011.com]cheap chanel bags[/url]
[url=href="http://www.chaneloutlet2011.com]chanel bags outlet[/url]
[url=href="http://www.chaneloutlet2011.com]Chanel handbag[/url]
[url=href="http://www.chaneloutlet2011.com]Chanel sunglasses[/url]
Guest guest@gameland.ru Отправлено: 11.03.2011 16:14:54
RE: Отлажено до автоматизма: автоматизация Windows штатными средствами
Ссылки уже нерабочие! :(
Страницы: << 1 >>

Теги: Windows, администрирование, программирование


Keywords: zPOSTz zCODEz z10060z
Для Авторов: edit Lock delete Lock

Автор: Ярослав Трухачев
Дата: 26.01.2009 12:38:38©


Другие материалы номера
Технологии защиты сети: сегодня и завтра
Кто правит балом: лидеры рынка сетевой безопасности
Дизайн защищенной сети: внедрение систем безопасности в корпоративных сетях
Навесная или интегрированная защита: что лучше?
Контроль доступа в условиях неопределенности
Программная защита сети, аппаратная защита сети
Безопасная мобильность: 10 шагов к защищенной точке беспроводного доступа
Безопасный маршрут: 10 шагов к защищенному маршрутизатору
АнтиDoS: защита от DoS-атаки средствами маршрутизатора
Борьба с утечкой информации через USB/Ethernet-порты
Азбука IPS: самые современные технологии обнаружения и предотвращения атак
Экономика резервирования данных: дифференцированный подход к бэкапу корпоративной информации
Борьба с Ring0 троянами: оригинальный способ противодействия зловредному программному обеспечению на рабочих местах
Каркасы ACE
Методы удаленного управления сетью
Переносимый код как решение проблем современных ОС
Демократия или диктатура: чем чреват обязательный переход на IPv6
Интеграция в Web
Карты в руки: история пластиковых карт
Интернет-деньги: основа электронной коммерции?
Электронные деньги: принципы работы и примеры реализации
Интернет-банкинг в мире и в России: история, текущее положение дел и перспективы развития

В этом разделе
Введение в SOA. Часть 1. Проектирование информационных систем
Delphi и Oracle: разрабатываем утилиту для администрирования ORACLE
Языки, которые мы потеряли
IT-практикум: Delphi и AutoCAD. Организация связи двух популярных программных комплексов
Проблемы совместного доступа к данным в Oracle
Рубиновый кофе
Королевство Zend: Инструменты для профессионального php-разработчика
Отлажено до автоматизма: автоматизация Windows штатными средствами
Каркасы ACE
Программирование в ACE: обмен данными
Программирование в ACE: параллелизм
Разделяй и властвуй: совместная разработка кода
Быстрый и меткий: Fastreport как средство корпоративной отчетности


Хакер | GameLand | Мобильные компьютеры | Купи Камеру | Total Football | All Hockey | Onboarg Magazine | Хулиган | Sync
Total DVD | DVDxpert | Maxi Tuning | (game)land company | GamePost | Свой Бизнес


Rambler's Top100