Модуль 1 • Урок 3

Администрирование Windows и PowerShell

Откройте всю мощь управления корпоративной средой Windows. От Active Directory до автоматизации задач с помощью PowerShell — станьте архитектором домена.

1. PowerShell: Больше, чем просто командная строка

Если в Linux мы работали с текстом, то в PowerShell мы работаем с объектами. Это главное отличие и невероятное преимущество. Каждая команда (здесь она называется командлет) возвращает не просто текст, а структурированный объект со свойствами и методами.

Основы синтаксиса:

  • Структура "Глагол-Существительное": Все командлеты построены по интуитивно понятной схеме: Get-Process, Stop-Service, New-Item.
  • Конвейер `|`: Как и в Linux, передает результат одной команды другой. Но здесь передаются целые объекты, а не текст!
  • Справка: Команда Get-Help [имя_командлета] -Full — ваш лучший друг. Она покажет полное описание и примеры.
# Получить список всех процессов, отсортировать по использованию памяти и показать топ-5 Get-Process | Sort-Object -Property WS -Descending | Select-Object -First 5 # Получить информацию о службе 'Spooler' (Диспетчер печати) Get-Service -Name Spooler # Узнать IP-адрес компьютера Get-NetIPAddress

Мы будем использовать PowerShell для выполнения всех задач в этом уроке. Забудьте про клики мышкой — автоматизация наш путь.

2. Доменные службы Active Directory (AD)

Active Directory — это мозг и сердце корпоративной сети на Windows. Это централизованная база данных, которая хранит информацию обо всем: пользователях, компьютерах, принтерах, файловых ресурсах, политиках безопасности.

Домен vs Рабочая группа: В рабочей группе каждый компьютер сам по себе. В домене есть центральный сервер (контроллер домена), который управляет всем. Это обеспечивает централизованную аутентификацию и управление.

Ключевые компоненты AD:

  • Объекты: Пользователи, группы, компьютеры.
  • Контроллер домена (DC): Сервер, на котором работает AD. В сети их должно быть как минимум два для отказоустойчивости.
  • Организационные единицы (OU - Organizational Units): Это "папки" внутри AD для логической группировки объектов (например, OU "Бухгалтерия", OU "Серверы"). На OU применяются групповые политики.

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

3. Управление учётными записями

В доменной среде создание пользователя — это не просто локальная запись, а создание объекта в глобальной базе данных AD. Все команды для работы с AD начинаются с префикса `AD`.

# Найти пользователя 'b.gates' в Active Directory Get-ADUser -Identity b.gates # Создать нового пользователя. -Path указывает OU, куда его поместить New-ADUser -Name "Steve Ballmer" -GivenName "Steve" -Surname "Ballmer" -SamAccountName "s.ballmer" -UserPrincipalName "s.ballmer@cortex.corp" -Path "OU=Developers,DC=cortex,DC=corp" -AccountPassword (Read-Host -AsSecureString "Введите пароль:") -Enabled $true # Добавить пользователя в группу 'Domain Admins' (очень осторожно!) Add-ADGroupMember -Identity "Domain Admins" -Members "s.ballmer" # Отключить учетную запись Disable-ADAccount -Identity s.ballmer

4. Хранение паролей и политика доступа

Windows никогда не хранит пароли в открытом виде. Она хранит их хэши.

  • SAM (Security Account Manager): Локальная база данных на каждом компьютере (C:\Windows\System32\config\SAM), хранит хэши локальных пользователей.
  • NTDS.dit: Основная база данных Active Directory на контроллере домена. Хранит хэши всех доменных пользователей. Доступ к ней — главная цель атакующих.

Политика паролей настраивается через Групповые политики (о них ниже) и определяет требования к паролям: минимальная длина, сложность, срок действия, история паролей.

LAPS (Local Administrator Password Solution) — бесплатный инструмент от Microsoft для автоматической смены и централизованного хранения паролей локальных администраторов на всех компьютерах в домене. Это must-have для безопасности.

5. Управление групповыми политиками (GPO)

Групповая политика (Group Policy Object, GPO) — это самый мощный инструмент централизованного управления в Windows. Это набор правил, который применяется к пользователям или компьютерам, находящимся в определенном OU.

Что можно сделать с помощью GPO? Практически все:

  • Настроить политику паролей.
  • Запретить запуск определенных программ.
  • Автоматически устанавливать принтеры.
  • Запретить использование USB-накопителей.
  • Настроить параметры Windows Firewall.
  • Установить стандартные обои на рабочий стол.

Управление GPO через PowerShell позволяет автоматизировать создание и применение политик.

# Создать новую GPO New-GPO -Name "CORTEX_Workstation_Security" # Привязать GPO к OU 'Workstations' New-GPLink -Name "CORTEX_Workstation_Security" -Target "OU=Workstations,DC=cortex,DC=corp" # Установить с помощью GPO значение в реестре (например, отключить автозапуск USB) Set-GPRegistryValue -Name "CORTEX_Workstation_Security" -Key "HKLM\Software\Policies\Microsoft\Windows\DeviceInstall\Restrictions" -ValueName "DenyRemovableDevices" -Type DWord -Value 1

