Execute Scripts | Статья

Введение

В данной статье рассматриваются вопросы загрузки и выполнения скриптов (скриптовых программ), написанных на языках Microsoft Windows Shell, Microsoft Powershell и Windows Shell Scripts, для операционных систем на основе Windows. ВАЖНО!!! Хотя большинство скриптовых программ безусловно полезны, они имеют двойное назначение (то есть могут принести как пользу, так и вред). Именно поэтому загрузка из Интернета и запуск этих программ блокируются антивирусными средствами и фильтром Microsoft SmartScreen! Об обходе этих ограничений также будет рассказано ниже.

В данной статье будет в основном рассказано о технологии Microsoft Windows Smartscreen. Более подробно об этой технологии можно прочитать на сайте компании.

Как «на глаз» определить скриптовую программу в Microsoft Windows?

Не смотря на то, что от версии к версии Microsoft Windows системные значки меняются, есть простой способ отличить скриптовую программу от скомпилированной программы Microsoft Windows. У скомпилированной Двоичной программы Microsoft Windows может быть абсолютно любая иконка приложения, а расширение файла (часть имени после последней точки) — exe или scr. В контекстном меню такой программы, как правило, отсутствует пункт «Изменить».

В отличие от этих программ скрипты Microsoft Windows имеют следующие расширения:

  1. Microsoft Windows Powershell — *.ps1
  2. Microsoft Windows Command Shell — *.bat или *.cmd
  3. Windows Shell Scripts — *.js, *.vbs, *.wsf, *.wsh
  4. Кроме того, существуют внешние пакетные оболочки, которые здесь не рассматриваются. Это AutoHotkey (расширение *.ahk) и AutoIt (расширение *.au3).

Ниже представлен примерный вид контекстного меню скриптов (вернее, его верхней части).

Контекстное меню скрипта powershell

Контекстное меню скрипта powershell.

Контекстное меню скрипта Windows Command Shell

Контекстное меню скрипта Windows command shell.

Контекстное меню скрипта Windows Script Shell

Контекстное меню скрипта Windows Script Shell.

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

Инструкция по загрузке скриптов

Загрузка скриптов с сайтов NIT

Загрузка скриптов с сайта NIT максимально упрощена. Необходимо:

  1. Щёлкнуть левой клавишей мыши на файле download.html.
  2. Щёлкнуть левой клавишей мыши на ссылке с нужным файлом.
  3. Возможно, потребуется указать место сохранения файла. По-умолчанию все файлы сохраняются в папке «Загрузки» текущего пользователя.
  4. Дождитесь загрузки файлов.
  5. Часто на такие файлы срабатывает фильтр SmartScreen, предупреждая пользователей о небезопасном содержимом файле. Часто это является формальностью. Необходимо в загрузках, справа от файла, открыть ссылки «Подробнее...», «Сохранить», «Сохранить в любом случае».
  6. Бинго! Можете запускать файл.

Загрузка скрипта по ссылке

Этот алгоритм подходит для загрузки файлов скриптов по ссылке с любого сайта. Он аналогичен предыдущему.

  1. Щёлкните правой клавишей мыши по файлу со ссылкой на скрипт.
  2. В контекстном меню выберите пункт «Сохранить объект» или «Сохранить гиперссылку».
  3. В открывшемся окне выберите место сохранения скрипта. По умолчанию это место сохранения последнего файла или папка «Загрузки».
  4. Выбрав папку, нажмите кнопку «Ok» в диалоговом окне.
  5. Повторите пункты 4.-6. предыдущего алгоритма.

Инструкция по запуску скрипта Powershell, загруженного из Интернета

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

Внимание!!! Эти действия потенциально небезопасные. Совершайте их, только если вы уверены, что будете и в будущем выполнять скриптовые программы, загруженные из Интернета. Перед запуском проверяйте издателя сайта.

Предварительные действия (выполняются единовременно).

Вначале надо разрешить в системе запуск скриптов Powershell глобально. Для этого:

  1. В строке поиска наберите следующее слово: powershell.
  2. В результатах поиска появится пункт powershell.exe, с именем «Оболочка Powershell». Щёлкните по ней правой клавишей мыши, и выберите «Запуск от имени администратора».
  3. Откроется окно программы. в неё нужно будет вставить команду ниже и нажать клавишу Enter.
  4. Set-ExecutionPolicy -ExecutionPolicy Unrestricted							
    						
  5. После успешного выполнения команды закройте окно оболочки.

Это действие надо осуществлять один раз после переустановки Microsoft Windows. Данная команда разрешает вообще запуск скриптов Powershell на компьютере, а не только загруженных из Интернета. О запуске таких программ смотри инструкцию ниже.

Запуск скриптов, загруженных из Интернета

Для запуска скриптов, загруженных из Интернета, воспользуйтесь данной инструкцией.

  1. Откройте папку с загруженным скриптом (обычно это папка «Загрузки»).
  2. Щёлкните правой клавишей мыши по скрипту Powershell (он имеет расширение *.ps1), и выберите в контекстном меню пункт «Запустить в Powershell». ВАЖНО!!! Запускать файл на исполнение возможно только таким способом. Иначе скрипт откроется в блокноте на редактирование.
  3. Откроется окно оболочки Powershell. Если файл загружен из Интернета, появится сообщение об этом с предложением действия. Необходимо нажать на клавиатуре клавиши «Y», «Enter» или «A», «Enter», разрешая запуск скрипта.
  4. Иногда запуск скриптов блокирует встроенный в защитник Windows фильтр Microsoft SmartScreen. В этом случае появляется синее или красное окно о невозможности запустить файл. Избавиться от него легко. Необходимо щёлкнуть левой клавишей мыши на ссылке «Подробнее...» в этом окне, а затем — на ссылке «Запустить в любом случае».
  5. Примечание. Выполняйте предыдущий пункт, если Вы уверены в авторе скрипта и издателе сайта, опубликовавшем скрипт. Часто такое предупреждение — это последняя линия обороны перед запуском вредоносного программного обеспечения. И потом не ругайте никого в заражении, могла быть, например, скомпрометирована цепочка поставок. Такое возможно даже на официальном сайте!

  6. После выполнения указанных манипуляций скрипт, как правило, запускается, и выполняет все свои действия. После этого оболочка Powershell закрывается, и на компьютере можно продолжать работать в обычном порядке.
  7. Запуск на исполнение скриптов, написанных собственноручно или загруженных по сети Windows осуществляется аналогично, за исключением пунктов 3,4, которые, как правило, даже не появляются.
  8. И, наконец, всё очень просто, если вы запускаете скрипты в командной строке оболочки Powershell (даже удалённо!). Но это материал для гиков.

Инструкция для запуска командного файла, загруженного из Интернета

особенностью командных файлов, загруженных из Интернета, является то, что ВСЕ они помечаются как небезопасные, и их запуск блокируется фильтром SmartScreen. Чтобы избежать этого, используйте следующий алгоритм:

  1. Откройте папку с загруженным скриптом (обычно это папка «Загрузки»).
  2. Дважды щёлкните левой клавишей мыши по скрипту Command Shell (он имеет расширение *.cmd или .bat).
  3. Если вам нужно запустить скрипт с повышенными привилегиями, вместо этого щёлкните на этом файле правой клавишей мыши и выберите пункт «Запуск от имени администратора».
  4. Откроется окно с предупреждением запуска небезопасного файла. Здесь нажмите кнопку «Ok».
  5. Появится предупреждение фильтра Smartscreen, как показано на рисунках в приложении №1. Нажмите последовательно на «Подробнее», «Выполнить в любом случае».
  6. Дождитесь окончания выполнения скрипта.
  7. Bingo!

Инструкция для запуска файла Windows Shell Script

Файлы этого типа почему-то больше внушают доверия операционной системе, чем вышеперечисленные скрипты. Чаще всего проверка ограничивается модулем Windows Defender и проверки подписи файла, после чего программа запускается. На всякий случай приводим алгоритм запуска.

  1. Откройте папку с загруженным скриптом (обычно это папка «Загрузки»).
  2. Дважды щёлкните левой клавишей мыши по скрипту Windows Shell SCript (он имеет расширение *.vbs, *.js, *.wsf или *.wsh, в зависимости от языка программирования). Скрипт откроется в графическом интерфейсе (оконный режим).
  3. Если вам нужно запустить скрипт в окне консоли, вместо этого щёлкните на этом файле правой клавишей мыши и выберите пункт «Открыть в командной строке».
  4. Появится диалоговое окно. В нём отобразится информация о том, что запускается скрипт WSH, и выводится издатель, подписавший данный скрипт (или неизвестный издатель). Нажмите кнопку «Ok»
  5. Возможно, но мало вероятно, Вам придётся повторить пункты 4, 5 предыдущей инструкции. Но обычно файл сразу запускается на выполнение. Дождитесь окончания выполнения скрипта.
  6. Bingo!
  7. Примечание. Возможно, при своей работе скрипт не будет проявлять никакой активности (так называемый «тихий запуск»). Проследить активность программы можно в диспетчере задач. При выполнении скрипта в системе будет активный процесс Windows Script Host (с именами процессов cscript.exe или wscript.exe, но это не важно).

=== *** ===

Приложения

Приложение 1. Скриншоты окна предупреждения фильтров SmartScreen

Предупреждение фильтра Microsoft SmartScreen о небезопасном файле

Предупреждение фильтра Microsoft SmartScreen о небезопасном файле.

Предупреждение фильтра Microsoft SmartScreen о небезопасном сайте
Предупреждение фильтра Microsoft SmartScreen о небезопасном сайте

Предупреждение фильтра Microsoft SmartScreen о небезопасном сайте в браузере.