ЛР. Сетевые службы. Установка и удаление сетевых служб. Привязка служб

  • doc
  • 25.04.2020
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала 026. ЛР. Сетевые службы. Установка и удаление сетевых служб. Привязка служб.doc

Лабораторная работа № 5

 

Тема: Сетевые службы. Установка и удаление сетевых служб. Привязка служб. Привязка протоколов. Обзор возможностей Windows PowerShell.

 

Цель работы – научиться использованию ключевых возможностей Windows PowerShell для выполнения различных административных задач.

 

Предварительные требования – практическая работа выполняется на компьютере WS2008- DC.

 

Работа для выполнения на виртуальной машине

 

Упражнение 1. Добавление компоненты Windows PowerShell, используя Диспетчер сервера.

Методические указания:

1.     Запустите Диспетчер сервера à Компоненты à Добавить компоненты

2.      

Название окна

Действие

Выбор компонента

Поставьте флажок напротив Windows PowerShell

Подтвердите выбранные элементы

Установить

Результаты установки

Закрыть

 

Упражнение 2. Запуск среды Windows PowerShell.

Методические указания:

1.     Пуск à Все программы à Windows PowerShell 1.0 и запустите Windows PowerShell

2.       Выполним первую команду в Windows PowerShell. Для первого знакомства вполне подойдёт команда help. Внимательно изучите выведенную на экран информацию.


Краткий справочник:
Alias
– псевдоним;
Cmdlet – командная;
Provider – поставщик;
HelpFile – помощь;
Synopsis – краткий обзор.

 

3.     Исполните из командной строки:

Имя команды

Описание команды

Get-Command

На экран будет выведен список всех встроенных команд.

Get-Service

Служит для получения списка всех сервисов, запущенных на данном компьютере.

Get-Process

Служит для получения списка всех процессов, запущенных в настоящий момент на вашем компьютере.

Get-Process <имя_команды>

Для получения информации только об одном процессе в качестве аргумента команды Get-Process задаётся имя этого процесса

Get-Process w*

На экран должна быть выведена информация обо всех запущенных процессах, начинающихся с w

По умолчанию информация должна быть выводиться в виде таблицы, но на самом деле все команды возвращают объекты. Эти объекты могут быть переданы на вход другим командам с помощью символа «|»

Get-Process i*|format-list

Объекты будут отформатированы в виде списка.

Help format*

Получение подробной информации о различных форматах.

Виды возможных форматов:

Name

Category

Synopsis

Format-List

Cmdlet

Форматирует вывод как список свойств, в котором каждое свойство выводится на новой строке.

Format-Custom

Cmdlet

Для форматирования вывода используется пользовательское представление.

Format-Wide

Cmdlet

Форматирует объекты в виде широкой таблицы, в которой отображается только одно свойство каждого объекта.

Format-Table

Cmdlet

Форматирует вывод в виде таблицы.

 

4.     Исполните из командной строки процессы:

a.   Просмотр всех свойств объекта, полученных при выполнении команды Get-Process:

Get-Process | Get-Member

b.  Операция фильтрации:

Get-Process | where {$_.handlecount –gt 400}

c.   Операция сортировки

Get-Process | where {$_.handlecount –gt 400} | sort-object Handles

d.  Выполним команду Get-Process | Get-Member Companyпри форматировании по умолчанию невозможно получить желаемые данные. Для этого преобразуем полученную команду в

Get-Process | Get-Member Company | Format-List

Get-Process | Get-Member Company | Format-Table -GroupBy Company name, description. handles

e.   Произведём сортировку объектов по свойству WS (working set) и выбор 5 процессов, занимающих больше всего памяти

Get-Process | sort-object –property WS –descending | select-object –first 5

f.    Команда Stop-Process позволяет остановить запущенный процесс. (Перед выполнением операции не забудьте  запустить блокнот операцией  notepad)

Get-Process notepad | Stop-Process