6. Строение реестра и его возможности

Реестр Windows — это иерархическая база данных, в которой хранится вся информация о конфигурации системы, настройках программ, профилях пользователей и оборудовании. PowerShell представляет реестр в виде дисков, как файловую систему.

Основные "кусты" (Hives) реестра:

КустСокращениеОписание
HKEY_CLASSES_ROOTHKCRАссоциации файлов (какая программа открывает .txt).
HKEY_CURRENT_USERHKCUНастройки текущего вошедшего в систему пользователя.
HKEY_LOCAL_MACHINEHKLMНастройки, общие для всех пользователей на данном компьютере (софт, драйверы).
HKEY_USERSHKUПрофили всех пользователей, которые когда-либо логинились.
HKEY_CURRENT_CONFIGHKCCИнформация о текущем профиле оборудования.

Осторожно! Неправильное изменение реестра может привести к полной неработоспособности системы. Всегда делайте резервную копию перед внесением изменений.

# Перейти на "диск" реестра HKLM Set-Location HKLM: # Посмотреть содержимое "папки" Get-ChildItem Software\Microsoft\Windows # Проверить, существует ли ключ Test-Path "HKLM:\SYSTEM\CurrentControlSet\Services\Dhcp" # Создать новый ключ и значение New-Item -Path "HKCU:\Software\CortexApp" New-ItemProperty -Path "HKCU:\Software\CortexApp" -Name "Version" -Value "1.0"

7. Службы аудита: Кто, что, когда?

Аудит позволяет отслеживать и записывать в журнал безопасности все важные события в системе. Это критически важно для расследования инцидентов и контроля действий пользователей.

Аудит настраивается через Групповые политики. Вы можете включить аудит для таких событий, как:

  • Успешные и неудачные попытки входа в систему.
  • Доступ к файлам и папкам.
  • Изменение членства в группах (например, добавление кого-то в "Администраторы домена").
  • Изменение политик.

Все события записываются в Журнал событий (Event Viewer). В PowerShell для работы с ним используется командлет Get-WinEvent.

# Найти последние 10 событий неудачного входа в систему (Event ID 4625) Get-WinEvent -FilterHashtable @{LogName='Security'; ID=4625} -MaxEvents 10 # Найти все события, связанные с очисткой журнала безопасности (признак действий злоумышленника) Get-WinEvent -LogName Security | Where-Object {$_.ID -eq 1102}

8. Цифровые подписи и сертификаты

Цифровая подпись гарантирует две вещи: подлинность (код действительно написан тем, кто заявлен) и целостность (код не был изменен после подписи).

В контексте PowerShell это напрямую связано с политикой выполнения (Execution Policy). Это мера безопасности, которая определяет, можно ли запускать скрипты на данном компьютере.

  • Restricted — (по умолчанию) Запуск скриптов запрещен.
  • AllSigned — Можно запускать только скрипты, подписанные доверенным издателем.
  • RemoteSigned — Можно запускать локальные скрипты, а скачанные из интернета должны быть подписаны.
  • Unrestricted — Можно запускать любые скрипты (небезопасно).
# Посмотреть текущую политику выполнения Get-ExecutionPolicy # Установить политику, требующую подписи для скачанных скриптов # Требуются права администратора Set-ExecutionPolicy RemoteSigned # Проверить подпись файла скрипта Get-AuthenticodeSignature -FilePath "C:\Scripts\MyScript.ps1"

9. Итоговое практическое задание

Вы — администратор домена `cortex.corp`. Ваша задача — создать безопасное и управляемое окружение для нового отдела `Marketing`.

  1. С помощью PowerShell создайте в Active Directory новое OU с именем `Marketing`.
  2. Создайте в этом OU двух новых пользователей: `j.doe` (John Doe) и `s.smith` (Sarah Smith). Задайте им пароли.
  3. Создайте группу безопасности `Marketing_Users` и добавьте в нее обоих пользователей.
  4. Создайте новую GPO с именем `Marketing_Restrictions`.
  5. Привяжите эту GPO к OU `Marketing`.
  6. С помощью этой GPO установите правило: минимальная длина пароля для пользователей этого OU должна быть 10 символов (это делается через политики безопасности).
  7. С помощью этой же GPO запретите пользователям доступ к Редактору реестра (`regedit.exe`). (Подсказка: ищите в Administrative Templates -> System).
  8. Создайте простой скрипт PowerShell `Welcome.ps1`, который выводит на экран "Welcome to Cortex Corp!".
  9. Установите политику выполнения на вашем компьютере в `RemoteSigned`. Убедитесь, что ваш локальный скрипт запускается.

Выполнив это задание, вы на практике примените все ключевые концепции администрирования Windows, от создания пользователей до централизованного управления их окружением с помощью GPO и PowerShell.