Как запустить сценарий windows

Обновлено: 02.07.2024

Как запустить скрипт PowerShell?

Есть несколько различных способов запуска скрипта, ниже приведены основные:

  1. Запустить оболочку PowerShell и в ней запустить скрипт (ввести путь до файла и имя файла, например, так: C:\Scripts\test.ps1, или перейти в папку скрипта командой cd C:\Scripts и запустить его командой .\test.ps1) Оболочку можно найти и запустить множеством способов. Один из способов - через меню "Пуск". Для Windows 7 - нужно зайти во "Все программы" - "Стандартные" - "Windows PowerShell" и запустить оболочку "Windows PowerShell". Для Windows 10 - нужно найти группу на букву "W" и в ней вы найдете "Windows PowerShell".
  2. Запустить "Интегрированную среду сценариев Windows PowerShell ISE" - это программа - среда разработки, позволяющая редактировать и отлаживать скрипты PowerShell, которая так же есть по-умолчанию вместе с самим PowerShell. Запустив ее, нужно просто нажать кнопку "Открыть" или зайти в меню Файл - Открыть и выбрать нужный скрипт, затем нажать F5 или кнопку "Выполнить скрипт".Найти Windows PowerShell ISE можно там же, где и оболочку PowerShell - в меню "Пуск".
  3. Запустить стандартную коммандную строку и в ней написать:
    powershell -file <имя_скрипта> (пример: powershell -file myscript.ps1)

Как разрешить выполнение неподписанного скрипта PowerShell?

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

Set-ExecutionPolicy RemoteSigned -Scope Process

2. При запуске из стандартной коммандной строки использовать параметр -executionpolicy, т.е. запускать скрипт так:

powershell -executionpolicy RemoteSigned -file <имя_скрипта>

Оба способа устанавливают политику только для текущего сеанса, при этом, политика безопасности выполнения скриптов PowerShell, прописанная в реестре, не будет изменена и останется прежней. Если вы хотите поменять политику безопасности выполнения скриптов "на постоянно", то используйте такой способ:

3. Разрешить запуск навсегда : запустить оболочку PowerShell от имени "Администратора", затем выполните команду:

Set-ExecutionPolicy RemoteSigned

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

Примечание: Если скрипт был загружен из интернета, то чтобы избежать запроса на подтверждение запуска, нужно вместо RemoteSigned использовать Bypass - полное отключение любых запросов и предупреждений.

Как запустить скрипт PowerShell в фоновом режиме?

Для этого достаточно использовать параметр запуска -WindowStyle, который может принимать значения: Normal, Minimized, Maximized и Hidden. Таким образом, чтобы запустить неподписанный скрипт в фоновом режиме, нужно выполнить команду:

powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file <имя_скрипта>

Так же можно еще при желании добавить -NonInteractive, чтобы скрипт не задавал никаких вопросов. Таким образом, скрипт выполнится незаметно для пользователя. Будmте внимательны, используя такой способ.

Запуск скрипта PowerShell c параметрами

Собственно запуск нужно делать как если бы вы запускали обычную программу или bat-файл с параметрами. Например, для запуска скрипта с параметрами из командной, можно написать такую команду:

powershell -executionpolicy RemoteSigned -file <имя_скрипта> param1 param2 "еще один текстовый параметр"

В самом скрипте вы можете получить эти параметры так:

В интегрированной среде PowerShell ISE запустить скрипт с параметрами можно аналогично, используя область команд.

Как запустить скрипт PowerShell с помощью ярлыка?

Осуществить такую задачу можно двумя способами:

  1. Создать bat/cmd файл, в котором прописать команду для запуска скрипта (с параметрами вы ознакомились выше)
  2. Создать ярлык на PowerShell, который можно найти в папке c:\Windows\System32\WindowsPowerShell\v<версия>\ и в свойствах ярлыка в поле "Объект" дописать необходимые параметры.

Таким образом, например, чтобы запустить скрипт powershell при входе пользователя, можно просто создать ярлык, как описано во 2-м пункте и поместить его в автозагрузку. Так же, создание ярлыка одним из способов выше позволит легко запустить скрипт от имени администратора или от имени любого другого пользователя как обычную программу.

Скриптовый язык PowerShell - довольно мощный инструмент для решения различных задач, но его можно использовать не только для хороших вещей, но и во вред, поэтому, пользуйтесь им с умом ;)

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

Создание и выполнение сценариев

В области скриптов можно открывать и редактировать файлы Windows PowerShell. Сейчас нас интересуют следующие типы файлов Windows PowerShell: файлы скриптов ( .ps1 ), файлы данных скриптов ( .psd1 ) и файлы модулей скриптов ( .psm1 ). Эти типы файлов имеют цветовую подсветку синтаксиса в редакторе области сценариев. Другие стандартные файлы, которые можно открыть в области сценариев, — это файлы конфигурации ( .ps1xml ), XML-файлы и текстовые файлы.

