Лабораторная работа № 6
Тема:
  Автоматизация управления Windows Server 2016 средствами PowerShell.
Цель:
  Изучить возможности среды PowerShell для администрирования сетей на основе Windows Server 2016.
1.1 Самостоятельно изучите назначение PowerShell и особенности запуска оболочки. Выполните все команды из официального справочного руководства Microsoft: https://docs.microsoft.com/ru-ru/powershell/scripting/learn/ps101/01-getting-started?view=powershell-5.1
1.2 Изучите также следующие главы учебника:
Справочная система - https://docs.microsoft.com/ru-ru/powershell/scripting/learn/ps101/02-help-system?view=powershell-5.1
Обнаружение объектов, свойств и методов - https://docs.microsoft.com/ru-ru/powershell/scripting/learn/ps101/03-discovering-objects?view=powershell-5.1
Остальной материал (при желании).
1.3 Исследуйте выполнение следующих простых сетевых команд из оболочки PowerShell:
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Select-Object -Property IPAddress
Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName . | Select-Object -ExpandProperty IPAddress
Get-WmiObject -Class Win32_PingStatus -Filter "Address='127.0.0.1'" -ComputerName . | Select-Object -Property Address,ResponseTime,StatusCode
Описание проблемы:
Если за одним компьютером-клиентом в сети работает большое количество пользователей, то со временем это приведет к накоплению их локальных копий профилей по адресу C:\Users. Это повлечет за собой уменьшение объема свободного дискового пространства. Следовательно, содержимое каталога C:\Users периодически необходимо очищать. Однако, если в компьютерах под управлением Windows XP можно просто удалить папки профилей, то на компьютерах с ОС Windows 7 и выше необходимо еще удалять идентификаторы пользователей в системном реестре по адресу: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\ (рисунок 2.1). Для одного компьютера эта операция не займет много времени, но для большого числа компьютеров данный процесс целесообразно автоматизировать.
Рисунок 2.1 – Идентификаторы пользователей в системном реестре
2.1 Создайте на компьютере-клиенте сценарий PowerShell. Для этого в строке поиска наберите PowerShell и запустите среду Windows PowerShell ISE от имени Администратора. Разверните область скриптов (если она свернута) и сохраните сценарий, дав ему имя DeleteLocalProfiles.ps1 (рисунок 2.2).
Рисунок 2.2 – Создание скрипта PowerShell
2.2 В окне скрипта введите следующий код:
2.3 Сохраните и закройте скрипт, скопировав предварительно в буфер обмена строку, разрешающую выполнение скриптов PowerShell. Запустите заново PowerShell (или PowerShell ISE) от имени Администратора. В область команд вставьте скопированный фрагмент и нажмите Enter. Появится запрос об изменении политики разрешения выполнения скриптов. Необходимо ответить «Да (Y)». Затем ведите путь к скрипту (например C:\DeleteLocalProfiles.ps1) и нажмите Enter. Результат работы скрипта представлен на рисунке 2.3.
Замечание:
Выполнение командлета Set-ExecutionPolicy Unrestricted -Scope Process будет необходимо каждый раз, когда вы будете запускать на выполнение любой из скриптов PowerShell.
Рисунок 2.3 – Удаление локальных копий профилей средствами PowerShell
3.1 Откройте редактор групповой политики Default Domain Policy. В дереве конфигурации перейдите по пути Конфигурация компьютера - Конфигурация Windows - Параметры безопасности - Конфигурация расширенной политики аудита - Политика аудита - Вход/выход. Настройте параметры «Аудит входа в систему» и «Аудит выхода из системы», установив для них значения «Успех и отказ» (рисунок 3.1). Обновите групповую политику. С этого момента на сервере в журналах безопасности Windows можно отслеживать события, связанные со входом и выходом в систему.
Рисунок 3.1 – Настройка аудита входа в систему и выхода из системы
3.2 Систематизируйте информацию их журналов Windows с помощью PowerShell. Для этого создайте скрипт и присвойте ему имя, например, NetUserHistory.
3.3 В окне скрипта введите следующий код:
3.4 В среде PowerShell запустите скрипт на выполнение. Результаты работы продемонстрируйте преподавателю.
В лабораторной работе №4 вы познакомились с методом создания учетных записей и профилей пользователей средствами командной строки. Вместе с тем, работать с *.bat-файлами не совсем удобно, так как зачастую возникают проблемы с кодировкой кириллицы, и подготовка *.bat-файлов занимает определенное время.
Существует альтернативный способ создания учетных записей – использование командлетов PowerShell, который будет рассмотрен в данном задании.
4.1 Подготовьте файл users.csv, содержащий следующие поля:
SurName – фамилия пользователя;
FirstName – имя пользователя;
Patronymic – отчество пользователя;
samAccountName – имя входа пользователя;
Password – пароль пользователя.
В файле должны содержаться записи минимум для 30 новых пользователей! Примерный вид файла представлен на рисунке 4.1.
Рисунок 4.1 – Содержимое файла users.csv
Замечание:
Вы можете использовать другие названия полей вместо предложенных. При этом не забудьте изменить соответствующие переменные в скрипте PowerShell. Можно также при необходимости добавить другие поля, например: адрес, телефон и т.д. Для этого укажите их в качестве значений соответствующих параметров команды New-ADUser.
4.2 Создайте скрипт PowerShell AddUser.ps1. Добавьте в скрипт следующий код:
Замечание:
Обратите внимание на место расположения файла users.csv. При необходимости измените путь на нужный вам.
4.3 Запустите скрипт на выполнение. Результат работы скрипта представлен на рисунке 4.2.
Рисунок 4.2 – Результат работы скрипта AddUser.ps1
В лабораторной работе №5 вы реализовали перенаправление папок «Мои документы» и «Рабочий стол» в каталоги \\profiles\%username%. Однако, поскольку перенаправленные папки создает система, то администратору на сервере будет отказано в доступе к этим папкам. Для восстановления доступа необходимо изменить текущего владельца перенаправленных папок на TESTDOMAIN\Администраторы. Но вместе с тем, в результате смены владельца «слетают» все свойства безопасности. Следовательно, пользователи при входе в систему не получат доступ к своему рабочему столу и документам.
Так как изменять владельца и настраивать заново свойства безопасности трудоемкий процесс, а для уважающего себя администратора не должно быть запретов на собственном сервере, то вам предлагается автоматизировать назначение разрешений на все перенаправленные папки с помощью PowerShell. Скрипт должен заменить владельцев подконтейнеров и объектов внутри каталогов \\profiles\%username%, а также заменить все записи разрешений дочерних объектов, наследуемых от объекта \\profiles\%username%.