Такая возможность не всегда является безопасной, поэтому лучше использовать подобные команды с опцией whatif, которая показывает, что произойдёт при выполнении той или иной команды, но на самом деле команда не выполняется.

Get-Process notepad | Stop-Process -whatif

Кроме того, можно указывать на необходимость подтверждения перед выполнением команды:

Get-Process notepad | Stop-Process -confirm

5.     Статус политики.

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

a.   Просмотр текущего статуса политики выполнения

Get-ExecutionPolicy

В случае установки по умолчанию вы должны получить статус Restricted

b.  Для смены статуса используют команду:

Set-ExecutionPolicy <статус_политики>

Рассмотрим, какие статусы политики выполнения возможны:

ü   Restrictedэта политика выполнения по умолчанию. Допускает отдельные команды, но сценарий выполнять нельзя.

ü   AllSigned – здесь выполнение сценариев разрешено, но необходимо наличие цифровой подписи надежного издателя на всех сценариях и файлах конфигураций, включая сценарии, написанные на локальном компьютере. Также такой политике запрашивают подтверждение перед выполнением сценариев надежных издателей. Однако при этом существует опасность того, что подписанные, но вредоносные сценарии выполняются.

ü   RemoteSigned – при таком статусе политики выполнение сценариев также разрешено. Необходимо наличие цифровой подписи надежного издателя на всех сценариях и файлах конфигураций, загруженных из Интернета (включая электронную почту и программы мгновенного обмена сообщениями). Нет необходимости в цифровых подписях на сценариях, запускаемых с локального компьютера. Не запрашивают подтверждения перед выполнением сценариев надежных издателей. Подписанные, но вредоносные сценарии также выполняются.

ü   Unrestricted – самая демократичная политика, позволяет запускать неподписанные сценарии. Сценарии и файлы конфигурации, загруженные из Internet, включая Microsoft Outlook, Outlook Express и Windows Messenger, выполняются после предупреждения, что данный файл был загружен из Интернета. Как и следовало ожидать, при таком статусе также возможно выполнение вредоносных сценариев. Думаю, использование данного статуса политики выполнения возможно только на тестовых машинах, так как в реальных сетях это крайне небезопасно.

 

В зависимости от специфики выполняемых серверами задач рекомендуется использовать RemoteSigned, в случаях, когда выполняются преимущественно сценарии собственного написания, AllSigned, когда выполняются сценарии, полученные из внешних источников. Для нашего упражнения устанавливаем статус политики Unrestricted либо RemoteSigned.

 

Исполните из командной строки Set-ExecutionPolicy RemoteSigned

но после окончания тестирования не забудьте снова включить данную опцию с помощью следующей команды:

Set-ExecutionPolicy Restricted

 

Упражнение 3. Работа с файловой системой

Разберём основные команды Windows PowerShell, применяемые для манипуляций с файловой системой: new-item, copy-item, rename-item, remove-item.

Методические указания:

1.     New-Item(создание):

У операции есть alias(псевдоним) – ni

a.   Создание нового подкаталога

New-Item <название_каталога>–itemtype directory

Создадим подкаталог TextFiles в текущем каталоге:

New-Item TextFiles -itemtype directory

 

b.  Создание нового файла

New-Itempath <символьное_обозначение_каталога> –name <имя_файла> -typefile

Создадим новый файл psdemo.txt в текущем каталоге:

New-Item –path . –name psdemo.txt -type “file”

2.     Copy-Item(копирование):

У операции есть alias(псевдонимы) – cpi, cp, copy

Copy-Item <расширение> <Назначение>
Если применять данную команду в пакетном файле, то имеет смысл сделать её более понятной, указав параметры –
path(источник) и –destination (приемник)
Copy-Itempath ‘<символьное_обозначение_каталога >\*<расширение>’ –destination <Назначение>

 

Скопируем все файлы с разрешением .txt в подкаталог TextFiles :

Copy-Item *.txt TextFiles
или
Copy-Item –path ‘.\*.txt’ –destination ‘.\TextFiles’

 

