Сценарий windows что это

Обновлено: 07.07.2024

Следующим шагом в развитии средств и технологий автоматизации в операционной системе Windows стало появление сервера сценариев Windows Script Host (WSH). Этот инструмент разработан для всех версий Windows и позволяет непосредственно в операционной системе выполнять сценарии на полноценных языках сценариев (по умолчанию, VBScript и JScript), которые до этого были доступны только внутри HTML-страниц и работали в контексте безопасности веб-браузера (в силу этого подобные сценарии, например, могли не иметь доступа к файловой системе локального компьютера).

По сравнению с командными файлами интерпретатора cmd.exe сценарии WSH имеют несколько преимуществ.

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

Во-вторых, WSH поддерживает несколько собственных объектов, свойства и методы которых позволяют решать некоторые часто возникающие повседневные задачи администратора операционной системы: работа с сетевыми ресурсами, переменными среды, системным реестром, ярлыками и специальными папками Windows, запуск и управление работой других приложений.

В-третьих, из сценариев WSH можно обращаться к службам любых приложений-серверов автоматизации (например, программ из пакета Microsoft Office), которые регистрируют в операционной системе свои объекты.

Наконец, сценарии WSH позволяют работать с объектами информационной модели Windows Management Instrumentation (WMI), обеспечивающей программный интерфейс управления всеми компонентами операционной модели, а также с объектами службы каталогов Active Directory Service Interface (ADSI) (объектные модели WMI и ADSI будут обсуждаться подробнее в следующих лекциях).

Следует также отметить, что технология WSH поддерживается в Windows уже довольно давно, в Интернете (в том числе на сайте Microsoft) можно найти множество готовых сценариев, выполняющих ту или иную операцию и при определенных навыках и знаниях быстро "подогнать" эти сценарии под свои конкретные задачи.

Поговорим теперь о слабых местах WSH. Прежде всего, сам по себе WSH – это только среда выполнения сценариев, а не оболочка; WSH не интегрирован с командной строкой, то есть отсутствует режим, в котором можно было вводить команды с клавиатуры и сразу видеть результат их выполнения.

Большим минусом является то, что в операционной системе по умолчанию нет полноценной подробной справочной информации по объектам WSH и языкам VBScript/JScript (документацию приходится искать в Интернете на сайте Microsoft). Другими словами, если вы, например, не помните синтаксис определенной команды VBScript/JScript или точное название свойства объекта WSH, под рукой у вас нет распечатанной документации, а компьютер не имеет выхода в Интернет, то написать корректный сценарий вам просто не удастся (в данном аспекте командные файлы более универсальны, так как практически у всех команд есть по крайней мере встроенное описание используемых ими ключей, а в операционной системе имеется справочный файл с информацией о всех стандартных командах).

Наконец, сценарии WSH представляют собой довольно серьезную потенциальную угрозу с точки зрения безопасности, известно большое количество вирусов, использующих WSH для выполнения деструктивных действий.

Таким образом, можно дать следующую общую оценку: сценарии WSH – это универсальный инструмент, который в любой версии операционной системы Windows позволяет решать задачи автоматизации практически любой степени сложности, но требует при этом большой работы по изучению самих языков сценариев и ряда смежных технологий управления операционной системой (WMI, ADSI и т.п.).

Командная оболочка Microsoft PowerShell

Итак, к началу XXI века ситуацию со средствами автоматизации работы в Windows нельзя было назвать совсем хорошей. С одной стороны функциональности и гибкости языка оболочки cmd.exe было явно недостаточно, а с другой стороны сценарии WSH, работающие с объектными моделями ADSI и WMI, оказались слишком сложными для пользователей среднего уровня и начинающих администраторов.

Перед разработчиками новой оболочки, получившей название Windows PowerShell (предварительное название – Monad ), стояли следующие основные цели и задачи, которые были успешно решены:

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

Кроме того, разработчики старались собрать в PowerShell все лучшие аспекты других оболочек командной строки из разных операционных систем. По их словам, сильное влияние на PowerShell оказали следующие продукты:

  • BASH, KSH (конвейеризация или композиция команд);
  • AS400/VMS (стандартные названия команд, ускоряющие изучение);
  • TCL/WSH (поддержка встраиваемости и нескольких языков);
  • PERL, PYTHON (выразительность и стиль).

Отметим, что PowerShell одновременно является и оболочкой командной строки (пользователь работает в интерактивном режиме) и средой выполнения сценариев, которые пишутся на специальном языке PowerShell.

