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

Обновлено: 05.07.2024


Windows 10 PowerShell – это средство командной строки, которое позволяет выполнять команды и сценарии для изменения параметров системы и автоматизации задач. Это похоже на командную строку, но PowerShell является более эффективным интерфейсом командной строки (CLI), который предоставляет широкий набор инструментов и обеспечивает большую гибкость и контроль (особенно для сценариев).

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

Работа со скриптами в инструменте PowerShell Windows 10

В этой версии урока по Windows 10 мы проведём вас шаг за шагом, чтобы вы смогли успешно запустить свой первый скрипт в PowerShell.

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

В Windows 10 файлы сценариев PowerShell можно создавать с помощью практически любого текстового редактора или консоли интегрированной среды сценариев (ISE).

Создание скрипта с помощью блокнота

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

  1. Откройте приложение «Блокнот».
  2. Создайте или вставьте сценарий. Например: Write-Host "«Поздравляем! Ваш первый скрипт успешно выполнен»"

Создание файла скрипта PowerShell с помощью блокнота

Вышеприведенный скрипт просто выводит на экране фразу «Поздравляем! Ваш первый скрипт успешно выполнен».

Создание сценария с помощью интегрированной среды сценариев

Кроме того, консоль PowerShell ISE можно использовать для кодирования сценариев в Windows 10. Интегрированная cреда сценариев является сложным инструментом, но вы можете начать работу с помощью этих шагов:

    Откройте системный поиск и введите запрос Windows PowerShell ISE, щелкните правой кнопкой мыши верхний результат, и выберите Запуск от имени администратора или выберите соответствующий параметр в правой колонке.

Запуск интегрированной среды сценариев

В PowerShell ISE создайте пустой файл .ps1, в котором можно создать или вставить скрипт. Например:

Write-Host "«Поздравляем! Ваш первый скрипт успешно выполнен»"

Создаём скрипт для PowerShell через ISE

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

Запуск файла сценария PowerShell

Чтобы запустить файл сценария в PowerShell, необходимо изменить политику выполнения, выполнив следующие действия:

  1. Откройте поиск и введите PowerShell, щелкните правой кнопкой мыши в верхний результат и выберите Запуск от имени администратора.
  2. Введите следующую команду, чтобы разрешить выполнение скриптов и нажмите клавишу Enter :

Разрешим запуск скриптов PowerShell

Запуск файла скрипта PowerShell

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

PowerShell в Windows 10 включает четыре политики выполнения:

  • Restricted – останавливает выполнение скрипта.
  • RemoteSigned – запускает скрипты, созданные на устройстве. Однако, сценарии, созданные на другом компьютере, не будут запускаться, если они не содержат подписи доверенного издателя.
  • AllSigned – все скрипты будут работать до тех пор, пока они подписаны надежным издателем.
  • Unrestricted запускает любой скрипт без каких-либо ограничений.

В приведенных выше шагах мы использовали команду, чтобы разрешить запуск локальных скриптов в Windows 10. Однако, если вы не планируете регулярно выполнять скрипты, можно восстановить настройки по умолчанию, используя те же инструкции, но на Шаге 4, обязательно используйте Set-ExecutionPolicy Restricted команду.

В комментариях статьи про diskusage читатель спросил, может ли утилита показать размер папки C:\Windows\CSC , где хранится кэш автономных файлов.

Запуск от имени системы средствами Windows

Очевидно, в его организации с проблемой сталкиваются регулярно, а для анализа приходится выключать ОС ;)

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

[+] Сегодня в программе

Сторонние средства: psexec

В командной строке от имени администратора команда dir сообщает об отсутствии папки C:\Windows\CSC . Однако PowerShell подтверждает наличие пути и сообщает, что для доступа недостаточно прав.

Запуск от имени системы средствами Windows

Вообще-то, в статье про diskusage я изначально ссылался на способ с psexec, позволяющий интерактивно запускать приложения от имени системы. Другими словами, с помощью утилиты можно было запустить командную строку или PowerShell от имени SYSTEM…

…и узнать, что для доступа в папку нужны права SYSTEM :)

Запуск от имени системы средствами Windows

Дальше можно просто выполнять необходимые команды.

Системные средства: планировщик заданий

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

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

