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

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

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

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

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

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

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

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

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

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, для разрешения выполнения скриптов. После этих манипуляций вы сможете запустить ваш скрипт.

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

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

Я приведу пример, когда мне нужно было отслеживать события ID 20291 или ID 11707.  И так откройте окно выполнить и введите в нем:

Запуск 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 скрипт можете запускать и через планировщик.

На этом у меня все, мы разобрали методы запуска скриптов PowerShell в Windows, с вами был Иван Семин. Материал сайта pyatilistnik.org

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

  1. Сергей:

    Иван, а эту политику можно выставить через GPO на windows 7 и КД на windows server 2008r2 ?

  2. Иван Семин:

    До можно

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

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