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

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

  • автор:

Как создать и запустить сценарий PowerShell в Windows 10 – инструкция по шагам

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

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

Это означает, что при двойном щелчке .ps1 файла в системе Windows 10 ничего не произойдёт, и если вы пытаетесь выполнить скрипт в PowerShell, вы получите сообщение об ошибке: «не может быть загружен, потому что запрещено выполнение сценариев в этой системе». Тем не менее, запускать сценарии на вашем устройстве довольно просто. Вам просто нужно включить правильную политику выполнения.

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

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

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

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

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

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

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

  1. Откройте приложение «Блокнот».
  2. Создайте или вставьте сценарий. Например: Write-Host ««Поздравляем! Ваш первый скрипт успешно выполнен»» Вышеприведенный скрипт просто выводит на экране фразу «Поздравляем! Ваш первый скрипт успешно выполнен».
  3. Сохраните файл под любым удобным названием, например, first_script.ps1

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

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

  1. Откройте системный поиск и введите запрос Windows PowerShell ISE, щелкните правой кнопкой мыши верхний результат, и выберите Запуск от имени администратора или выберите соответствующий параметр в правой колонке. Запуск интегрированной среды сценариев
  2. В PowerShell ISE создайте пустой файл .ps1, в котором можно создать или вставить скрипт. Например: Write-Host ««Поздравляем! Ваш первый скрипт успешно выполнен»» Создаём скрипт для PowerShell через ISE
  3. Откройте меню Файл и нажмите кнопку Сохранить .
  4. Введите название сценария. Например, first_script_ise.ps1
  5. Сохраните скрипт.

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

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

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

  1. Откройте поиск и введите PowerShell, щелкните правой кнопкой мыши в верхний результат и выберите Запуск от имени администратора.
  2. Введите следующую команду, чтобы разрешить выполнение скриптов и нажмите клавишу Enter : Set-ExecutionPolicy RemoteSigned
  3. Укажите тип А и ещё раз нажмите клавишу Enter . Разрешим запуск скриптов PowerShell
  4. Введите следующую команду для запуска скрипта и нажмите клавишу Enter : & «C:\PATH\to\SCRIPT\first_script.ps1» Запуск файла скрипта PowerShellВ приведенной выше команде обязательно измените PATH\to\SCRIPT на расположение вашего скрипта.

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

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

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

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

Как запустить скрипт (действие) при запуске (завершении) определенной программы в Windows?

date

16.11.2022

user

itpro

directory

PowerShell, Windows 10, Windows Server 2016, Групповые политики

comments

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

В этой статье мы рассмотрим, как отследить событие запуска определённой программы (процесса) в Windows и выполнить какое-то действие (запустить скрипт, отправить email и т.д.). В качестве примера мы будем отслеживать запуск процесса notepad.exe , когда пользователь открывает эту программу, Windows автоматически запускает определенный PowerShell скрипт.

Прежде всего в Windows нужно настроить политику аудита процессов. На отдельном компьютере можно настроить политику аудита через редактор локальной GPO ( gpedit.msc ), если нужно настроить политику на компьютерах/серверах домена, воспользуйтесь доменным редактором gpmc.msc .

    Перейдите в раздел Computer Configuration ->Windows Settings ->Security Settings ->Local Policies ->Audit Policy;