Политика выполнения Windows PowerShell определяет, можно ли выполнять сценарии, загружать профили Windows PowerShell и файлы конфигурации. Политика выполнения по умолчанию, Restricted, запрещает выполнение сценариев и блокирует загрузку профилей. Чтобы изменить эту политику выполнения и разрешить загрузку и использование профилей, см. описание Set-ExecutionPolicy и about_Signing.

Создание файла сценария

Открытие существующего сценария

Закрытие вкладки сценария

На вкладке файла, которую нужно закрыть, щелкните значок закрытия (X) или откройте меню File (Файл) и выберите Close (Закрыть).

Если файл был изменен с момента последнего сохранения, будет предложено сохранить или отменить изменения.

Отображение пути к файлу

На вкладке файла наведите курсор на его имя. Появится подсказка с полным путем к файлу сценария.

Запуск сценария

Выполнение части сценария

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

Есть несколько способов остановить выполняемый скрипт.

  • На панели инструментов щелкните Остановить операцию.
  • Нажмите CTRL + BREAK .
  • В меню Файл выберите Остановить операцию.

Нажатие клавиш CTRL + C также сработает, если нет выделенного текста. В противном случае нажатие клавиш CTRL + C приведет к копированию выделенного текста.

Написание и редактирование текста в области сценариев

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

Ввод текста в области сценариев

  1. Установите курсор в область сценариев, щелкнув кнопкой мыши любую ее часть или выбрав пункт Перейти в область сценариев в меню Вид.
  2. Создайте сценарий. Цветовая подсветка синтаксиса и заполнение нажатием клавиши TAB обеспечивают более широкие возможности для редактирования в интегрированной среде скриптов Windows PowerShell.
  3. Подробную информацию о заполнении нажатием клавиши TAB, помогающем при вводе кода, см. в статье How to Use Tab Completion in the Script Pane and Console Pane (Использование заполнения нажатием клавиши TAB в областях сценариев и консоли).

Поиск текста в области сценариев

  1. Чтобы найти текст в любой части скрипта, нажмите клавиши CTRL + F или выберите Find in Script (Найти в сценарии) в меню Edit (Правка).
  2. Чтобы найти текст после курсора, нажмите клавишу F3 или выберите Найти следующее в сценарии в меню Правка.
  3. Чтобы найти текст до курсора, нажмите клавиши SHIFT + F3 или выберите Find Previous in Script (Найти предыдущее в сценарии) в меню Edit (Правка).

Поиск и замена текста в области сценариев

Нажмите клавиши CRTL + H или в меню Edit (Правка) выберите Replace in Script (Заменить в сценарии). Введите текст, который нужно найти, и замещающий текст, затем нажмите клавишу ВВОД .

Переход к определенной строке текста в области сценариев

В области сценариев нажмите клавиши CTRL + G или выберите Go to Line (Перейти к строке) в меню Edit (Правка).

Введите номер строки.

Копирование текста в области сценариев

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

Нажмите клавиши CTRL + C , щелкните значок Copy (Копировать) на панели инструментов или выберите Copy (Копировать) в меню Edit (Правка).

Вырезание текста в области сценариев

  1. В области сценариев выделите текст, который требуется вырезать.
  2. Нажмите клавиши CTRL + X , щелкните значок Cut (Вырезать) на панели инструментов или выберите Cut (Вырезать) в меню Edit (Правка).

Вставка текста в области сценариев

Нажмите клавиши CTRL + V , щелкните значок Paste (Вставить) на панели инструментов или выберите Paste (Вставить) в меню Edit (Правка).

Отмена действия в области сценариев

Нажмите клавиши CTRL + Z , щелкните значок Undo на панели инструментов или выберите Отменить в меню Правка.

Повторное выполнение действия в области сценариев

Нажмите клавиши CTRL + Y , щелкните значок Повторить на панели инструментов или выберите Повторить в меню Правка.

Сохранение сценария

Звездочка рядом с именем скрипта обозначает, что файл не был сохранен после изменения. После сохранения звездочка исчезает.

Сохранение сценария

Нажмите клавиши CTRL + S , щелкните значок Сохранить на панели инструментов или выберите Сохранить в меню Файл.

Сохранение сценария с определенным именем

  1. В меню Файл выберите пункт Сохранить как. Появится диалоговое окно Сохранить как.
  2. В поле Имя файла введите имя файла.
  3. В поле Тип файла выберите тип файла. Например, в поле Тип сохраняемого файла выберите "Скрипты PowerShell ( *.ps1 )".
  4. Нажмите Сохранить.

Сохранение сценария в кодировке ASCII

