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

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

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

Категория: Windows / Функционал Windows
Добавил:
access_timeОпубликовано: 29-08-2015
visibilityПросмотров: 18 154
chat_bubble_outlineКомментариев: 2

Привет друзья! Как и обещал, продолжаю рассказ о скриптовой оболочке Windows PowerShell, сегодня речь пойдёт о сценариях. 
Сценарии Windows PowerShell представляют собой обычные текстовые файлы с расширением .PS1, в которых записан код на языке PowerShell. Сценарии PowerShell можно писать поэтапно, непосредственно в самой оболочке, перенося затем готовый код во внешний текстовый файл. 
Автор статьи Ro8.

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

У нас есть машина с предустановленной Windows 7 в редакции Максимальная 64 разрядная
Запускаем на данной машине от имени администратора PowerShell
Выполнив команду get-help get-service посмотрим информацию о командлете get-service
Как видим, данный командлет получает службы на локальном или удаленном компьютере

1440864058 130

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

1440864057 131

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

1440864046 132

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

1440864022 134

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

1440864023 135

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

1440864030 136

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

1440864050 137

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

1440864028 138

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

1440863989 139

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

1440864031 140

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

1440863995 141

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

1440863999 142

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

1440864028 143

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

1440863983 144

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

1440864045 145

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

1440863981 146

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

1440864031 147

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

1440863988 148

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

1440864034 150

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

1440864019 151

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

1440863975 152

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

1440864058 153

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

1440864023 154

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

1440863978 155

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

1440863996 156

tagsКлючевые слова
     Рекомендуем другие статьи по данной теме
Ctrl
Enter
Заметили ошибку

Выделите и нажмите Ctrl+Enter

Windows, Функционал Windows
Сценарии в Windows PowerShell 2.0