PDA

Просмотр полной версии : [Обзор] технологий скриптинга в Windows.


xcedz
16.11.2008, 03:53
Обзор технологий скриптинга в Windows.
[Интро]
Многие используют для автоматизации рутинных задач командные файлами интерпретатора cmd.exe.
Оболочка командной строки cmd.exe и командные файлы хоть и являются
наиболее универсальными и простыми в изучении средствами автоматизации работы в Windows, доступные во всех версиях операционной системы,
однако, существенно проигрывают аналогичным инструментам в Unix-системах и не обеспечивают доступ к объектным моделям,
поддерживаемым операционной системой (COM, WMI, .NET).

[Обзор]
Основное назначение административных сценариев — автоматизация часто повторяющихся задач.
Если администратор сталкивается с задачей, которую нужно выполнить более одного раза или
же регулярно, как раз имеет смысл доверить ее решение сценарию.

Рассмотрим такие средства автоматизации как:
-Windows Script Host (WSH)
-Microsoft PowerShell

Windows Script Host (WSH)— компонент Microsoft Windows, предназначенный для запуска сценариев
на скриптовых языках JScript и VBScript, а также и на других дополнительно устанавливаемых языках (например, Perl).

Оснобенности:
1. начиная с Windows 98 WSH стал частью всех ОС Windows;
2. По умолчанию используются VBScript и JScript – это полноценные алгоритмические языки, имеющие встроенные функции и
методы для обработки символьных строк, выполнения математических операций, обработки исключительных ситуаций и т.д.;
кроме того, для написания сценариев WSH может использоваться любой другой язык сценариев
(например, широко распространенный в Unix-системах Perl), для которого установлен соответствующий модуль поддержки.
3. WSH поддерживает несколько собственных объектов, свойства и методы которых позволяют решать некоторые
часто возникающие повседневные задачи администратора операционной системы: работа с сетевыми ресурсами,
переменными среды, системным реестром, ярлыками и специальными папками Windows, запуск и управление работой других приложений.
4. Из сценариев WSH можно обращаться к службам любых приложений-серверов автоматизации
(например, программ из пакета Microsoft Office), которые регистрируют в операционной системе свои объекты.
5. Сценарии WSH позволяют работать с объектами информационной модели Windows Management Instrumentation (WMI),
обеспечивающей программный интерфейс управления всеми компонентами операционной модели, а также с объектами
службы каталогов Active Directory Service Interface (ADSI).

Так как данная технология используется давно, то можно найти множество готовых сценариев, выполняющих ту или иную операцию и
при определенных навыках и знаниях быстро "подогнать" эти сценарии под свои конкретные задачи.
Как отмечено выше, в WSH поддерживает Visual Basic Scripting Edition или JScript по умолчанию.

Что использовать?
Принципиальной разницы нет - в любом случае основные возможности доступны через объектные модели, а они доступны из обоих языков;
В JScript удобнее реализована обработка ошибок, а в VBScript - проверка значений;
Если есть опыт работы с JavaScript, C++, Java и другими C-образными языками, выбирайте JScript;
Если есть опыт работы с VBasic или вообще нет опыта работы, выбирайте VBScript.
При использовании XML в одном скрипте можно смешивать несколько языков одновременно.
Таким образом, можно дать следующую общую оценку: сценарии WSH – это универсальный инструмент,
который в любой версии операционной системы Windows позволяет решать задачи автоматизации
практически любой степени сложности, но требует при этом большой работы по изучению
самих языков сценариев и ряда смежных технологий управления операционной системой (WMI, ADSI и т.п.).

Небольшой пример использования c использованием VBS:
Выведем в информационное окно сведения об имени пользователя, имени компьютера и домене:
Отрываем блокнот и пишем сценарий:

Set WshNetwork = CreateObject("WScript.Network")
info = "Имя пользователя: " & WshNetwork.UserName
info = info & Chr(10)
info = info & "Имя компьютера: " & WshNetwork.ComputerName
info = info & Chr(10)
info = info & "Домен: " & WshNetwork.UserDomain
WScript.Echo info

сохраняем файл с расширением *.vbs и запускаем.

