Как запустить скрипт в windows 10
Windows 10 PowerShell – это средство командной строки, которое позволяет выполнять команды и сценарии для изменения параметров системы и автоматизации задач. Это похоже на командную строку, но PowerShell является более эффективным интерфейсом командной строки (CLI), который предоставляет широкий набор инструментов и обеспечивает большую гибкость и контроль (особенно для сценариев).
Скрипт – это просто набор команд, сохраненных в текстовый файл (с расширением .ps1), которые PowerShell может понять и выполнить в заданной последовательности. Единственное предупреждение заключается в том, что в отличие от командной строки, протокол безопасности по умолчанию предотвращает выполнение всех сценариев.
В этой версии урока по Windows 10 мы проведём вас шаг за шагом, чтобы вы смогли успешно запустить свой первый скрипт в PowerShell.
Создание файла сценария PowerShell
В Windows 10 файлы сценариев PowerShell можно создавать с помощью практически любого текстового редактора или консоли интегрированной среды сценариев (ISE).
Создание скрипта с помощью блокнота
Чтобы создать сценарий PowerShell с помощью блокнота, выполните следующие действия:
- Откройте приложение «Блокнот».
- Создайте или вставьте сценарий. Например: Write-Host "«Поздравляем! Ваш первый скрипт успешно выполнен»"
Вышеприведенный скрипт просто выводит на экране фразу «Поздравляем! Ваш первый скрипт успешно выполнен».
Создание сценария с помощью интегрированной среды сценариев
Кроме того, консоль PowerShell ISE можно использовать для кодирования сценариев в Windows 10. Интегрированная cреда сценариев является сложным инструментом, но вы можете начать работу с помощью этих шагов:
-
Откройте системный поиск и введите запрос Windows PowerShell ISE, щелкните правой кнопкой мыши верхний результат, и выберите Запуск от имени администратора или выберите соответствующий параметр в правой колонке.
В PowerShell ISE создайте пустой файл .ps1, в котором можно создать или вставить скрипт. Например:
Write-Host "«Поздравляем! Ваш первый скрипт успешно выполнен»"
Как только Вы выполнили эти шаги с помощью Блокнота или PowerShell ISE, сценарий готов к запуску, но он не будет выполнен. Это происходит потому, что параметры PowerShell по умолчанию всегда настроены на блокирование выполнения любого сценария.
Запуск файла сценария PowerShell
Чтобы запустить файл сценария в PowerShell, необходимо изменить политику выполнения, выполнив следующие действия:
- Откройте поиск и введите PowerShell, щелкните правой кнопкой мыши в верхний результат и выберите Запуск от имени администратора.
- Введите следующую команду, чтобы разрешить выполнение скриптов и нажмите клавишу Enter :
После выполнения этих шагов сценарий будет запущен, и если он был создан правильно, вы должны увидеть его вывод без проблем.
PowerShell в Windows 10 включает четыре политики выполнения:
- Restricted – останавливает выполнение скрипта.
- RemoteSigned – запускает скрипты, созданные на устройстве. Однако, сценарии, созданные на другом компьютере, не будут запускаться, если они не содержат подписи доверенного издателя.
- AllSigned – все скрипты будут работать до тех пор, пока они подписаны надежным издателем.
- Unrestricted запускает любой скрипт без каких-либо ограничений.
В приведенных выше шагах мы использовали команду, чтобы разрешить запуск локальных скриптов в Windows 10. Однако, если вы не планируете регулярно выполнять скрипты, можно восстановить настройки по умолчанию, используя те же инструкции, но на Шаге 4, обязательно используйте Set-ExecutionPolicy Restricted команду.
В комментариях статьи про diskusage читатель спросил, может ли утилита показать размер папки C:\Windows\CSC , где хранится кэш автономных файлов.
Очевидно, в его организации с проблемой сталкиваются регулярно, а для анализа приходится выключать ОС ;)
И да, все составляющие сегодняшнего рассказа – это компиляция ранее опубликованных в блоге решений.
[+] Сегодня в программе
Сторонние средства: psexec
В командной строке от имени администратора команда dir сообщает об отсутствии папки C:\Windows\CSC . Однако PowerShell подтверждает наличие пути и сообщает, что для доступа недостаточно прав.
Вообще-то, в статье про diskusage я изначально ссылался на способ с psexec, позволяющий интерактивно запускать приложения от имени системы. Другими словами, с помощью утилиты можно было запустить командную строку или PowerShell от имени SYSTEM…
…и узнать, что для доступа в папку нужны права SYSTEM :)
Дальше можно просто выполнять необходимые команды.
Системные средства: планировщик заданий
Допустим, что стороннее ПО, даже с подписью Microsoft из набора sysinternals, строго запрещено службой безопасности и/или блокируется политиками. Однако с правами администратора можно создавать и выполнять задания в планировщике для запуска команд и скриптов.
Например, я показывал в блоге автоматическое выполнение задач на восходе и закате солнца. Там ключевую роль играло запланированное задание, которое запускается от имени системы. Здесь тот же подход.
В качестве действия укажите:
- Команда: powershell
- Параметры для выполнения команды: -ExecutionPolicy Bypass -Noprofile -Command ваша_команда
или
Параметры для выполнения скрипта: -ExecutionPolicy Bypass -Noprofile -File путь_к_файлу.ps1
В нашем примере diskusage запускается с желаемыми ключами командной строки и записывает результат в файл. Пример параметров для планировщика.
На вкладке Общие нажмите Изменить и введите SYSTEM или СИСТЕМА в зависимости от локализации.
Автоматизацию создания таких запланированных задач я разбирал с помощью schtasks и PowerShell. Остается запустить задание и открыть созданный файл. Все просто!
В отличие от psexec, из планировщика не работает интерактивный запуск приложений. Например, редактор реестра запустится, но взаимодействовать вы с ним не сможете. Однако выполнение команд и скриптов с правами системы отлично работает.
Заключение
Я всегда ощущаю некоторую неловкость, когда пишу для блога или канала Telegram материал, не содержащий ничего нового [относительно моих предыдущих публикаций]. Но я понимаю, что не все читали старые записи, равно как из поисковиков приходит множество людей по конкретным запросам. Поэтому какая-то польза от этого должна быть.
В данном случае у меня была и дополнительная мотивация. Фактически, эта статья – затравка для следующей, в которой мы посмотрим на эту же тему под более интересным углом.
Вадим - владелец этого блога, и почти все записи здесь вышли из-под его пера. Подробности о блоге и авторе здесь. Поддержать автора вы можете тут.
Вас также может заинтересовать:
Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.
комментариев 8
Залогинился, чтобы написать, что размер папки CSC надо смотреть через DISM. Пока логинился, вспомнил, что CSC и SXS это всё-таки разные вещи. Но названия так похожи.
Ваша оценка: 0Размер sxs я смотрел в предыдущей статье. Я конечно люблю его смотреть, но не настолько :))
Ваша оценка: 0Ладно, раз никто больше не комментирует, напишу ещё про драйверы. В той статье комментарии уже закрыты, поэтому напишу тут.
Кто-то там хотел узнать, какой драйвер используется устройствами в настоящий момент. Действительно, Get-PnPDevice этого не показывает, и это выглядит как досадное недоразуменее. Но на самом деле показывает другой коммандлет:
Собственно, если бы я решал такую же задачу, как ты в том посте, то я бы построил логику именно на этой информации. Т.е. получить список всех драйверов в системе (через Get-WindowsDriver), из них отбросить те, которые используются существующими устройствами (через Get-PnpDeviceProperty), а оставшиеся удалить.
Ваша оценка: 0 Ваша оценка: 0Stanislav 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
Теперь, чтобы запустить SH-скрипт, перетащите его в окно консоли и нажмите ввод. Вот и всё, командный файл будет исполнен.
А еще вы можете открыть консоль Git Bash в любом каталоге, выбрав в контекстном меню Проводника, куда интерпретатор интегрируется при установке, опцию «Git Bash Here». В этом случае скрипты запускаются командой sn name, где name – имя скрипта.
Cygwin
Подобно Git Bash, Cygwin представляет собой командную строку, из которой и запускаются SH-скрипты. Да, перетаскивание в ней тоже работает.
Основы пакетного сценария
В пакетном сценарии вы в основном пишете команды, которые могут работать в командной строке. Некоторые из них являются основными командами для печати, приостановки, выхода, а некоторые команды могут использоваться для различных целей, таких как проверка ping, проверка статистики сети и так далее. Вместо того, чтобы каждый раз открывать командную строку и вводить команду самостоятельно, вы можете создать файл пакетного сценария и просто открыть его для работы.
Есть много команд, которые вы можете использовать в своих пакетных сценариях для различных целей, однако некоторые основные команды перечислены ниже:
Примечание. Имя файла должно отличаться от системных файлов по умолчанию, чтобы оно не конфликтовало между собой и не создавало беспорядка. Вы также можете использовать расширение «.cmd», более ранние версии Windows не будут его запускать.
Написание простых пакетных скриптов
Пользователи могут попробовать простой пакетный скрипт, чтобы понять команды и работать над ними. Как и в других языках программирования, вы печатаете текст, чтобы понять метод печати; здесь мы будем печатать строку с помощью команды ECHO. Выполните следующие шаги, чтобы создать свой первый пакетный скрипт:
- Удерживая клавишу Windows, нажмите S, чтобы открыть функцию поиска. Теперь введите «Блокнот» и нажмите Enter, чтобы открыть блокнот.Открытие блокнота через функцию поиска
- Следуя приведенным выше основным командам, вы можете написать простой пакетный скрипт, как показано ниже: @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.
Пользователи могут делать гораздо больше с пакетными сценариями, следуя правилам пакетных сценариев.
Читайте также: