Загрузка данных


Ниже представлены готовые команды PowerShell для выполнения третьей практической работы. Убедитесь, что вы запускаете консоль PowerShell от имени Администратора.
### Проверка сети
Перед началом работы проверьте, что у сервера установлен статический IP-адрес и верно указан DNS:
```powershell
ipconfig /all

```
### Шаг 1. Создание структуры Организационных Подразделений (OU)
Команды для создания корневого подразделения Company и вложенных отделов IT и HR. Для всех подразделений включена защита от случайного удаления:
```powershell
# 1. Создаем корневое подразделение Company
New-ADOrganizationalUnit -Name "Company" -Path "DC=lab,DC=local" -ProtectedFromAccidentalDeletion $true

# 2. Создаем подразделение IT внутри Company
New-ADOrganizationalUnit -Name "IT" -Path "OU=Company,DC=lab,DC=local" -ProtectedFromAccidentalDeletion $true

# 3. Создаем подразделение HR внутри Company
New-ADOrganizationalUnit -Name "HR" -Path "OU=Company,DC=lab,DC=local" -ProtectedFromAccidentalDeletion $true

```
### Шаг 2. Создание пользователей
Создание сотрудников из разных отделов с требованием смены пароля при первом входе:
```powershell
# Подготовка пароля (преобразование в безопасный формат)
$SecurePassword = ConvertTo-SecureString "P@ssw0rd123" -AsPlainText -Force

# 1. Создание пользователя Ivanov в OU=IT
New-ADUser -Name "Ivanov Ivan" -GivenName "Ivan" -Surname "Ivanov" -SamAccountName "ivanov" -UserPrincipalName "ivanov@lab.local" -Path "OU=IT,OU=Company,DC=lab,DC=local" -AccountPassword $SecurePassword -Enabled $true -ChangePasswordAtLogon $true -Department "IT"

# 2. Создание пользователя Petrova в OU=HR
New-ADUser -Name "Petrova Anna" -GivenName "Anna" -Surname "Petrova" -SamAccountName "petrova" -UserPrincipalName "petrova@lab.local" -Path "OU=HR,OU=Company,DC=lab,DC=local" -AccountPassword $SecurePassword -Enabled $true -ChangePasswordAtLogon $true -Department "HR"

```
### Шаг 3. Создание групп безопасности
Создание глобальной группы IT_Admins и добавление в неё только что созданного пользователя ivanov:
```powershell
# 1. Создание группы
New-ADGroup -Name "IT_Admins" -GroupScope Global -GroupCategory Security -Path "OU=IT,OU=Company,DC=lab,DC=local"

# 2. Добавление пользователя в группу
Add-ADGroupMember -Identity "IT_Admins" -Members "ivanov"

```
### Шаг 4. Создание служебной учетной записи (Service Account)
Создание учетной записи svc_backup в подразделении IT. Обратите внимание, что для нее применяется специальное свойство: пароль никогда не истекает:
```powershell
# Создание служебного аккаунта
New-ADUser -Name "Service Backup" -GivenName "Service" -Surname "Backup" -SamAccountName "svc_backup" -Path "OU=IT,OU=Company,DC=lab,DC=local" -AccountPassword $SecurePassword -Enabled $true

# Настройка свойств: Пароль не истекает
Set-ADUser -Identity "svc_backup" -PasswordNeverExpires $true

```
*(Примечание: в команде создания я использовал переменную $SecurePassword с прошлого шага для удобства).*
### Шаг 5. Проверка и поиск объектов
Эти команды понадобятся вам для проверки работы, а также для создания скриншотов с результатами их выполнения для отчета:
```powershell
# Найти всех пользователей в OU=IT
Get-ADUser -Filter * -SearchBase "OU=IT,OU=Company,DC=lab,DC=local" | Select-Object Name, Enabled

# Проверить, кто входит в группу IT_Admins
Get-ADGroupMember -Identity "IT_Admins"

# Проверить свойства пользователя (убедиться, что пароль не истекает)
Get-ADUser -Identity "svc_backup" -Properties PasswordNeverExpires | Select-Object Name, PasswordNeverExpires

```
**Бонус для контрольных вопросов:**
В задании есть вопрос: *"Как через PowerShell посмотреть всех отключенных (disabled) пользователей в домене?"*. Для этого в PowerShell предусмотрена следующая команда:
```powershell
Search-ADAccount -AccountDisabled -UsersOnly | Select-Object Name, SamAccountName

```
Вот максимально сжатые ответы:
**1. В чем разница между Global и Domain Local группами?**
 * **Global:** группирует объекты строго своего домена.
 * **Domain Local:** назначает права доступа к ресурсам внутри домена.
**2. Почему для служебных учетных записей важно ставить “Password never expires”?**
 * Чтобы предотвратить остановку служб и приложений из-за автоматического истечения срока пароля.
**3. Что такое UPN и чем он отличается от SamAccountName?**
 * **UPN:** современный логин в формате email (user@domain.local).
 * **SamAccountName:** устаревший формат (DOMAIN\user) с ограничением в 20 символов.
**4. Почему при создании OU рекомендуется ставить “Protect container from accidental deletion”?**
 * Для защиты подразделения и всех вложенных в него объектов от случайного удаления администратором.
**5. Как через PowerShell посмотреть всех отключенных пользователей?**
 * Выполнить команду: Search-ADAccount -AccountDisabled -UsersOnly