Как запустить скрипт в windows 7

Обновлено: 04.07.2024

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

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

В области скриптов можно открывать и редактировать файлы 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. Полученные данные будем использовать для повышения привилегий и продвижения в сети.

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

Как запустить консоль:


2. Ввести "cmd" и нажать Enter


Появится подобное окно



Консоль поддерживает множество команд - ntcmds

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

Как запустить скрипт:

Предположим, на диске C: есть директория script, и в ней лежит скрипт test.pl.
Для того, чтобы его запустить, требуется предварительно перейти в директорию со скриптом, набрав в консоли:

cd c:\script

и нажать Enter. На экране отобразится нечто подобное:


Теперь нужно ввести имя скрипта (test.pl) и нажать Enter:


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

"test.pl" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.

или

'test.pl' is not recognized as an internal or external command,
operable program or batch file.

То запускать придется так:

c:\perl\bin\perl.exe test.pl



c:\perl\bin\perl.exe - путь до интерпретатора Perl, test.pl - запускаемый скрипт. Естественно, у вас в системе должен стоять ActivePerl или какой-нибудь другой интерпретатор.

Надеюсь, теперь мне перестанут задавать вопросы про консоль.

Как запускать скрипты через консоль: 16 комментариев

Ну тут ещё можно добавить что должен быть установлен ActivePerl ;)

Упс. Сорри, пропустил последний абзац.

жги ещё!
> следующая статья - "как запускать пхп скрипты через консоль"


Kaimi :

Окей, постараюсь. Главное чтобы мне перестали задавать подобные вопросы. grep подсказывает, что на данный момент мне этот вопрос задавали более 40 раз

Каими все равно молодец :)

кайми,а не проще создать в папке со скриптом bat файл и вписать в нем cmd, после этого он сразу сам путь выводит, а то вечно с путями голяк)


Kaimi :

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

не все это опять же знают, но все равно молодец что такое написал. Я этого тоже когда то не знал.

А что касается путей,когда у тебя русская винда и ты распаковываешь куда-нить в мои документы-руками путь геморно набрать))

Windows PowerShell – это мощный язык для написания скриптов, а также программа для Windows, которая эти скрипты выполняет. Язык был представлен в 2006 году как часть второго сервис-пака для операционной системы Windows XP. С тех пор PowerShell присутствует во всех версиях Windows. В 2008 году была представлена вторая версия языка, она используется начиная с Windows 7. Скрипты на данном языке сохраняются в файлах с расширением PS1 и могут выполняться как знакомые всем BAT и CMD файлы.

В данной статье мы расскажем о том, как запустить Windows PowerShell с правами пользователя и от имени администратора в Windows 7 и Windows 10, а также как выполнять скрипты написанные на этом языке.

Стандартные способ запуска

Пожалуй, самый простой способ запустить программу Windows PowerShell это воспользоваться меню « Выполнит ь». Как в Windows 7, так и в случае Windows 10, меню « Выполнить » можно вызвать при помощи комбинации клавиш Win-R . После нажатия данной комбинации клавиш появляется небольшое окно с текстовым полем для ввода команды. Чтобы запустить данную программу введите команду «powershell» и нажмите на клавишу ввода.

ввод команды powershell

Еще один простой способ запуска Windows PowerShell – это поиск в меню « Пуск ». Чтобы воспользоваться данным вариантом просто откройте меню « Пуск » и введите в поиск название программы. После этого операционная система найдет нужную программу и предложит ее открыть.

поиск powershell в меню Пуск

После этого программу можно запустить, просто кликнув по ней в результатах поиска. Оба этих способа одинаково работают что в Windows 7, что в Windows 10.

Запуск PowerShell от имени администратора

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

запуск powershell от имени администратора

Кроме этого, в Windows 10 есть дополнительная возможность, которая позволяет запускать PowerShell как с правами пользователя, так и от имени администратора. Чтобы воспользоваться этим вариантом нужно кликнуть правой кнопкой мышки по кнопке « Пуск » и в открывшемся меню выбрать « PowerShell ».

запуск powershell через контекстное меню кнопки Пуск

Как запустить PowerShell в папке

Если вам нужно запустить PowerShell в сразу определенной папке, то в Windows 10 для этого нужно открыть эту папку при помощи проводника и нажать на кнопку « Файл » в левом верхнем углу окна. В результате появится меню с помощью которого можно будет запустить данную программу с правами пользователя или от имени администратора.

запуск PowerShell в папке

В операционной системе Windows 7 вы можете запустить PowerShell в папке при помощи адресной строки. Для этого откройте нужную папку и введите в адресную строку команду « powershell ».

запуск PowerShell в папке с помощью адресной строки

В результате PowerShell откроется сразу в выбранной вами папке.

PowerShell открыт в выбранной папке

Кстати, таким образом вы можете запускать и стандартную командную строку, но в этом случае нужно вводить « cmd ».

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

В PowerShell есть несколько режимов работы, которые определяют возможность запуска скриптов:

По умолчанию, используется режим Restricted или « Ограниченный ». Поэтому если вам нужно запустить скрипт, то предварительно нужно выполнить команду « Set-ExecutionPolicy RemoteSigned -Scope Process » и нажать на клавишу « Y » для подтверждения. Данная команда разрешит выполнение удаленно подписанных скриптов для текущего сеанса.

разрешение на выполнение скриптов для текущего сеанса

После выполнения данной команды вы сможете запускать скрипты просто введя в консоль их полный адрес. Например, на скриншоте внизу мы выполнили скрипт « c:\test.ps1 ».

выполнение скрипта powershell по адресу

Если вы хотите запустить скрипт из стандартной командной строки, то это можно сделать при помощи команды « powershell -executionpolicy RemoteSigned -file путь ». Ниже мы приведем еще несколько вариантов запуска скриптов PowerShell, которые могут быть полезны в определенных ситуациях.

  • powershell -executionpolicy RemoteSigned -WindowStyle Hidden -file <путь>
    • Запуск скрипта в фоновом режиме (параметр -WindowStyle Hidden ). Если добавить параметр -NonInteractive , то скрипт не будет задавать никаких вопросов и выполнится без участия пользователя.
    • Запуск скрипта c параметрами. Как видно, параметры передаются точно также как и в случае запуска обычных программ.

    запуск скрипта с помощью командной строки

    Если же вы хотите навсегда разрешить запуск скриптов, то для этого нужно выполнить команду « Set-ExecutionPolicy RemoteSigned » и нажать на клавишу « Y » для подтверждения.

    постоянное разрешение на выполнение скриптов powershell

    Но, если ваш скрипт был скачан из интернета, то описанного выше варианта может быть недостаточно. Для того чтобы полностью и навсегда отключить любые предупреждения при запуске скриптов используйте « Set-ExecutionPolicy Bypass ».

    разрешение на выполнение скриптов powershell из интернета

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

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