# Практическая работа № 1.2. Настройка Windows.
## 1.2.0 Предварительные сведения
Настройку Windows будем проводить средствами Powershell.
Все машины нам необходимо переименовать, статически настройть адреса IPv4, компонент IPv6 отключить и указать значения DNS.
Именование машин и IP план нашей сети таков:
* сеть 192.168.10.0 маска сети 255.255.255.0 (24)
* шлюз 192.168.10.254 (Mikrotik)
* Windows Server 2016 EN имя dc1 адрес 192.168.10.200
* Windows Server 2016 RU имя dc2 адрес 192.168.10.201
* Windows 10 имя pc1 адрес 192.168.10.202
* DNS серверы 192.168.10.200, 192.168.10.201
Проверяем версию Powershell. На современных операционных системах Windows версия Powershell должна быть не ниже 5.1.
```powershell=
$PSVersionTable.PSVersion
```

## 1.2.1 Настройка Windows 10
Начнем устанавливать необходимые настройки системы.
Для просмотра сетевых адаптеров выполним следующий командлет:
```powershell=
Get-NetAdapter
```
Для просмотра конфигурации сетевого адаптера выполним командлет:
```powershell=
Get-NetIPConfiguration -InterfaceIndex (Get-NetAdapter).InterfaceIndex
```

Видим что сетевой интерфейс несконфигурирован, адрес установлен методом APIPA.
Введем некоторые переменные:
```powershell=
# новое имя машины
$name = "pc1"
# IP адрес машины
$IPAddress = "192.168.10.202"
# сетевая маска
$NetPrefix = 24
# шлюз по умолчанию
$DefaulGW = "192.168.10.254"
# объект адаптера
$NetAdapter = Get-NetAdapter
```
Проверим включена-ли поддержка IPv6 на интерфейсе:
```powershell=
$NetAdapter = Get-NetAdapter
Get-NetAdapterBinding -Name $NetAdapter.Name -ComponentID ms_tcpip6
```

Отключать поддержку IPv6 на интерфейсе будем следующим комадлетом:
```powershell=
Disable-NetAdapterBinding -Name $NetAdapter.Name -ComponentID ms-tcpip6
```
Получаем отказ доступа

Для выполнения данных действий необходимы права, перезапустим оболочку Powershell c правами локального администратора и попробуем заного выполнить командлет.

Поддержка IPv6 на интерфейсе отключена

Далее настроим сетевой интерфейс:
```powershell=
New-NetIPAddress -InterfaceIndex $NetAdapter.InterfaceIntex -IPAddress $IPAddress -DefaultGateway $DefaultGW -PrefixLength $NetPrefix
Set-DnsClientSeverAddress -InterfaceIndex $NetAdapter.InterfaceIndex -ServerAddress ("192.168.10.200","192.168.10.201")
```
Соглашаемся обнаруживать наш ПК

Результат установки параметров

Посмотрим результат в графике.
IPv6 на интерфейсе отключен.

Протокол IPv4 на интерфейсе сконфигурирован верно.

Проверим текущее имя машины:
```powershell=
$env:COMPUTERNAME
```

Установим требуемое имя машины
```powershell=
Rename-Computer -NewName $name
```

После установки нового имени необходима перезагрузка.
Отправляем принудительно машину в перезагрузку.
```powershell=
Restart-Computer -Force -Verbose
```
После перезагрузки проверяем имя машины

Настройка завершена.
## 1.2.2 Настройка Windows Server 2016 EN
Настройка Windows Server будет произведена аналогично настройке Windows 10, за исключением того, что будем использовать скрипт powershell вместо отдельных комадлетов. Параметры не будем выносить в аргументы скрипта, поэтому они будут установлены в самом теле скрипта.
```powershell=
$name = "dc1"
$IPAddress = "192.168.10.200"
$NetPrefix = 24
$DefaultGW = "192.168.10.254"
$NetAdapter = Get-NetAdapter
Disable-NetAdapterBinding -Name $NetAdapter.Name -ComponentID ms_tcpip6
New-NetIPAddress -InterfaceIndex $NetAdapter.InterfaceIndex -IPAddress $IPAddress -DefaultGateway $DefaultGW -PrefixLength $NetPrefix
Set-DnsClientServerAddress -InterfaceIndex $NetAdapter.InterfaceIndex -ServerAddresses ("192.168.10.201","127.0.0.1")
Rename-Computer -NewName $name
Restart-Computer -Force -Verbose
```
Так как Windows Server 2016 EN и Windows Server 2016 RU будут выполнять роль контроллеров домена и DNS, то установим в настройках DNS взаимное обращение друг к другу. То есть Windows Server 2016 EN первым DNS указывается Windows Server 2016 RU, а вторым свой петлевой интефейс (127.0.0.1). Для Windows Server 2016 RU первым указывается Windows Server 2016 EN, а вторым тоже свой петлевой интерфейс.
Запустим интегрированную среду разработки Powershell ISE

Наберем скрипт и запустим его

После перезагрузки проверим настройки сервера

Машина сконфигурирована.
## 1.2.3 Настройка Windows Server 2016 RU
Настройка Windows Server 2016 Ru аналогична Windows Server 2016 EN, за исключением таких параметров как имя (dc2), IP адрес (192.168.10.201) и DNS серверов (192.168.10.200, 127.0.0.1).
```powershell=
$name = "dc2"
$IPAddress = "192.168.10.201"
$NetPrefix = 24
$DefaultGW = "192.168.10.254"
$NetAdapter = Get-NetAdapter
Disable-NetAdapterBinding -Name $NetAdapter.Name -ComponentID ms_tcpip6
New-NetIPAddress -InterfaceIndex $NetAdapter.InterfaceIndex -IPAddress $IPAddress -DefaultGateway $DefaultGW -PrefixLength $NetPrefix
Set-DnsClientServerAddress -InterfaceIndex $NetAdapter.InterfaceIndex -ServerAddresses ("192.168.10.200","127.0.0.1")
Rename-Computer -NewName $name
Restart-Computer -Force -Verbose
```
Запускаем скрипт

Проверяем настройки

Машина настроена
## 1.2.4 Установка Guest Additions
Для удобства управления виртуальными машинами установим дополнения для гостевой операционной системы (Guest Additions).
Для этого примонтируем диск с дополнениями.

Откроем примонтированный диск и запустим установку

Начнем установку

Укажем путь установки

Согласимся на установку драйвера

Процесс установки пошел

Согласимся на перезагрузку.

После перезагрузки включим двунаправленный режим буфера обмена

И Drag and Drop

Данные действия выполним на всех Windows машинах:
- Windows 10 (pc1)
- Windows Server 2016 EN (dc1)
- Windows Server 2016 RU (dc2)
На этом настройка Windows машин завершена.