3.     Set-location (переход в другой подкаталог)

У операции есть alias(псевдоним) – sl

Перейдём в подкаталог TextFiles. Для этого

Set-location TextFiles

4.     Rename-item (переименование файла)

Переименуем psdemo.txt в psdemo.bak. Для этого:

Rename-item psdemo.txt   psdemo.bak

5.     Move-item (перенос файла)

Перенесём наш файл на один уровень вверх. Для этого:

move-item psdemo.bak ..\

 

6.     Перейдём в другой каталог при помощи операции Set-location

sl ..

7.     Remove-item (удаление)

Манипуляции с файловой системой мы завершим удалением всего каталога TextFiles.

Поскольку в каталоге содержатся файлы, применяется опция –recurse, если эта опция не указана, то Windows PowerShell запросит подтверждение перед выполнением команды.

remove-item TextFilesrecurse

 

Упражнение 4. Работа с реестром

При выполнении различных настроек и попытках обнаружения каких-либо параметров нам иногда приходится обращаться к системному реестру в поисках ключей, значений и т.п. С использованием возможностей Windows PowerShell эта задача может быть решена достаточно простым способом. Давайте рассмотрим пример работы с реестром из среды Windows PowerShell, в котором найдём и скопируем все данные, содержащие строку «PowerShell», а затем выведем первые два найденных объекта.

Методические указания:

1.   Первая команда использует алиас sl и изменяет наше текущее положение с файловой системы на ветвь HKEY_CURRENT_USER  sl hkcu:\ . Отметим, что как и в случае работы с файловой системой, PowerShell применяет специальный провайдер для доступа к реестру.

2.   Следующая команда загружает содержимое реестра HKEY_CURRENT_USER в переменную reg

$reg=gci . –recea silentlycontinue

Для этого мы используем команду get-childitem (алиас gci), принцип работы которой аналогичен работе с файловой системой. Первый аргумент этой команды – «.» – указывает на то, что мы хотим получить содержимое текущей ветви реестра – HKEY_CURRENT_USER. Второй аргумент является сокращением от опции –recurse и указывает на то, что нам нужен рекурсивный сбор данных из всех подветвей текущей ветви реестра. Третий –  -ea silentlycontinueуказывает на то, что команда должна продолжать выполняться даже в случае возникновения ошибок, связанных с недостатком прав доступа к определённым ветвям реестра.

3.   Следующая команда копирует из реестра данные, содержащие строкуPowerShell’.

$s=$reg | % {if ((gp $_.pspath)-match ‘PowerShell’){$_.pspath}}

Мы начинаем с того, что берем объект reg и на каждом шаге сохраняет элемент в специальном об PowerShell с именем выполняться на каждом шаге выполнения команды for-each. Внутри блока for-each мы используем проверку if для того, чтобы узнать, соответствует ли текущая запись реестра и ее свойство pspath, которые мы получаем через обращение к команде get-itemproperty (через алиас gp), нашему критерию – наличию строки `PowerShell`. Если соответствие найдено, мы возвращаем значение свойства pspath. Все найденные соответствия сохраняются в объекте s.

4.   Работу с реестром мы завершаем перенаправлением результатов поиска в команду select-object (через алиас select) и показываем два первых найденных результата:

$s| select- first 2

5.   В качестве упражнения перенаправьте финальные результаты в файл с помощью команды out-file

 

Упражнение 5 Доступ к системному журналу

Для обнаружения причин сбоев мы часто обращаемся к системному журналу, в котором хранится множество полезной информации о событиях, происходивших в системе . Обычно для исследования системного журнала применяется утилита  Event Viewer (eventvwr.exe). В PowerShell мы можем воспользоваться встроенными командами, например, командой get-eventlog, для быстрого исследования содержимого системного журнала.

Методические указания:

1.     Убедимся в существовании журнала:

get-eventlog –list

