Сценарии в Windows PowerShell 2.0
Привет друзья! Как и обещал, продолжаю рассказ о скриптовой оболочке Windows PowerShell, сегодня речь пойдёт о сценариях.
Сценарии Windows PowerShell представляют собой обычные текстовые файлы с расширением .PS1, в которых записан код на языке PowerShell. Сценарии PowerShell можно писать поэтапно, непосредственно в самой оболочке, перенося затем готовый код во внешний текстовый файл.
Автор статьи Ro8.
Сценарии в Windows PowerShell 2.0
У нас есть машина с предустановленной Windows 7 в редакции Максимальная 64 разрядная
Запускаем на данной машине от имени администратора PowerShell
Выполнив команду get-help get-service посмотрим информацию о командлете get-service
В данной статье мы напишем два сценария PowerShell. Первый сценарий после его выполнения отобразит список служб на компьютере пользователя
Второй сценарий после его выполнения отсортирует все службы на компьютере пользователя на запущенные и остановленные.
Сценарии будем писать используя интегрированную в Windows PowerShell среду сценариев Windows PowerShell ISE. Запускаем ее
В правой части окна Windows PowerShell ISE пишем одну за другой две команды: clear и get-service
Команда clear выполняет очистку окна командной оболочки PowerShell
Сохраним сценарий в заранее созданной папке My_scripts под именем Service. В строке Тип файла выбираем Скрипты PowerShell
Сохраненный сценарий Service.ps1
Теперь нам нужно отсортировать службы на компьютере на запущенные и остановленные
Как видим, после выполнения команды get-service | sort-object status службы на компьютере отсортировались на остановленные и запущенные
В правой части окна Windows PowerShell ISE пишем две команды: clear и get-service | sort-object status
Команда get-service | sort-object status выводит список служб на компьютере и сортирует их на запущенные и остановленные
Таким образом мы имеем в папке My_scripts сценарии Service.ps1 и Service_status.ps1
Перейдем в папку My_scripts введя команду cd C:\My_scripts
После перехода в папку My_scripts для просмотра ее содержимого введем команду get-childitem
Сценарии в Windows PowerShell запускаются следующим образом: ./Script.ps1, .\Script.ps1, где Script - имя сценария
У нас появляется ошибка "Не удается загрузить файл C:\My_scripts\Service.ps1, так как выполнение скриптов запрещено для данной системы"
Данная ошибка возникает из-за того, что действующая политика выполнения сценариев в запущенном экземпляре PowerShell запрещает выполнение каких-либо сценариев.
Всего существует четыре политики выполнения сценариев, а именно:
Restricted - запрещено выполнение любых сценариев
AllSigned - разрешается выполнение всех сценариев с доверенной цифровой подписью (локалные и удаленные)
RemoteSigned - разрешаются все локальные, а удаленные должны обладать доверенной цифровой подписью
Unrestricted - разрешено выполнение любых сценариев
Для того, чтобы определить какая политика выполнения сценариев активирована в запущенном экземпляре PowerShell, выполним команду get-executionpolicy
Как видим, в запущенном экземпляре PowerShell активирована политика выполнения сценариев Restricted, то есть в данном случае запрещено выполнение любых сценариев
Для изменения политики выполнения сценариев нужно выполнить команду set-executionpolicy "……" где вместо кавычек с точками нужно указать одну из четырех политику выполнения сценариев
Изменим политику выполнения сценариев на RemoteSigned, введя команду set-executionpolicy RemoteSigned
После выполнения команды set-executionpolicy RemoteSigned появится сообщение о том, что изменение политики выполнения сценариев может подвергнуть компьютер риску и спрашивается
После изменения политики выполнения на RemoteSigned убедимся, что данная политика установлена в запущенном экземпляре PowerShell, введя команду get-executionpolicy
После изменения политики выполнения сценариев запускаем наш сценарий Service.ps1, введя ./Service.ps1
Как видим, сценарий Service_status.ps1 отработал. После выполнения данного сценария можно видеть как остановленные службы отображены отдельно от запущенных
Ctrl
Enter
Заметили ошибку
Выделите и нажмите Ctrl+Enter