Обсуждение, примеры скриптов, ссылки:
https://forum.antichat.ru/showthread.php?p=945531#post945531

Командная оболочка Microsoft PowerShell
Прежнее название — Monad — один из инструментов управления Windows Server, выпущенных Microsoft с момента появления VBScript.
PowerShell — среда разработки сценариев для Windows с командной оболочкой и языком сценариев.
На данный момент многие администраторы знакомы с оболочкой Windows PowerShell.

Многие загружали ее, экспериментировали с ней и решали нестандартные задачи, которые иногда выполняют в командной оболочке Windows через cmd.exe. Однако PowerShell — нечто гораздо большее, чем просто DOS-подобная командная оболочка. Это среда для работы с командной строкой и выполнения сценариев, построенная на основе Microsoft .NET Common Language Runtime (CLR) и .NET Framework.

В среде PowerShell вы работаете с объектами .NET. Структуры папок, которые вы видите, или службы, к которым обращаетесь, в сущности, являются экземплярами объектов, которые представляют эти папки и службы; в этом и состоит отличие рассматриваемого продукта от других командных оболочек, которые способны только обрабатывать тексты. Таким образом, PowerShell по своей мощности и эффективности намного превосходит традиционные командные оболочки.

Начиная с версии Windows Server 2008 Beta 3 - Windows PowerShell входит в стадартную поставку. Ссылки на ресурсы, где можно загрузить PowerShell, а также сведения об этой оболочке доступны на Web-странице Windows PowerShell (www.microsoft.com/powershell ). Перед загрузкой PowerShell необходимо установить на своей системе среду .NET Framework 2.0. Процесс установки PowerShell не занимает много времени и не представляет трудностей. Нужно только позаботиться о том, чтобы устанавливаемая версия PowerShell была совместима с используемой операционной системой. Microsoft выпускает версии для Windows Server 2008 beta 3, Windows Vista, Windows XP SP2 и Windows Server 2003.
В оболочку PowerShell встроено свыше 100 команд. Можно создавать дополнительные команды, но при этом следует пользоваться языком стандарта .NET, таким как Visual Basic .NET или C#.

Каждый вариант команды представляет собой комбинацию «глагол-существительное»;
объясняется это тем, что специалисты Microsoft хотели использовать единообразную схему именования и тем самым облегчить изучение, а также расширение оболочки PowerShell.
"Глагол" указывает на действие, которое предстоит совершить, а "существительное" — на тип объекта, на который будет направлено действие. К примеру, команда Get-ChildItem считывает список элементов текущего рабочего каталога или контейнера, например реестра. Для выполнения команды нужно ввести ее в командной строке PowerShell и нажать клавишу ввода. Результаты отображаются под командной строкой. Вот и все, что требуется знать о выполнении элементарных команд.

Основные особенности оболочки Windows PowerShell

•Более 130 средств с интерфейсом командной строки (так называемые командлеты) для выполнения стандартных задач по администрированию системы (например, управление реестром, службами, процессами, журналами событий, сертификатами и WMI).
• Язык разработки сценариев, применение которого ускоряет автоматизацию групповых и повторяющихся задач администрирования за счет интеграции с оболочкой и ориентированного на выполнение задач интерфейса.
• Поддержка существующих сценариев, средств с интерфейсом командной строки и нескольких операционных систем, включая Windows Server 2008.
• Команды, названные в соответствии с общепринятыми принципами образования имен и работающие с использованием небольшого набора интуитивно понятных параметров (-sort, -where, -filter, -list), для обеспечения единообразия и повышения эффективности.
• Стандартные, унифицированные служебные программы для работы со всеми без исключения технологиями доступа к данным Windows, включая данные Active Directory (ADSI), инструментарий управления Windows (WMI), объекты Component Object Model (COM) и ActiveX Data Objects (ADO), данные HTML и XML.
• Упрощенное перемещение по операционной системе (реестр, хранилище сертификатов и другие данные) с помощью команд навигации по файловой системе.
• Новые функции ведения журналов и обработки ошибок позволяют отслеживать выполнение сценариев и корректно обрабатывать ошибки.
• Простой доступ к объектам и данным администрирования системы, возможность передавать объекты между средствами с интерфейсом командной строки.
• Расширяемый интерфейс, используя который независимые поставщики ПО и корпоративные разработчики могут быстро создавать специальные средства и программы для администрирования приложений, выполняющихся на компьютере Windows Server 2008.
Из минусов хотелось бы отметить что PowerShell стартует не совсем шустро плюс ко всему желательно иметь побольше оперативной памяти.
Если кому интересно, можете почитать по этой проблеме не большую заметку на http://xaegr.wordpress.com/2008/10/22/powershell-startup/
также много чего полезного можно будет почерпнуть на данном блоге.