По умолчанию интегрированная среда сценариев Windows PowerShell сохраняет новые файлы сценариев ( .ps1 ), файлы данных сценариев ( .psd1 ) и файлы модулей сценариев ( .psm1 ) в кодировке Юникод (BigEndianUnicode). Чтобы сохранить сценарий в другой кодировке, например ASCII (ANSI), используйте методы Save или SaveAs объекта $psISE.CurrentFile.

Следующая команда сохраняет новый сценарий в кодировке ASCII и с именем MyScript.ps1:

Следующая команда заменяет текущий файл сценария на файл с таким же именем, но в кодировке ASCII:

Следующая команда возвращает кодировку текущего файла:

Интегрированная среда скриптов Windows PowerShell поддерживает следующие параметры кодировки: ASCII, BigEndianUnicode, Unicode, UTF32, UTF7, UTF8 и Default. Значение параметра Default зависит от системы.

Интегрированная среда скриптов Windows PowerShell не изменяет кодировку файлов скриптов при использовании команд "Сохранить" или "Сохранить как".


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

Как запустить команду в системе

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


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

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

cmd.exe - интерпретатор командной строки

at.exe - инструмент для запуска команд по расписанию. Становится доступен, если запущен сервис расписаний.

wmic.exe - утилита для сбора данных из инструментария управления и диагностики операционной системой

psexec.exe - утилита для запуска приложений и процессов на удаленной или локальной системе

wscript.exe - сервер для выполнения скриптовых сценариев в ОС (vbscript, js)

cscript.exe - запускает сценарий для командной строки

Все перечисленные выше файлы действительно находятся в любой Windows системе, начиная, как минимум, с Windows 7. Но psexec.exe к таким не относится. Это инструмент, который изначально можно было только найти среди Sysinternals tools. На сегодняшний день psexeс имеет большое количество вариаций, переписанных на различные языки программирования.

Помимо готовых команд и интерпретаторов в ОС Windows существуют также наборы функций, которые могут предоставляться различными подсистемами, например WinRM , WMI , Windows Service Control Manager API .

Особенности запуска команд

Все команды, которые выполняются ОС Windows, могут быть разделены на несколько групп по различным признакам. Определим для нашего исследования следующие группы:

локальный запуск команд

удаленный запуск команд

запуск команд с теми же привилегиями

запуск команд с использованием чужих привилегий

Распределим все уже описанные методы запуска команд в ОС:

Запуск с теми же привилегиями локально и удаленно:

Запуск с повышенными привилегиями локально и удаленно:

Практическая проверка

Все данные о командах были собраны по документации ОС Windows. Для теста будем использовать следующий стенд:

Vbox в качестве виртуальной среды

Windows Server 2019 Evaluation в качестве системы для развертывания сервисов AD

Kali Linux в качестве атакующей системы

набор скриптов Impaсket для доступа к подсистемам выполнения команд

IOXIDResolver.py - инструмент для получения NetBIOS имени системы и перечня сетевых интерфейсов

Все машины подключены в host-only сеть. На машине Windows Server отключены механизмы защиты (FireWall, Defender).

Для первичного доступа в систему будем использовать уязвимость Zerologon. Описание и инструменты для эксплуатации уязвимости можно найти в сети. Оставим это в качестве домашнего задания для читателя.

Шаг 1 - получение данных о сетевых интерфейсах и netBIOS имени сервера:


Шаг 2 и 3 - запуск эксплойта Zerologon, получение hash пользователя:


Шаг 4 - для выполнения команд в системе будем использовать Administrator и его хэш. Для остальных пользователей можно будет выполнять те же самые операции. Предлагаем читателю выполнить их самостоятельно.

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

Нас интересуют следующие скрипты:

Для проверки привилегий каждый запущенный скрипт будет работать в интерактивном или полуинтерактивном режиме. Тестовая команда будет - whoami . Она как раз будет показывать, чьи привилегии сейчас использует скрипт для запуска команд.

Запуск psexec.py - скрипт повторяет работу одноименного инструмента. Особенностью запуска является задействование механизма имперсонализации. Для того, чтобы метод сработал, у пользователя должен быть доступ к расшаренным директориям системы. Скрипт за счет этого сможет создать сервис, который будет запускать cmd.exe от имени пользователя System:


Запуск smbexec.py - по сути использует тот же метод, что и psexec.py, только при запуске каждой команды, стартует новый сервис на целевой системе.


Запуск wmiexec.py - работает от имени тоже пользователя, чьи учетные данные были использованы. Обрабатываются запросы асинхронно, может занять длительное время.


Запуск atexec.py сопряжен с конфигурацией целевой системы. Если зависимый сервис не запущен в целевой системе, то выполнение команд невозможно.


