Отлажено до автоматизма: автоматизация 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 следует помнить:
- Что русские буквы не шифруются.
- Кроме WSH-сценариев .vbs и .js, Script Encoder может шифровать
контейнеры .wsf, скрипты для web-страниц, а также серверные ASP-сценарии.
Более подробная информация содержится в справке к программе.
- Не стоит всецело полагаться на шифрование 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-объектов, с
помощью которых возможности манипулирования расширяются до невероятных пределов.
|
Обсуждение статьи
|
|
|
|
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 |
|
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! |
|
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] |
|
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] |
|
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] |
|
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] |
|
RE: Отлажено до автоматизма: автоматизация Windows штатными средствами Ссылки уже нерабочие! :( |
|
|
Keywords: zPOSTz zCODEz z10060z
Для Авторов: edit delete
Автор: Ярослав Трухачев Дата: 26.01.2009 12:38:38©
|