Итог.
Язык PowerShell несложен для изучения, писать на нем сценарии, обращающиеся к внешним объектам, проще, чем на
VBScript или JScript. Так же Отдельное внимание было уделено вопросам безопасности при работе со сценариями
(например, запустить сценарий можно только с указанием полного пути к нему, а по умолчанию запуск сценариев
PowerShell в системе вообще запрещен).
Windows Powershell – это очень мощная утилита. Администраторам, которые любят работать в командной строке
думаю придется по душе Powershell для создания более коротких сценариев, с помощью которых можно будет выполнять более сложные задачи.
Обсуждение командной оболочки:
https://forum.antichat.ru/thread76791.html

[Заключение]
===
Вот мы и познакомились в кратце с технологиями скриптинга в Windows.
==
В обзоре используются материалы из следующих источников (все права принадлежат их владельцам :) ):
http://www.osp.ru/win2000/2006/08/3829313/
http://www.winsov.ru/net17.php
http://script-coding.info/
http://systemnews.com.ru/?mod=art&part=winall&id=013
http://www.askit.ru/custom/progr_admin/m01/01_wsh_introduction.htm
http://www.intuit.ru/department/os/compromtwin/1/
Еще ссылки по теме
-http://www.samag.ru/cgi-bin/go.pl?q=articles;n=11.2007;a=01
-http://www.osp.ru/win2000/2008/03/5042233/
PowerShell И документация.
1. Дистрибутив .NET Framework 2.0 – http://www.microsoft.com/downloads/details.aspx?FamilyID=0856eacb-4362-4b0d-8edd-aab15c5e04f5&displaylang=en.
2. Информация и дистрибутив PowerShell – http://support.microsoft.com/kb/926140.
3. Статьи по PowerShell – http://www.script-coding.info.
4. Репозиторий сценариев PowerShell от Microsoft – http://www.microsoft.com/technet/scriptcenter/scripts/msh/default.mspx.
5. Бесплатная электронная книга про PowerShell – http://blogs.msdn.com/powershell/archive/2007/05/11/free-powershell-book.aspx.
6. Руководство по конвертированию унаследованных скриптов VBScript в скрипты PowerShell – https://www.microsoft.com/downloads/details.aspx?FamilyId=264CE487-1D36-4466-BD8B-23A7F1FA967E&displaylang=en.
7. Windows PowerShell 1.0 Documentation Pack – http://www.microsoft.com/downloads/details.aspx?familyid=B4720B00-9A66-430F-BD56-EC48BFCA154F&displaylang=en.


Продолжение обзора следует...

Dimi4
17.11.2008, 22:30
(: Я начал именно с этого. Кстате имееться сборник Vbscript. Кому надо могу выложить.

xcedz
17.11.2008, 22:43
(: Я начал именно с этого. Кстате имееться сборник Vbscript. Кому надо могу выложить.
Выкладывай в темку
https://forum.antichat.ru/thread92010.html. думаю пригодится :)

Dimi4
17.11.2008, 23:29
Вот для псевдо-компиляции VBS пригодиться: http://rs7.rapidshare.com/files/13832143/ExeScript.3.0.0.Incl.Cracked-PCL.zip (крякнутый, без троя, еле нашол.)

П.С. Текст бы лучше сделал дефолтным цветом, и чуть розборчивее оформить.

lisa99
23.12.2008, 16:33
(: Я начал именно с этого. Кстате имееться сборник Vbscript. Кому надо могу выложить.
так где же он??
где?))
мне надо срочно
Мне горит))
эт серьезно...
=============
а вот где.
http://forum.antichat.ru/thread82273.html