Интерактивный сеанс в PowerShell похож на работу в оболочке Unix-систем: все команды в PowerShell имеют подробную встроенную справку (для большинства команд приводятся примеры их использования), поддерживается функция автоматического завершения названий команд и их параметров при вводе с клавиатуры, для многих команд имеются псевдонимы, аналогичные названиям Unix-утилит (ls, pwd, tee и т.д.).

Язык PowerShell несложен для изучения, писать на нем сценарии, обращающиеся к внешним объектам, проще, чем на VBScript или JScript. Отдельное внимание было уделено вопросам безопасности при работе со сценариями (например, запустить сценарий можно только с указанием полного пути к нему, а по умолчанию запуск сценариев PowerShell в системе вообще запрещен).

В этой статье я хотела бы пояснить, когда следует использовать механизмы сценариев, рассказать о некоторых базовых концепциях их составления, а также дать ряд практических советов (см. врезку "Советы по составлению сценариев" ). Кроме того, я представлю код на VBScript, с помощью которого решается некая общая задача, и прокомментирую его. Выбор пал на VBScript, поскольку Windows поддерживает этот язык. Windows поддерживает и JScript, но в предыдущих номерах журнала, как правило, использовался VBScript, так что есть смысл сохранять преемственность.

Почему именно сценарии?

Программирование сценария занимает больше времени, чем однократное выполнение задачи вручную, - даже если за дело берется опытный специалист по программированию на VBScript, который знает проблему досконально. Если же вы не профессионал, то написание и отладка сценария займет куда больше времени, чем использование графического интерфейса. Так зачем же тогда привлекать сценарий?

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

Если с помощью GUI решить задачу непросто, то, может быть, стоит обратиться к утилитам командной строки, которые поставляются вместе с операционной системой или в составе Resource Kit? Желательно использовать данные утилиты всегда, когда в этом есть смысл. Но в Windows 2000 набор программ с графическим интерфейсом не соответствует в точности набору утилит командной строки, и некоторые утилиты могут не удовлетворять в полном объеме решаемой задаче. Пакетные файлы не всегда хорошо справляются с ситуацией, когда входной поток данных должен быть изменен. Кроме того, утилиты командной строки и сценарии не являются взаимоисключающими методами. Можно написать сценарии, основанные на применении утилит командной строки и при этом свободные от недостатков последних.

Scripting Host

Прежде чем перейти к созданию сценария, поясню некоторые термины. Зная, что скрывается за словами scripting host, легче понять, как это может повлиять на проект сценария, допустимо ли будет использовать в сценарии выражения и т. п.

Windows поддерживает две машины сценариев: Microsoft Internet Explorer (IE) и Windows Script Host (WSH). Выбор той или иной машины влияет на используемые в сценарии возможности. Если применяется WSH, как чаще всего и бывает, то в сценарии могут использоваться объекты WSH, но не IE, и наоборот. Машина сценария не обязана понимать содержание всех мыслимых сценариев; воспринимается только сценарий, написанный на языке машины, и тот, который ею поддерживается. Для WSH и IE "понятными" являются языки VBScript и JScript.

Элементы сценария

Каждая строка сценария - это оператор, который сообщает компьютеру, что следует сделать. Исполняемые операторы обычно имеют форму типа "действие-объект": описываются само действие и тот объект, над которым действие совершается. Сценарий может содержать условия, при наличии которых указанные операторы должны быть выполнены. Хост сценария интерпретирует строки кода слева направо и сверху вниз, так что можно, например, получив некоторые данные в строке 10, использовать их в 30-й строке. Исключение составляют процедуры. Процедуры (функции и подпрограммы) - это набор операторов, которые выполняются только при явном обращении к ним. В данном случае процедура сразу же начинает выполняться независимо от того, из какого места кода было обращение.