Таким образом, можно запускать команды в ОС Windows удаленно. Рассмотренные методы наиболее эффективно позволяют производить сбор данных и проведения тестирования на проникновение.

На этом всё. В преддверии старта курса "Пентест. Практика тестирования на проникновение", приглашаем всех желающих на бесплатный демоурок, в рамках которого познакомимся с инструментами для исследования AD. Полученные данные будем использовать для повышения привилегий и продвижения в сети.

Для запуска сценария с помощью пункта Выполнить (Run) меню Пуск (Start), достаточно написать полное имя этого сценария в поле Открыть (Open) (рис. 1.5).


Рис. 1.5. Запуск сценария из меню Пуск в Windows ХР

В этом случае по умолчанию сценарий будет выполнен с помощью wscript.exe, т.е. вывод информации будет вестись в графическое диалоговое окно.

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

Запуск сценария из командной строки в консольном режиме Можно выполнить сценарий из командной строки с помощью консольной версии WSH cscript.exe. Например, чтобы запустить сценарий, записанный в файле C:ScriptFirst.js, нужно загрузить командное окно и выполнить в нем командуcscript

Запуск сценария из командной строки в графическом режиме

Запуск сценария из командной строки в графическом режиме Сценарий можно выполнить из командной строки с помощью (оконной) графической версии WSH wscript.exe. Для нашего примера в этом случае нужно выполнить командуwscript C:ScriptFirst.jsТогда в результате выполнения сценария на экране

Запуск сценария с помощью Проводника Windows (Windows Explorer)

Запуск сценария с помощью Проводника Windows (Windows Explorer) Самым простым является запуск сценария в окнах Проводника Windows или на рабочем столе — достаточно просто выполнить двойной щелчок мышью на имени файла со сценарием или на его значке (рис. 1.6). Рис. 1.6. Запуск сценария с

Запуск одиночного сценария

Запуск одиночного сценария Запуск одиночного сценария, который открыт в активном окне редактирования, производится с помощью пункта Run Script меню Script. При этом сценарий может запускаться как с помощью cscript.exe (устанавливается по умолчанию), так и с помощью wscript.exe, а выводимая

Меню Пуск

Меню Пуск Пуск – важнейшее меню, к которому вы будете обращаться при каждом сеансе работы на компьютере. Оно открывается нажатием кнопки Пуск, расположенной слева на Панели задач, и содержит элементы для вызова часто используемых объектов системы (рис. 2.25). Меню Пуск

8.2. Меню «Пуск»

8.2. Меню «Пуск» По сравнению с Windows Vista внешний вид меню Пуск Windows 7 практически не претерпел изменений, за исключением нескольких незначительных моментов.? Кнопка Пуск теперь выглядит абсолютно полноценной и законченной и получила анимационный эффект: при наведении

Меню кнопки Пуск

Меню кнопки Пуск Внешний вид кнопки Пуск Удаление фиксированного списка программВ Windows XP в контекстном меню исполняемых файлов появился пункт Закрепить в меню "Пуск", который добавляет программу в фиксированный список данного меню. Также там могут находится две

Меню Пуск

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

Запуск сценария

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

2.1. Запуск сценария

2.1. Запуск сценария Запустить сценарий можно командой sh scriptname[ 8 ] или bash scriptname. (Не рекомендуется запуск сценария командой sh &lt;scriptname&gt;, поскольку это запрещает использование устройства стандартного ввода stdin в скрипте). Более удобный вариант -- сделать файл скрипта

Пример 20-1. Запуск сценария в ограниченном режиме

Контекстное меню пункта меню Пуск

Контекстное меню пункта меню Пуск С помощью системного реестра можно запретить вызов контекстного меню, открываемого щелчком правой кнопкой мыши на пункте меню Пуск (рис. 2.23). Для этого необходимо в разделе HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorer создать REG_DWORD-параметр

3.2.1. Меню Пуск

3.2.1. Меню Пуск В более ранних версиях Windows главное меню называлось меню Пуск, поскольку для его открытия использовалась кнопка с надписью «Пуск». Начиная с Vista, надпись «Пуск» исчезла с кнопки открытия меню, а вместо нее появился логотип Windows. В Windows 7 надписи «Пуск» тоже нет,

Меню Пуск

Меню Пуск Меню Пуск – основной механизм навигации, с помощью которого можно искать и запускать программы, Панель управления, последние открывавшиеся документы, сетевое окружение и т. д.Настройке поддается около 80 % компонентов меню Пуск, чего достаточно, чтобы сделать

Меню Пуск

Меню Пуск Меню Пуск стало чуть ли не символом операционной системы Windows. Впервые это меню появилось в Windows 95 и присутствует до сих пор, хотя претерпело несколько серьезных изменений.Настройки меню Пуск доступны на второй вкладке окна Свойства панели задач и меню ”Пуск”

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