В качестве действия укажите:

  • Команда: powershell
  • Параметры для выполнения команды: -ExecutionPolicy Bypass -Noprofile -Command ваша_команда
    или
    Параметры для выполнения скрипта: -ExecutionPolicy Bypass -Noprofile -File путь_к_файлу.ps1

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

На вкладке Общие нажмите Изменить и введите SYSTEM или СИСТЕМА в зависимости от локализации.

Запуск от имени системы средствами Windows

Автоматизацию создания таких запланированных задач я разбирал с помощью schtasks и PowerShell. Остается запустить задание и открыть созданный файл. Все просто!

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

Заключение

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

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

Вадим - владелец этого блога, и почти все записи здесь вышли из-под его пера. Подробности о блоге и авторе здесь. Поддержать автора вы можете тут.

Вас также может заинтересовать:

Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.

комментариев 8

Залогинился, чтобы написать, что размер папки CSC надо смотреть через DISM. Пока логинился, вспомнил, что CSC и SXS это всё-таки разные вещи. Но названия так похожи.

Ваша оценка: 0

Размер sxs я смотрел в предыдущей статье. Я конечно люблю его смотреть, но не настолько :))

Ваша оценка: 0

Ладно, раз никто больше не комментирует, напишу ещё про драйверы. В той статье комментарии уже закрыты, поэтому напишу тут.

Кто-то там хотел узнать, какой драйвер используется устройствами в настоящий момент. Действительно, Get-PnPDevice этого не показывает, и это выглядит как досадное недоразуменее. Но на самом деле показывает другой коммандлет:

Собственно, если бы я решал такую же задачу, как ты в том посте, то я бы построил логику именно на этой информации. Т.е. получить список всех драйверов в системе (через Get-WindowsDriver), из них отбросить те, которые используются существующими устройствами (через Get-PnpDeviceProperty), а оставшиеся удалить.

Ваша оценка: 0 Ваша оценка: 0


Stanislav Vershinin

Спасибо за статью.
Действительно psexec внесен в черный список, и запуск его не возможен.
Планировщик, затратен по времени приготовления. Но, я нашел программу PowerRun, которая может запускать процессы от имени SYSTEM и даже TrustedInstaller.

запуск, работает идеально.

Ваша оценка: 0

В смысле в GUI? А одна команда в консоли это тоже затратно? Да, ее нет в статье, и PowerShell выглядит сложно, но schtasks никто не отменял и примеры есть в блоге.

Ваша оценка: 0

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

Большинству пользователей так или иначе приходилось сталкиваться со скриптами – мини-программами, используемыми обычно для чисто утилитарных целей. Наиболее распространены пакетные файлы CMD и BAT, однако иногда попадаются и другие типы скриптов, например, SH – сценарии, используемые прикладными программами в Bash. Несмотря на то, что предназначаются такие скрипты для Linux, благодаря интеграции подсистемы Bash они запросто могут быть выполнены и в Windows 10. Впрочем, если вы без подготовки попробуете запустить в «десятке» пакетный файл SH, то у системы не получится его обработать.

Чтобы иметь возможность запускать в среде Windows SH-сценарии, вам нужно ставить подсистему Linux. Но можно пойти и другим путем, установив альтернативные интерпретаторы, например, Git Bash или Cygwin. Они позволяют компилировать и запускать Unix и Linux-сценарии в Windows, причем как в 64-разрядной, так и в 32-разрядной версии системы.

Git Bash

Установка Git Bash

Теперь, чтобы запустить SH-скрипт, перетащите его в окно консоли и нажмите ввод. Вот и всё, командный файл будет исполнен.

Выполнение скрипта в Git Bash

zapusk-sh-skriptov-v-win-10-3

А еще вы можете открыть консоль Git Bash в любом каталоге, выбрав в контекстном меню Проводника, куда интерпретатор интегрируется при установке, опцию «Git Bash Here». В этом случае скрипты запускаются командой sn name, где name – имя скрипта.

Пункт Git Bash Here в контекстном меню проводника Windows

Cygwin

Установка Cygwin этап 1

Установка Cygwin этап 2

Подобно Git Bash, Cygwin представляет собой командную строку, из которой и запускаются SH-скрипты. Да, перетаскивание в ней тоже работает.

Запуск скрипта в Cygwin


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

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

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

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