политика аудита запуска процессов в windows (Audit process tracking)

  • Откройте свойства политики Audit process tracking, включите ее для событий Success.
  • Обновите локальные политики: gpupdate /force
  • Теперь при запуске любого процесса в Windows в журнале Event Viewer -> Windows Logs -> Security будет появляться событие с EventID 4688 (A new process has been created). В событии указано, кто запустил процесс ( Account name ), имя процесса ( New Process Name ) и имя родительского процесса ( Creator Process Name ).

    событие в event viewer EventID 4688 (A new process has been created).

    Вы можете сделать выборку событий запуска программы из журнала событий по определенному процессу с помощью PowerShell командлета Get-WinEvent:

    В результате мы получили таблицу с указанием пользователей, которые запускали определённую программу.

    powershell скрипт для получения времени запуска программ и пользователей, которые их запускали

    Теперь нужно создать задание планировщика, которое должно запускаться при появлении события 4688.

    1. Запустите Task Sheduler ( taskschd.msc ) и создайте новое задание ->Create Task;
    2. Укажите имя задания и укажите, что оно должно запускаться для всех пользователей (When running the task, use the following user account ->BUILTIN\Users). Если вы создаете задание планировщика через GPO, используйте формат %LogonDomain%\%LogonUser% ;
      создать задание планировщика
    3. На вкладке Actions задайте действие, которое вы хотите выполнить. В этом примере я запускаю PowerShell скрипт (вызываем программу powershell.exe с атрибутами -ExecutionPolicy Bypass -file «C:\PS\ProcessRun.ps1 »
      запуск powershell скрипта из task sheduler
    4. Теперь нужно привязать задание планировщика к событию Windows. Перейдите на вкладку Trigger ->New ->On an event ->Custom ->New Event Filter;
      создать тригер для event viewer (New Event Filter)
    5. В открывшемся окне нужно указать следующие параметры фильтра событий:Event logs: Security
      Event ID: 4688
      Keywords: Audit Success
      привязать задание к событию windows
    6. Теперь перейдите на вкладку XML и включите опцию Edit query manually. Отредактируйте запрос, добавив в фильтр строку: and *[EventData[Data[@Name=’NewProcessName’] and (Data=’C:\Windows\System32\notepad.exe’)]]
    7. Должен получится такой XML запрос:

    xml запрос для отслеживания события запуска процесса



  • Сохраните задание планировщика.
  • Попробуйте теперь запустить процесс notepad.exe. Теперь каждый раз, когда пользователь запускает блокнот, выполняется ваш PowerShell скрипт.

    выполнить powershell скрипта при запуске программы

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

    Если вам нужно отслеживать завершение какой-то программы, используйте Event ID 4689 — A process has exited. После завершения программы иногда бывает нужно запустить скрипт резервного копирования и т.д.

    Ранее мы рассматривали PowerShell скрипт для автоматического перезапуска процесса в случае его остановки. Решение с отслеживанием события запуска/остановки процессов более элегантное и не требует наличия запущенного скрипта PowerShell для мониторинга работающих процессов.

    Предыдущая статьяПредыдущая статья Следующая статья Следующая статья

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

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

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

    Автор Kaimi Опубликовано 9 марта, 2010 8 марта, 2010 Рубрики Windows Метки cmd, Perl, командная строка, консоль, консоль windows

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

    Настройка серверов windows и linux

    Всем привет сегодня хочу рассказать как запустить скрипт PowerShell в Windows. Представьте ситуацию вы написали скрипт который сильно упрощает вам вывод информации по Active Directory, вы открываете оснастку powershell прописываете путь к своему скрипту нажимаете enter и получаете ошибку.

    Не удается загрузить файл , так как выполнение скриптов запрещено для данной системы. Введите «get-help about_signing» для получения дополнительных сведений.

    Смотрим как ее решить.

    Ошибки при запуске скрипта PowerShell

    Как запустить скрипт PowerShell в Windows-02

    Как запустить скрипт PowerShell в Windows-02

    Import-Module : Невозможно загрузить файл C:\Program Files\WindowsPowerShell\Modules\VMware.VimAutomation.Sdk\12.2.0.17
    531155\VMware.VimAutomation.Sdk.psm1, так как выполнение сценариев отключено в этой системе. Для получения дополнительных сведений см. about_Execution_Policies по адресу https:/go.microsoft.com/fwlink/?LinkID=135170.
    строка:1 знак:1
    + Import-Module VMware.PowerCLI
    + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : Ошибка безопасности: (:) [Import-Module], PSSecurityException
    + FullyQualifiedErrorId : UnauthorizedAccess,Microsoft.PowerShell.Commands.ImportModuleCommand

    так как выполнение сценариев отключено в этой системе

    PowerShell обладает рядом режимов исполнения, которые определяют, какой тип кода разрешается выполнять. Все это управляется ключом реестра, живущим в HKLM. Существует 4 различных режима исполнения:

    • Ограниченный (Restricted): Политика исполнения по умолчанию, не допускает работу скриптов и разрешает работу лишь интерактивных команд.
    • Все подписанные (All Signed): Допускает работу всех скриптов. Правда, все скрипты и файлы конфигурации должны быть подписаны издателем, которому вы доверяете; данный режим подвергает вас риску работы подписанных (но вредоносных) скриптов, после получения подтверждения доверия издателю.
    • Удаленные подписанные (Remote Signed): Локальные скрипты работают без подписи. Все скачанные скрипты должны иметь цифровую подпись.
    • Неограниченный (Unrestricted): Все скрипты и файлы конфигурации, полученные из коммуникационных приложений, вроде Microsoft Outlook, Internet Explorer, Outlook Express и Windows Messenger работают после подтверждения, что вы понимаете, что файл исходит из Интернета; никакие цифровые подписи не требуются; данный режим подвергает вас риску работу неподписанных, вредоносных скриптов.

    По умолчанию для PowerShell используется режим «Ограниченный». В этом режиме, PowerShell работает лишь как интерактивная оболочка. Он не допускает работу скриптов, и загружает лишь те файлы конфигурации, которые подписаны издателем, которому вы доверяете.

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

    Чтобы запускать созданные собою скрипты, необходимо разрешить выполнение ненадежных скриптов с помощью команды Set-ExecutionPolicy remotesigned и подтверждением (Внимание. для выполнения этой команды необходимо запустить PowerShell с правами администратора). После этого можно вновь запустить выполнения скрипта.

    Как запустить скрипт PowerShell в Windows-03

    Как запустить скрипт PowerShell в Windows-03

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

    Set-ExecutionPolicy remotesigned

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

    Запуск taskschd.msc

    Далее вы щелкаете по библиотеке правым кликом и из контекстного меню выбираете пункт «Создать задачу«.

    Создание задачи в планировщике для запуска скрипта PowerShell

    Задаете имя задания, советую запускать скрипт PowerShell от имени учетной записи «СИСТЕМА (SYSTEM)«, это будет гарантировать, что задание точно отработает.

    Как запустить скрипт PowerShell в планировщике

    Поставьте галку «Выполнять с наивысшими правами»

    Настройка задачи в планировщике Windows

    Переходим на вкладку тригеры и создаем новый. В параметрах выберите «При событии«

    Запуск скриптов powershell по расписанию

    • Журнал — Приложение
    • Источник — MsiInstaller
    • Код события — 11707

    Тут тригер будет срабатывать, когда в логах появится событие 11707.

    параметры запуска скрипта PowerShell по расписанию

    В действие оставляем «Запуск программы». В программе указываем powershell, а в параметрах задайте путь до самого скрипта, через параметр -File c:\scripts\id11707.ps1.

    run powershell script

    В итоге у меня вышло вот так.

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

    Как видим, мое задание по запуску скрипта PowerShell успешно создано и отработало в планировщике Windows.

    Как выполнить скрипт powershell

    Запуск скрипта PowerShell через исполняемый файл exe

    Так же вы можете воспользоваться конвертированием скрипта PowerShell из формата ps1 в exe файл, после чего даже не потребуется менять политику запуска не подписанных скриптов. Так же exe скрипт можете запускать и через планировщик.

    Популярные Похожие записи:
    • Как установить vSphere PowerCLI последнюю версиюКак установить vSphere PowerCLI последнюю версию
    • Установка и управление модулями PowerShell
    • Как массово поменять пароль локального администратора в домене
    • Не открывается пуск в Windows 10, 100% решениеНе открывается пуск в Windows 10, 100% решение
    • Как открыть PowerShell, все методыКак открыть PowerShell, все методы
    • Ошибка установки Unable to resolve package source в PowerShellОшибка установки Unable to resolve package source в PowerShell

    Июл 16, 2021 15:22 Автор — Сёмин Иван

    3 Responses to Как запустить скрипт PowerShell в Windows

    PowerShell script :

    Если вы используете Windows в качестве хоста, вы можете использовать powershell -noexit «& «»C:\my_path\yada_yada\run_import_script.ps1″»» (enter)

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *