
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«ДОНСКОЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
Кафедра "Программное обеспечение вычислительной техники и автоматизированных систем"
АДМИНИСТРИРОВАНИЕ СЕРВЕРОВ WINDOWS 2003 SERVER R2 С ИСПОЛЬЗОВАНИЕМ POWERSHELL
Методические указания к выполнению лабораторной работы №10 по дисциплине «Операционные системы»
Ростов-на-Дону, 2011 г.
Составитель: к.т.н., доц. Долгов В.В.
Администрирование серверов Windows 2003 Server R2 с использованием PowerShell: методические указания к выполнению лабораторной работы №10 – Ростов н/Д: Издательский центр ДГТУ, 2011. – ??? с.
В методической разработке рассматриваются возможности нового языка сценариев PowerShell и его применение для автоматизации задач администрирования серверов. Приведены задания к лабораторной работе помогающие закрепить на практике полученные знания. Методические указания предназначены для студентов специальности 090102 "Компьютерная безопасность".
Печатается по решению методической комиссии факультета «Информатика и вычислительная техника».
Рецензент: к.т.н., доц. Гранков М.В.
Научный редактор: д.т.н., проф. Нейдорф Р.А.
Издательский центр ДГТУ, 2011
Введение в powershell
Большая часть задач, связанных с управлением локальными вычислительными сетями, представляет собой выполнение рутинных операций, ручная реализация которых может потребовать значительного времени. Решения, позволяющие автоматизировать такие задачи и повышающие производительность работы администраторов, возникли почти сразу же с появлением профессии администратора. Попытки улучшить состояние дел в области управления серверами Windows при помощи консольного интерфейса привели к появлению PowerShell – новой командной оболочки со своим собственным скриптовым языком. В данный момент PowerShell является отдельным приложением, которое можно установить на любую систему, использующую платформу Microsoft .Net Framework 2.0 (Windows XP, Vista, Server 2003), а начиная с Windows Server 2008 и Windows 7 данная оболочка будет поставляться вместе с ОС.
Оболочка PowerShell является объектно-ориентированной, что существенно отличает ее от других командных языков. Результатом выполнения команды в PowerShell является не просто текст, а объект платформы .NET. Этот объект представляет собой собственно данные и имеет набор присущих ему свойств и методов. Для того чтобы ориентироваться во множестве команд (cmdlet, командлет) оболочки и дать ориентир разработчикам новых объектов для них придумано специальное единообразное именование в виде комбинации «глагол-объект». Список наиболее часто используемых «глаголов» приведен в таблице 1. Полный перечень «глаголов» поддерживаемых PowerShell можно найти в [1].
Таблица 1. Часто используемые «глаголы» PowerShell
«Глагол» |
Описание |
add |
Добавляет объект к коллекции или данные к объекту (если это позволяется типом объекта). |
clear |
Очищает свойства объекта, устанавливая их в начальное значение. При этом сам объект не удаляется из коллекции. |
copy |
Копирует объект, создавая его полную копию в рамках пространства имен к которому он принадлежит. |
export |
Экспортирует данные объекта или коллекции объектов в, как правило, текстовые файлы файловой системы ОС. |
find |
Ищем объект внутри коллекции на основании набора параметров. |
get |
Запрашивает данные из объекта или коллекции. Параметры командлета зависят от коллекции (пространства имен) с которым производится работа. |
new |
Создает новый объект указанного типа. Тип и параметры командлета зависят от типа объекта к которому применяется команда. |
out |
Выводит данные, поступающие на вход команды в указанный (объектом) поток вывода. |
remove |
Удаляет объект из коллекции (пространства имен) объектов. Удаляемый объект определяется либо непосредственным значением, либо по значению его свойств (множество которых зависит от типа удаляемого объекта). |
set |
Изменяет (и иногда создает) значение объекта в коллекции. |
В состав PowerShell включена довольно обширная справочная система доступная через команду «Get-Help», необязательным параметром которой является имя другой команды, справку по которой мы хотим получить (рис. 1).
Рисунок 1. Вывод справки по команде «add-computer»
Поскольку PowerShell оперирует не текстом, а объектами, при перенаправлении элементом обмена информации является объект, вместе со своей структурой. Такая возможность позволяет оперировать с объектами – отбирать их по заданному фильтру, сортировать, группировать и т. д. Для организации такого конвейера (pipeline) в тексте сценария используется знак вертикальной черты «|». При обнаружении такого знака интерпретатор передает объекты от одного командлета другому в качестве входных параметров. Простейшим примером может служить набор команд, выводящих на экран названия запущенных на компьютере сервисов:
Get-Service | Where-Object { $_.Status -eq "Running" } | Select-Object DisplayName
Большое внимание в новой оболочке уделено безопасности. Так для борьбы с возможной подменой команд для вызова скрипта, путь к которому не совпадает с путями, заданными в системной переменной «Path», необходимо явно указать его расположение. Даже в том случае, когда скрипт расположен в папке, являющейся для оболочки текущей, необходимо указать путь в таком виде «.\имя_файла».
Еще одним механизмом обеспечения безопасности является политика выполнения сценариев. Изначально она настроена так, что даже при правильном вызове сценария его выполнение будет запрещено. Политика выполнения может работать в одном из четырех режимов, описанных в таблице 2.
Таблица 2. Режимы безопасности скриптов
Режим |
Описание |
Restricted |
Запрещен запуск любых сценариев (данный режим является режимом по умолчанию). |
AllSigned |
Разрешен запуск сценариев, имеющих цифровую подпись надежного издателя; сценарии, созданные пользователем и расположенные на локальном компьютере, также должны быть заверены центром сертификации. |
RemoteSigned |
Разрешен запуск сценариев, если они не являются доверенными, но созданы локальным пользователем; сценарии, загруженные из Интернета и не имеющие подписи надежного издателя, не исполняются. Для выполнения лабораторных работ необходимо установить данный режим безопасности. |
Unrestricted |
Разрешен запуск любых сценариев. Это самый опасный режим, т.к. сценарии могут выполняться даже при посещении вредоносных сайтов. |
Текущий режим политики можно узнать, выполнив команду Get-ExecutionPolicy в оболочке. Для изменения режима выполните команду Set-ExecutionPolicy с необходимым названием политики в качестве параметра.