Эта команда загружает ключевую информацию из системного журнала. Без использования опции –list PowerShell запросит точное указание названия системного журнала.

2.     Извлечём записи из системного журнала, которые имеют тип ‘Error

$bad = get-eventlog “System” |  where-object { $_.EntryType -eq “Error”}

Мы используем команду get-eventlog, которой указываем параметр «System» для извлечения только системных записей, -- мы могли бы более чётко задать это, применив параметр LogName. Содержимое переменной $bad передается в вход команде where-object для фильтрации только интересующих нас записей. В качестве аргументов команды where-object мы указываем на то, что ищем только записи, у которых свойства EntryType равна “Error”.

3.    Выведем на экран 5 последних записей об ошибках, используя для этого команду select-object с параметром – last:

$bad | select-objectlast 5

 

Упражнение 6. Доступ к процессам

Еще одна задача, с которой могут столкнуться ИТ- специалисты, связана с обнаружением аномалий в работе системы, например процессов, которые потребляют большие объемы памяти. Давайте посмотрим , как эта задача решается средствами Windows PowerShell.

Методические указания:

1.   Сохраняем информацию обо всех процессах, запущенных на данном компьютере, в переменной $allprocs:

$allprocs = get-process

2.   После этого мы перенаправляем полученную информацию команде for-each, которая тоже может быть указана алиасом % или foreach:

 $allprocs | foreach-object {if ($_.Virtualmemorysize –gt20MB){$_.name}}

Данная команда переберает все объекты связанные с процессом, и на каждом шаге сохраняет информацию во внутреннем объекте $_. Этот объект можно условно назвать текущем объектом. В качестве параметров для for-each мы указываем операцию сравнения значения свойства Virtualmemorisize с интересующим нас размером памяти (20Мб в нашем примере). Если значение этого свойства для текущего объекта больше заданного, мы вывдим название процесса на экран. Отметим, что в PowerShell поддерживаются основные сокращения для указания размеров – KB, MB, GB, что очень полезно, поскольку не нужно считать нули при указании объемов памяти, дисков и т.п.

 

Упражнение 7. Доступ к WMI

Windows Management Instrumentation (WMI) – это реализация компанией Microsoft  стандарта Common Information Model (CMI). В большинстве случаев WMI применяется ИТ-специалистами для получения информации об аппаратном и программном обеспечении, установленном на данном компьютере. Как мы увидим в следующем примере, использование Windows PowerShell существенно облегчает доступ к информации, хранимой в WMI.

Методические указания:

1.     Применим команду get-wmiobject для получения информации о файле, используемом для свопинга памяти на диск и сохранения этой информации в переменной $pfu:

$pfu = get-wmiobject –class ‘win32_pageFileUsage’

2.     Далее мы применим команду get-member для определения свойств, доступных для класса win32_pageFileUsage:

$pfu |get-member – membertype property where-object {$_.name –notematch ‘_’}

3.     Обычно для нахождения информации по определённому классу можно использовать команду get-member без указания параметров, но в нашем примере нас интересуют только доступные свойства и только те из них, которые не содержат в имени символ подчёркивания. Чтобы узнать о существовании класса WMI win32_pageFileUsage (ведь известно, что в WMI поддерживается свыше тысячи классов, помимо этого ряд приложений добавляет свои классы), вы можете применить команду:

get-wmiobjectlist

для получения списка всех существующих в системе классов.

4.     После того как мы определили доступные нам свойства класса, мы выводим содержимое интересующих нас свойств на экран:

$pfu.caption; $pfu.currentusage

 

 

Контрольные вопросы к лабораторной работе №5

 

1.       Что необходимо для статуса политики RemoteSigned?

2.       Для чего используются псевдонимы операций?

3.       Какой псевдоним у операции alias?

4.       Всегда ли допустимо использование псевдонима? От чего это зависит?

5.       Что такое РЕЕСТР? Для чего он нужен?

6.       Как убедится в существовании журнала?

7.       Windows PowerShell - это...?