» Сценарии в Windows PowerShell 2.0
Информация к новости
  • Просмотров: 3 995
  • Автор: admin
  • Дата: 29-08-2015
29-08-2015

Сценарии в 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
Как видим, данный командлет получает службы на локальном или удаленном компьютере

Сценарии в Windows PowerShell 2.0

В данной статье мы напишем два сценария PowerShell. Первый сценарий после его выполнения отобразит список служб на компьютере пользователя
Второй сценарий после его выполнения отсортирует все службы на компьютере пользователя на запущенные и остановленные.
Для сохранения сценариев была заранее создана папка My_scripts

Сценарии в Windows PowerShell 2.0

Сценарии будем писать используя интегрированную в Windows PowerShell среду сценариев Windows PowerShell ISE. Запускаем ее

Откроется главное окно Windows PowerShell ISE

Сценарии в Windows PowerShell 2.0

Вводим команду get-service и выполняем ее нажав на Enter

Сценарии в Windows PowerShell 2.0

Как видим, команда get-service успешно отработала и вывела нам список служб на данном компьютере

Сценарии в Windows PowerShell 2.0

В правой части окна Windows PowerShell ISE пишем одну за другой две команды: clear и get-service
Команда clear выполняет очистку окна командной оболочки  PowerShell
Команда get-service выводит список служб на локальном или удаленном компьютере

Сценарии в Windows PowerShell 2.0

Выбираем Файл-Сохранить как

Сценарии в Windows PowerShell 2.0

Сохраним сценарий в заранее созданной папке My_scripts под именем Service. В строке Тип файла выбираем Скрипты PowerShell

Сценарии в Windows PowerShell 2.0

Сохраненный сценарий Service.ps1

Теперь нам нужно отсортировать службы на компьютере на запущенные и остановленные
Вводим команду get-service | sort-object status и нажимаем Enter

Сценарии в Windows PowerShell 2.0

Как видим, после выполнения команды get-service | sort-object status службы на компьютере отсортировались на остановленные и запущенные

Сценарии в Windows PowerShell 2.0

В правой части окна Windows PowerShell ISE пишем две команды: clear и get-service | sort-object status
Команда get-service | sort-object status выводит список служб на компьютере и сортирует их на запущенные и остановленные

Сценарии в Windows PowerShell 2.0

Выбираем Файл-Сохранить как

Сценарии в Windows PowerShell 2.0

Сохраняем сценарий в папке My_scripts под именем Service_status

Сценарии в Windows PowerShell 2.0

Таким образом мы имеем в папке My_scripts сценарии Service.ps1 и Service_status.ps1

Перейдем в папку My_scripts введя команду cd C:\My_scripts
После перехода в папку My_scripts для просмотра ее содержимого введем команду get-childitem
Как видим, в папке My_scripts находятся два сценария Service.ps1 и Service_status.ps1

Сценарии в Windows PowerShell 2.0

Сценарии в Windows PowerShell запускаются следующим образом: ./Script.ps1, .\Script.ps1, где Script - имя сценария
Вводим команду ./Service.ps1 и выполняем сценарий

Сценарии в Windows PowerShell 2.0

У нас появляется ошибка "Не удается загрузить файл C:\My_scripts\Service.ps1, так как выполнение скриптов запрещено для данной системы"
Данная ошибка возникает из-за того, что действующая политика выполнения сценариев в запущенном экземпляре PowerShell запрещает выполнение каких-либо сценариев.
Всего существует четыре политики выполнения сценариев, а именно:
Restricted - запрещено выполнение любых сценариев
AllSigned - разрешается выполнение всех сценариев с доверенной цифровой подписью (локалные и удаленные)
RemoteSigned - разрешаются все локальные, а удаленные должны обладать доверенной цифровой подписью
Unrestricted - разрешено выполнение любых сценариев
Сценарии в Windows PowerShell 2.0
Для того, чтобы определить какая политика выполнения сценариев активирована в запущенном экземпляре PowerShell, выполним команду get-executionpolicy
Как видим, в запущенном экземпляре PowerShell активирована политика выполнения сценариев Restricted, то есть в данном случае запрещено выполнение любых сценариев
Для изменения политики выполнения сценариев нужно выполнить команду set-executionpolicy "……" где вместо кавычек с точками нужно указать одну из четырех политику выполнения сценариев
Изменим политику выполнения сценариев на RemoteSigned, введя команду set-executionpolicy RemoteSigned
После выполнения команды set-executionpolicy RemoteSigned появится сообщение о том, что изменение политики выполнения сценариев может подвергнуть компьютер риску и спрашивается
действительно ли пользователь хочет изменить политику выполнения. Вводим Y и нажимаем Enter

Сценарии в Windows PowerShell 2.0

После изменения политики выполнения на RemoteSigned убедимся, что данная политика установлена в запущенном экземпляре PowerShell, введя команду get-executionpolicy
Как видим, политика выполнения сценариев изменилась на RemoteSigned

Сценарии в Windows PowerShell 2.0

После изменения политики выполнения сценариев запускаем наш сценарий Service.ps1, введя ./Service.ps1

Сценарии в Windows PowerShell 2.0

Как видим, сценарий Service.ps1 отработал и отобразил нам список служб на данном компьютере

Сценарии в Windows PowerShell 2.0

Теперь выполним сценарий Service_status.ps1, введя ./Service_status.ps1

Сценарии в Windows PowerShell 2.0

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

Сценарии в Windows PowerShell 2.0

Запущенные службы

Сценарии в Windows PowerShell 2.0

Дорогой посетитель, Вы можете задать на сайте любой вопрос и обязательно получите ответ!

Добавление комментария

Имя:*
E-Mail:
Комментарий:
Вопрос:
Сколько будет 5+2=?
Ответ:*
НАВИГАЦИЯ

 

 

 

Архив новостей Март 2017 (13)
Февраль 2017 (12)
Январь 2017 (6)
Декабрь 2016 (17)
Ноябрь 2016 (16)
Октябрь 2016 (22)
^
Копирование материалов сайта разрешается только с гиперссылкой на источник