Исполняемые части сценария называются операторами. Неисполняемая часть сценария называется комментарием и должна предваряться апострофом (') или ключевым словом Rem. Например:

Комментарий может занимать всю строчку целиком или быть частью строки, содержащей исполняемый код. Сценарий следует документировать, чтобы не участвующий в его написании человек (или даже незнакомый с лексикой его языка) смог легко понять, для чего сценарий предназначен. Иногда в целях отладки программы в начале исполняемой строки ставят признак комментария.

VBScript рассматривает перечисленные четыре типа данных как подмножество другого типа данных - variant, который может содержать данные любого вида. Таким образом, VBScript можно не сообщать, с данными какого типа вы работаете, но нужно иметь в виду, что некоторые задачи выполняются в Visual Basic (VB) и VBScript с описанными типами данных по-разному (правда, подобная ситуация может никогда и не встретиться). Группы однотипных данных называются массивами (array).

Для простоты работы с данными VBScript поддерживает еще два типа данных, не имеющих никакого начального значения (null-данные), которые можно присваивать переменным (variable) и константам (constant) сценария. Значения переменных в ходе выполнения программы могут меняться, но их имена при этом остаются прежними. Константы при выполнении сценария имеют только одно значение и изменяться не могут.

Передать данные в сценарий можно двумя способами. Во-первых, их в явном виде прописывают в теле программы. Например, ""\\bigserver\sharedfolder"" - обычное использование в сценарии строковых данных для обозначения пути. Другой способ - передать нужные данные во входном потоке в сценарий. Кроме того, по ходу обработки сценарий может самостоятельно генерировать данные (например, вычислить дату двумя неделями позднее текущей), а затем использовать их.

Манипулировать данными можно с помощью операторов (operator) - символов, которые обычно применяются для обозначения математических функций. Какие-то операторы имеют более высокий приоритет, какие-то - более низкий, и это влияет на порядок вычисления выражений (expression). Выражение есть некоторое вычисление, в которое могут быть включены числа, переменные, строки, константы. В выражениях могут использоваться операторы. Например, выражение dInputDate + 2 = dNewDate означает, что к значению переменной dInputDate добавляется 2, и результат вычисления вновь присваивается переменной dNewDate.

Функции и подпрограммы

VBScript имеет набор встроенных функций, которые позволяют выполнять некоторые операции без подробного описания решаемой задачи. С помощью встроенных функций можно манипулировать числами, строками, значениями даты и времени, массивами. В состав VBScript также входят функции преобразования данных одного типа в другой. Например, VBScript обычно исходит из того, что число, допустим, 45, имеет тип "число", но при необходимости его можно рассматривать как данные строкового типа.

VBScript предусматривает создание собственных функций пользователя (user-defined function, UDF) для выполнения каких-то специфических задач. Например:

Пользовательская функция TestFunct работает со встроенной функцией Sqr для извлечения квадратного корня из 9 и добавления к полученному результату 2. UDF, как и встроенная функция, может использовать аргументы.

TestFunct UDF возвращает результат в основное тело программы. Подпрограмма выполняет некоторые действия, но ничего не возвращает в основной код в качестве результата. Программист может задействовать подпрограмму несколько раз, при необходимости использовать один и тот же участок кода, а повторно писать одно и то же лень. Подпрограмма

Объекты в сценарии

Объект (Object) представляет собой физическую или логическую часть вычислительной среды, например дисковод или имя учетной записи. Конечно, можно программировать, не прибегая к объектам, но большинство сценариев управления работает с объектами. Если используется WSH, VBScript может обращаться к объектам, изначально присущим WSH, например, представляющим файлы, каталоги, части реестра; VBScript также поддерживает объекты Windows Management Instrumentation (WMI) и Active Directory Service Interfaces (ADSI). Объекты WMI связаны с физическими и логическими частями вычислительной системы: например, адресами IP, файловыми системами, сетевыми адаптерами. ADSI-объекты представляют ресурсы службы каталогов: в частности, Active Directory (AD) или иные поддерживаемые каталоги, скажем Windows NT 4.0 SAM. Статические группы объектов одинаковой природы называются классами, а группы, описываемые пользователем, - библиотеками.

Объекты имеют свойства и методы. Объект определяется его свойствами (т. е. IP Address - это свойство объекта Network Card, а 12.4.21.197 - значение данного свойства). Методы - это действия, которые могут выполняться над объектом (Copy - один из методов объекта File). Не все объекты имеют методы. Свойства и методы используются при написании кода одинаково: сначала следует объект, затем ставится точка, далее название метода или свойства (например, ObjectName.PropertyName). Объекты могут содержать другие объекты. В частности, объект WSH WScript включает подчиненный объект WshArguments, который является набором аргументов, передаваемых при вызове файлу-сценарию. Для выделения первого элемента строки аргументов используется WScript.Arguments(0). Как было видно при обсуждении объектов WSH, формальное имя подчиненных объектов не совпадает с именем, используемым при обращении к ним в сценарии.

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

Советы по составлению сценариев

В следующей статье будут приведены более конкретные советы по программированию на VBScript, а сейчас ограничимся общими правилами, которых нужно придерживаться всегда:

либо установить среду командной строки в виде среды по умолчанию:

В сценариях часто используются кавычки, и, если текстовый процессор так или иначе преобразует их, сценарий просто не будет работать.

Распространенные сценарии использования

К общим сценариям установки относятся выполнение чистых установок, обновлений и автоматической установки.

Выборочные установки

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

запустите Setup.exe с DVD-диска продукта Windows или из общей сетевой папки.

Выберите тип установки " Выборочная установка".

при установке из предыдущей установки Windows программа установки Windows создает локальный каталог загрузки и копирует все необходимые программа установки Windows файлы в этот каталог.

Windows программа установки перезагружает, устанавливает и настраивает компоненты Windows и после завершения установки запускает Windows добро пожаловать.

При выборочной установке не переносятся параметры и настройки из ранее установленных версий Windows. файлы из предыдущих версий Windows копируются в \ каталог Windows. old. все данные установки Windows, включая пользователей, файлы программ и каталоги Windows, сохраняются в этом каталоге.

Обновления

Windows Программа установки также может выполнять обновления из поддерживаемой операционной системы.

Этот сценарий включает следующие этапы.

Запустите Setup.exe в предыдущей версии Windows.

Выберите тип установки обновления . Windows Программа установки обновляет систему и защищает файлы, параметры и настройки в процессе установки.

Windows Программа установки перезагружает и восстанавливает защищенные файлы, параметры и настройки. Windows затем программа установки запустит Windows добро пожаловать.

Примечания

  • Обновления используются для обновления отдельного компьютера до Windows 10.
  • Обновления поддерживают перенос данных пользователей в новую систему.
  • обновления поддерживают следующие настройки образа Windows. это не относится к изменениям в политике поддержки программа установки Windows, а в этом уточнении:
    • Применение накопительного обновления (качества)
    • Применение обновлений к стеку обслуживания, необходимым для завершения обновления компонентов (Дополнительные сведения см. в разделе Обслуживание обновлений стека ).
    • Применение обновлений к Setup.exeным двоичным файлам или другими файлами, которые программа установки использует для обновления компонентов
    • применение обновления для "защищенной операционной системы" (сафеос), используемой для среды восстановления Windows
    • Добавление или удаление языков
    • Добавление или удаление компонентов по запросу

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

    Автоматические установки

    автоматическая установка позволяет настроить Windows установку и устранить необходимость взаимодействия пользователя с программа установки Windows. с помощью Windows диспетчер образов систем (Windows SIM) или интерфейсов api интерфейса платформы (CPI) можно создать одну или несколько настраиваемых Windows установок, которые затем можно будет развернуть во множестве различных конфигураций оборудования.

    Автоматическая установка, также называемая автоматической установкой, включает в себя следующие этапы.

    Windows Рекомендации по настройке

    в следующем разделе описаны некоторые рекомендации по использованию с программа установки Windows.

    убедитесь в наличии достаточного места для программа установки Windows временных файлов. при запуске программы установки из предыдущей версии Windows убедитесь, что на диске достаточно места для временных файлов программа установки Windows. Требуемое пространство может быть различным, но оно может иметь размер до 500 мегабайт (МБ).

    предыдущие Windowsные установки перемещаются в папку Windows. old. Рекомендуется создавать резервные копии данных перед обновлением. при установке Windows в ходе предыдущей установки Windows все предыдущие Windows файлы и каталоги перемещаются в папку Windows. old, включая содержимое каталогов users, Program files и Windows. после завершения программа установки Windows можно получить доступ к данным в папке Windows. old. если у вас есть дополнительные папки, не находящиеся в папке users, Program files или Windows, эти папки не будут перемещены. например, если у вас есть папка с именем C: \ drivers, эта папка не будет перемещена в папку Windows. old.

    проверьте файлы журнала программа установки Windows. при возникновении проблем во время программа установки Windows проверьте файлы журнала в файле% WINDIR% \ пансер. Вы сможете определить и устранить многие проблемы, просмотрев файлы журнала установки. дополнительные сведения см. в разделе устранение неполадок развертывания и файлы журналов , программа установки Windows файлы журналов и журналы событий.

    Windows Ограничения программы установки

    в следующих разделах описаны некоторые ограничения программа установки Windows. ознакомьтесь с этим разделом перед запуском программа установки Windows.

    Включите режим совместимости с UEFI для установки на компьютер на основе UEFI. на некоторых компьютерах UEFI нельзя устанавливать Windows в режиме совместимости с BIOS. Может потребоваться переключиться в режим совместимости с UEFI.

    Приложениям может требоваться соответствующая буква диска. если вы устанавливаете пользовательские приложения в образ Windows, установите Windows на ту же букву диска на конечном компьютере, так как для некоторых приложений требуется соответствующая буква диска. Сценарии удаления, обслуживания и восстановления могут работать ненадлежащим образом, если буква диска системы не совпадает с буквой диска, указанной в приложении. это ограничение распространяется на средства обслуживания образов развертывания и управления ими (DISM) и программа установки Windows.

    Развертывание нескольких образов в нескольких секциях. Если вы собираете и развертываете несколько образов в нескольких разделах, необходимо выполнить следующие требования.

    Структура разделов, расположение шины и количество дисков должны быть идентичны на эталонном и конечном компьютерах.

    Типы секций (первичный, расширенный или логический) должны совпадать. Активный раздел на эталонном компьютере должен соответствовать целевому компьютеру.

    Для установки пользовательских файлов WIM требуется значение Description в WIM-файле. при создании пользовательского wim-файла программа установки Windows требует, чтобы всегда включалось значение описания. Если WIM-файл не содержит значение описания, образ может устанавливаться неправильно. При использовании команды DISM с параметром /каптуре-имаже можно указать значение описания. Если вы устанавливаете WIM-файл, который не имеет значения Description, повторно запишите образ и укажите допустимое значение описания. Дополнительные сведения см. в разделе DISM — технический справочник по обслуживанию образов развертывания и управления для Windows.

    Примечание
    для среда предустановки Windows (Windows PE) версия загрузочных файлов должна соответствовать архитектуре компьютера. компьютер UEFI x64 можно загрузить только с помощью загрузочных файлов Windows PE x64. компьютер x86 можно загрузить только с помощью файлов загрузки Windows PE x86. Это отличается от устаревших версий BIOS. В устаревшей версии BIOS компьютер x64 может загружаться с помощью загрузочных файлов x86.


    Основы пакетного сценария

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

    Есть много команд, которые вы можете использовать в своих пакетных сценариях для различных целей, однако некоторые основные команды перечислены ниже:

    Примечание. Имя файла должно отличаться от системных файлов по умолчанию, чтобы оно не конфликтовало между собой и не создавало беспорядка. Вы также можете использовать расширение «.cmd», более ранние версии Windows не будут его запускать.

    Написание простых пакетных скриптов

    Пользователи могут попробовать простой пакетный скрипт, чтобы понять команды и работать над ними. Как и в других языках программирования, вы печатаете текст, чтобы понять метод печати; здесь мы будем печатать строку с помощью команды ECHO. Выполните следующие шаги, чтобы создать свой первый пакетный скрипт:


    1. Удерживая клавишу Windows, нажмите S, чтобы открыть функцию поиска. Теперь введите «Блокнот» и нажмите Enter, чтобы открыть блокнот.Открытие блокнота через функцию поиска
    2. Следуя приведенным выше основным командам, вы можете написать простой пакетный скрипт, как показано ниже: @ECHO OFF

    :: Это комментарий, который вы можете написать в пакетном скрипте.

    ECHO Hello Appuals Пользователи, это простой пакетный скрипт.

    Написание разных пакетных сценариев для разных целей

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

    1. Копирование / перемещение файлов с помощью пакетного скрипта

    Пакетный скрипт для копирования файлов из источника в место назначения. Этот пример можно использовать для копирования или перемещения фотографий с SD-карты телефона или камеры в системную папку. Этот пакетный файл можно использовать, если вы в основном используете один и тот же источник (USB / SD-карта) для перемещения файлов. Пользователям не нужно выбирать новые файлы на USB каждый раз, когда они хотят переместить / скопировать их на ПК. Определив исходное и целевое местоположение, вы можете копировать / перемещать файлы, просто щелкнув этот пакетный скрипт.

    Примечание. Вы также можете переместить файлы, изменив ‘xcopy‘ на ‘move‘ в приведенном выше коде.

    2. Изменение расширения файлов в папке

    Вы также можете создать командный файл для изменения расширения всех файлов в папке. Расширения могут быть изменены на аналогичный формат файла, например JPG на PNG, или это может полностью изменить работу файла. Если в текстовом файле есть код для пакетного сценария, пользователь может изменить расширение файла с .txt на .bat, как показано ниже:

      Сделайте текстовый файл и откройте его в блокноте. Напишите следующий код, как показано ниже: @ECHO OFF

    3. Проверка Ping для двух разных сайтов с помощью однострочной команды в пакетном скрипте

    Это пример использования нескольких команд для командной строки через пакетный скрипт. Это зависит от потребностей пользователя и его личных предпочтений. Есть несколько полезных команд, которые можно использовать одну за другой для достижения определенной цели. Ниже у нас есть код для проверки пинга двух разных URL:

      Создав новый текстовый файл, напишите в нем следующий код: @ECHO OFF

    НАЗВАНИЕ ПРОВЕРКИ НАЗВАНИЯ

    Примечание. Вы можете добавить любой URL-адрес, для которого вы хотите проверить ping.

    Пользователи могут делать гораздо больше с пакетными сценариями, следуя правилам пакетных сценариев.

    Читайте также: