Windows Server 2019

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

Обзор

Ссылки по теме:


Каналы распространения

  • Long-Term Servicing Channel (LTSC)
    • поставляется в виде ISO образа
    • включает редакции Standard и Datacenter (без рабочего стола)
    • есть возможность выбрать вариант с рабочим столом для обоих редакций
  • Semi-Annual Channel (SAC)
    • поставляется в виде образов отдельных контейнеров с основными сервисами
    • контейнер nano Server

Основные области применения

  • гибридное облако
  • безопасность
  • платформа приложений
  • гиперконвергентная инфраструктура (HCI)

Возможности

  • Windows Admin Center - веб сервис для управления инфраструктурой серверов и кластеров
    • можно ставить на Windows Server 2019, Windows 10, также поддерживается установка на предыдущие версии для серверов и рабочих станций
    • может управлять серверами и рабочими станциями различных версий
    • поставляется бесплатно (либо в составе ОС)
  • Системная аналитика
    • подсистема анализа и прогнозирования на базе машинного обучения
    • анализирует системные данные, такие как события и счетчиков производительности
    • предоставляет аналитические результаты

Windows Server release information

Оригинальные ISO

Файл:	SW_DVD9_Win_Server_STD_CORE_2019_64Bit_English_DC_STD_MLF_X21-96581.iso
Семейство:	Operating Systems
Версия:	Windows Server 2019 (Updated Sept 2018) - re-release
Язык:	Английский (США) - (en)
CRC-32:	4b67205e
MD5:	f1222583e87a979c516e431d10ae0b16
SHA-1:	e1da51796746668fb36864a7c3c6460d01f7d0aa
SHA-256:	61a391f0dc98e703da674df3c984ac2eb432ff757f949385360e68476c920478
SHA-512:	6eaf8b8e55b5ece6ea5ab6cd99e625de665e683c72f91405efd5c84b4167020251dacb0a7485682979241370cd24ab7ce3b3ed7b8d724ed5a41ec51e0ff0bb92
SHA3-256:	63a9737bf4f8591f08b0529e921dbca999afbf67b3b360125f7f99696217be02
SHA3-512:	be45b7e57178fb6243af2568045907dd97d554a928a53e216ca165012090731fe9c7af40e9697fe886f49b547981e489c6fc7d1bf6116220a90de709b65e72ff
Размер:	4.51 GB (4843016192 байт)

Установка

При установке Windows Server 2019 можно выбрать одну из четырех редакций:

  • Windows Server 2019 Standard
  • Windows Server 2019 Standard (Desktop Experience)
  • Windows Server 2019 Datacenter
  • Windows Server 2019 Datacenter (Desktop Experience)

В русском дистрибутиве список редакций выглядит так:

  • Windows Server 2019 Standard
  • Windows Server 2019 Standard (возможности рабочего стола)
  • Windows Server 2019 Datacenter
  • Windows Server 2019 Datacenter (возможности рабочего стола)
Windows Server 2019 Nano - является контейнером и может работать только внутри другой редакции ОС Windows.

Windows Server 2019 Standard

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

Установка

Выбор языковых настроек

Language to install:      [English(United States)]
Time and currency format: [English(United States)]
Keyboard or input method: [US]

Важно: Нельзя выбирать русские параметры, т.к. по умолчанию задается только одна раскладка и если она не [US], то вы не сможете вводить никакие команды


После установки

Смените региональные настройки на русские

# 203 Russia
# 244 United States
Set-WinHomeLocation -GeoId 203

Добавьте русскую раскладку

Get-ItemProperty "HKCU:\Keyboard Layout\Preload\"
New-ItemProperty "HKCU:\Keyboard Layout\Preload\" -Name 2 -Type String -Value "00000419"

Если необходимо, то измените сочетание клавиш для смены раскладки

Get-ItemProperty "HKCU:\Keyboard Layout\Toggle\"
Set-ItemProperty "HKCU:\Keyboard Layout\Toggle\" -Name "HotKey" -Value 2
# 1 - Alt+Shift
# 2 - Ctrl+Shift

Проверьте настройки "Current User" и скопируйте их на системный профиль и профиль по умолчанию, после чего смените локаль на русскую

intl.cpl
Formats
  Format: Russian (Russia)
Administrative
  [Copy settings]
    Current User
      Display language: English (United States)
      Input language:   English (United States) - US
      Format:           Russian (Russia)
      Location:         Russia
    Copy your current settings to:
      [v] Welcome screen and system accounts
      [v] New user accounts
    [OK]
  [Change system locale ...]
    Russian (Russia)
    [ ] Beta: Use Unicode UTF-8 for worldwide language support  
  Перезагрузка

При установке с русского дистрибутива, важно выбрать

Устанавливаемый язык:               [Русский]
Формат времени и денежных единиц:   [Английский(США)]
Метод ввода (раскладка клавиатуры): [США]

Далее делаем все так же как и для англоязычного дистрибутива

Конфигурация

Включение RDP

powershell

Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server" -Name fDenyTSConnections -Value 0

Enable-NetFirewallRule -DisplayGroup "Remote Desktop"

утилиты, команды

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
netsh advfirewal firewall set rule group="Remote Desktop" new enable=yes

Управление

Общее

Приложения

powershell

clear-host           # очистка экрана (синонимы: clear, cls)

get-childitem        # список дочерних объектов (синонимы: dir,ls), умеет перечислять каталоги и файлы, переменные среды, реестр
ls C:\              
ls ENV:\
ls ENV:\username
ls HKLM:\SOFTWARE

Stop-Computer        # выключить компьютер
Restart-Computer     # перегрузить компьютер

# информация об ОС
systeminfo /fo csv | ConvertFrom-Csv | select OS*, System*

# полный номер версии ОС
cmd /c ver

# смена имени компьютера
Rename-Computer -NewName MyComp
Restart-Computer

# вывод имени компьютера
(Get-ComputerInfo).CsName
dir env:\computername

# список устройств с проблемой драйвера
Get-PnpDevice | where { ($_.Status -ne "OK") -and ($_.Present) }

# проверка активации
# если status=1, значит успешно активирована
Get-CimInstance -ClassName SoftwareLicensingProduct |where PartialProductKey | select Name, ApplicationId, LicenseStatus | Format-List *

Просмотр логов

# Вывод последних 100 записей из лога System
Get-EventLog -LogName System -Newest 100

Включение удаленного управления

# если категория сети на сетевом интерфейсе public, то необходимо изменить на private
Set-NetConnectionProfile -InterfaceIndex <номер_интерфейса> -NetworkCategory Private

# включение удаленного управления
Enable-PSRemoting -force

# определение доверенных хостов, которым разрешено подключение
Set-Item WSMan:\localhost\Client\TrustedHosts -Value *

# удаленное подключение
Enter-PSSession -ComputerName <server_IP> -Credential .\Administrator


утилиты, команды (выполняется в command shell, т.е. в cmd)

cls                  # очистка экрана
shutdown /s /t 0     # выключить компьютер
shutdown /r /t 0     # перегрузить компьютер

dir                  # перечисление каталогов и файлов
reg                  # работа с реестром
set                  # перечисление переменных среды

# вывод имени компьютера
echo %computername%

# работа с драйверами устройств
pnputil /?

# информация о системе (версия ОС, версия BIOS, процессоры, память, и т.д.)
systeminfo

# полный номер версии ОС
ver

Смена SID с помощью sysprep

# выполняется в command shell

cd C:\Windows\System32\sysprep
sysprep.exe

# в графическом окне
Enter System Out-of-Box Experience (OOBE)
[v] Generalize
Shutdown options
[Shutdown]

# Enter System Out-of-Box Experience (OOBE) - запустить мастер первичной настройки ОС при следующем старте системы
# Generalize - удалить SID и драйвера специфичные для текущего оборудования

Время

powershell

Get-TimeZone                  # получить текущую временную зону
Get-TimeZone -ListAvailable   # список доступных временных зон
Set-TimeZone -id "..."        # установка текущей временной зоны по id
Set-TimeZone -Name "..."      # установка текущей временной зоны по StandardName

Настройка NTP

# включение NTP сервера
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\w32time\TimeProviders\NtpServer" -Name "Enabled" -Value 1

# проверка правила файрвола, разрешающего доступ к серверу времени
# на контроллерах домена оно включается в составе группы "Active Directory Domain Services"
Get-NetFirewallRule -DisplayName "Active Directory Domain Controller - W32Time (NTP-UDP-In)"
Get-NetFirewallRule | where {$_.DisplayName -match "W32time"}

# задание списка вышестоящих серверов времени для обновления (по умолчанию "time.windows.com,0x8")
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\services\W32Time\Parameters" -Name "NtpServer" -Value "0.pool.ntp.org,0x1 1.pool.ntp.org,0x1 2.pool.ntp.org,0x1"


# выставление флагов (значение по умолчанию 0x0A)
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\services\W32Time\Config" -Name "AnnounceFlags" -Value <0x05 или 0x0A>

# AnnounceFlags:
#   0x00 Not a time server
#   0x01 Always time server
#   0x02 Automatic time server
#   0x04 Always reliable time server
#   0x08 Automatic reliable time server

Restart-Service w32Time

Для управления синхронизацией времени можно также использовать утилиту w32tm /?

Дисковая подсистема

powershell

Get-Disk             # список физических дисков
Get-Volume           # список томов
Get-SMBOpenFile      # список файлов открытых по сети
Close-SMBOpenFile    # закрыть файл открытый по сети

утилиты

diskpart             # управление дисками и томами
openfiles            # управление открытыми по сети файлами (для управления локальными файлами нужна доп. настройка ОС)

Локальные группы и пользователи

powershell

Get-LocalUser        # вывести список локальных пользователей
Get-LocalGroup       # вывыести список локальных групп

# Список членов локальной группы
Get-LocalGroup -Name Administrators | Get-LocalGroupMember

# смена паролья локального администратора
Set-LocalUser -Name Administrator -Password $( Read-Host "pass" -AsSecureString )

Active Directory

powershell

Управление пользователями

# получить список всех пользователей AD в заданном контейнере
Get-ADUser -filter 'Name -like "*"' -SearchBase <путь_к_контейнеру> | ft name

# добавление нового пользователя
New-ADUser -Name <общее_имя> -PasswordNeverExpires $true -SamAccountName <имя_учетки> -path <путь_к_контейнеру>

# смена пароля пользователя AD
Set-ADAccountPassword <имя_учетки> -NewPassword $( Read-Host "Enter new password" -AsSecureString )

# установка атрибута смены пароля при входе
Set-ADUser <имя_учетки> -PasswordNeverExpires $false -ChangePasswordAtLogon $true

# включение учетки
Set-ADUser <имя_учетки> -Enabled $true

Управление группами


# список групп заданного типа
Get-ADGroup -filter 'GroupScope -eq "Global"' | ft Name
Get-ADGroup -filter 'GroupScope -eq "DomainLocal"' | ft Name
Get-ADGroup -filter 'GroupScope -eq "Universal"' | ft Name

# добавление учетки в группу
Add-ADGroupMember <имя_группы> -Members <имя_учетки>

Другое

# включение компьютера в домен
$credential = New-Object System.Management.Automation.PSCredential("Administrator@firma.ru",(Read-Host "password" -AsSecureString))
Add-Computer -DomainName "firma.ru" -Credential $credential [-OUPath ...]

# Работа с группами
Get-ADGroup
Get-ADGroupMember

# Работа с OU
Get-ADOrganizationalUnit

# определение Forest Level
Get-ADForest | select ForestMode

# определение Domain Level
Get-ADDomain | select DomainMode

Сеть

Ссылки по теме

powershell

# список командлетов включенных в модуль NetTCPIP
get-command -module NetTCPIP

# Список сетевых адаптеров
Get-NetAdapter

# переименование адаптера
Rename-NetAdapter -Name "Ethernet 3" -NewName "LAN"

# вывести текущие IPv4 адреса
Get-NetIPAddress -AddressFamily IPv4

# вывести текущие IP адреса (другой способ)
Get-NetIPConfiguration

# отключение DHCP на интерфейсе
Set-NetIPInterface -InterfaceIndex <номер_интерфейса> -Dhcp Disabled

# Set-NetIPAddress использует параметр IPAddress для поиска, но не для изменения
# для ручной настройки IP адреса, используйте командлет New-NetIPAddress
# например так
$ipParams = @{
InterfaceIndex = 4
IPAddress = "192.168.0.10"
PrefixLength = 24
AddressFamily = "IPv4"
DefaultGateway = "192.168.0.1"
}
New-NetIPAddress @ipParams

# после добавления IP адреса не забудьте проверить текущий список IP и корректность маршрута по умолчанию, лишнее удаляйте

# удаление IP адреса добавленного вручную
Remove-NetIPAddress -IPAddress <IP_адрес>

# вывод списка маршрутов
Get-NetRoute

# удаление маршрута
Remove-NetRoute -DestinationPrefix <префикс_назначения> ... прочие параметры однозначно идентифицирующие маршрут

# перезагрузка интерфейса, желательна после изменения конфигурации
Restart-NetAdapter -InterfaceAlias <имя_интерфейса>

# установка главного (primary) DNS суффикса
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters -Name 'NV Domain' -Value 'example.com'
Restart-Computer

# указание DNS серверов для интерфейса
Set-DnsClientServerAddress -InterfaceIndex <номер_интерфейса> -ServerAddresses <IP_DNS1>,<IP_DNS2>

# проверка очередности DNS серверов
Get-NetAdapter LAN | Get-DnsClientServerAddress

# проверка флага RegisterThisConnectionAddress
Get-NetAdapter <имя_адаптера> | Get-DnsClient

# параметры сетевого подключения
Get-NetConnectionProfile
# в том числе выводит тип сети
# NetworkCategory  : Public

# изменение сети на private
Set-NetConnectionProfile -InterfaceIndex <номер_интерфейса> -NetworkCategory Private

# разрешение DNS имени
Resolve-DNSName <dns_name>

# выключение IPv6
Get-NetAdapterBinding -ComponentID ‘ms_tcpip6’ | Disable-NetAdapterBinding -ComponentID ‘ms_tcpip6’ -PassThru

Объединение сетевых карт (Nic Teaming)

  • В Диспетчере серверов создаем группу и задаем ее имя
  • Включаем в нее сетевые интерфейсы
  • В разделе "Дополнительно" выбираем режим поддержки группы (Teaming Mode), доступны следующие настройки
    1. Режим поддержки групп
    2. Режим балансировки нагрузки
    3. Резервный адаптер
    4. Основной групповой интерфейс

Режим поддержки групп, возможны 3 варианта

  1. Не зависит от коммутатора (Switch independent)
    • можно включать в разные коммутаторы
    • не нужно ничего настраивать на стороне коммутаторов
    • балансируется только исходящий трафик
    • входящий трафик приходит на основной адаптер группы, если он выходит из строя, то все входящие идут на другой адаптер группы
  2. Статическая поддержка групп (Static Teaming) (IEE 802.3ad draft v1)
    • Необходима настройка на стороне коммутатора, порты вручную объединяются в группу
    • Все адаптеры должны быть подключены к одному коммутатору
    • Данный режим обычно поддерживают коммутаторы серверного класса
    • Исходящие будут балансироваться по алгоритму заданному на стороне сервера
    • Входящие будут балансироваться по алгоритму заданному на стороне коммутатора
  3. LACP (Link Aggregation Control Protocol), IEE 802.1.ax
    • Необходима настройка на стороне коммутатора
    • Нет привязки к конкретным портам, настройка осуществляется на уровне коммутатора
    • Переключение в другой порт обычно не требует внесения изменений в настройку коммутатора
    • Согласование портов происходит динамически по протоколу LACP

Режим балансировки нагрузки также имеет 3 варианта

  1. Хеш адреса (Address Hash)
  2. Порт Hyper-V (Hyper-V Port)
  3. Динамический (Dynamic)

Firewall

powershell


# список команд
Get-Command -Module NetSecurity

# список групп правил файрвола
Get-NetFirewallRule | select DisplayGroup -Unique

# список правил файрвола в заданной группе
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | ft Enabled, Name, DisplayName, Action, Profile

Hyper-V

Ссылки по теме:

Get-Command -Module hyper-v    # список всех команд в модуле hyper-v

Get-VM                         # список виртуальных машин

Get-VM myVM | Get-Member       # вывод списка всех параметров и методов объекта

# вывод основных параметров
$VM = Get-VM myVM
$VM| ft Name,ProcessorCount,MemoryStartup
$VM.NetworkAdapters
$VM.HardDrives
$VM.DVDDrives

Start-VM -Name myVM            # запуск машины myVM
Stop-VM  -Name myVM            # штатное завершение работы гостевой системы, если нет активных сессий
Stop-VM  -Name myVM -Force     # штатное завершение работы гостевой системы, завершение всех сессий и принудительное завершение процессов, которые не могут корректно завершиться
Stop-VM  -Name myVM -Save      # сохранить текущее состояние и выключить (аналог гибернации)
Stop-VM  -Name myVM -Turnoff   # выключить виртуальную машину (аналог выключения питания)

Suspend-VM -Name myVM          # поставить виртуальную машину на паузу (аналог сна)
Resume-VM  -Name myVM          # снять виртуальную машину с паузы

Get-VMSnapshot -VMName myVM    # вывести список snapshot-ов

# создать snapshot для виртуальной машины myVM и присвоить ему имя BeforeUpdates
Checkpoint-VM -Name myVM -SnapshotName BeforeUpdates

# восстановление на момент создания указанной контрольной точки (изменения текущего состояния до момента вышестоящей контрольной точки теряются)
Restore-VMSnapshot -VMName myVM -SnapshortName <имя_контрольной_точки>

# удаление контрольной точки 
Remove-VMSnapshot -VMName myVM -SnapshortName <имя_контрольной_точки>

# удаление контрольной точки включая все дочерние 
Remove-VMSnapshot -VMName myVM -SnapshortName <имя_контрольной_точки> -IncludeAllChildSnapshots

Пример создания новой виртуальной машины

$VMName="SRV01"
$VM = @{  
   Name = "$VMName"
   Generation = 2
   MemoryStartupBytes = 4GB      
   NewVHDPath = "$VMName.vhdx"     
   NewVHDSize = 50GB
   BootDevice = "VHD"
   SwitchName = "Default Switch"
}
New-VM @VM
Set-VMProcessor -VMName $VMName -Count 4
Add-VMDvdDrive -VMName $VMName -Path "D:\hyper-v\iso\win2019.iso"

# смотрим текущий порядок загрузки
$Boot = (Get-VMFirmware -VMName $VMName).BootOrder
$Boot

# задаем нужный порядок загрузки
Set-VMFirmware -VMName $VMName -BootOrder $Boot[2],$Boot[0],$Boot[1]

# отключаем создание автоматических контрольных точек, как минимум на период установки ОС
Set-VM -Name $VMName -AutomaticCheckpointsEnabled $false

# отключение динамической памяти, по необходимости (динамическая память может создать проблемы с производительностью)
Set-VMMemory -VMName $VMName -DynamicMemoryEnabled $false

Переключение виртуальной машины на другой виртуальный коммутатор

Get-VM myVM | Get-VMNetworkAdapter | Connect-VMNetworkAdapter -SwitchName "NewSwitch"


Подключение к консоли гостевой машины на Hyper-V из Linux

# получите идентификатор гостевой машины
(Get-VM <имя>).id

# подключение из ubuntu 20.04 (проверено)
sudo apt install freerdp2-x11
xfreerdp /cert-ignore /u:<username> /vmconnect:<vmid> /v:<hypervhost>

# в других дистрибутивах Linux возможен еще такой вариант (не проверено)
xfreerdp -ignore-certificate -no-nego -u <username> -pcb <vmid> -t 2179  <hypervhost>


Управление ролями и компонентами

# вывод дерева ролей и компонентов
Get-WindowsFeature     

# установка компонента
Install-WindowsFeature "<имя_компонента>"

# удаление компонента
Uninstall-WindowsFeature -Name "<имя_компонента>" -Remove

Управление модулями Powershell

Get-Module -list


Управление пакетами

# вывод списка установленных провайдеров пакетов
Get-PackageProvider

# Установка провайдера пакетов
Install-PackageProvider -Name <имя_провайдера>

Удаление провайдера пакетов

# определение пути размещения провайдера пакетов
(Get-PackageProvider -Name <имя_провайдера>).ProviderPath

# обычно Windows загружает дополнительные провайдеры пакетов из каталога поиска провайдеров пакетов C:\Program Files\PackageManagement\ProviderAssemblies
# если провайдер расположен в другом месте, то вопрос удаления необходимо дополнительно изучить
# для удаления провайдера достаточно удалить все его файлы и подкаталог
# файлы провайдеров обычно открыты и просто так удалить не получится
# сначала файлы провайдера нужно переместить за пределы каталога провайдеров и перегрузить компьютер
# после этого можно удалить файлы и подкаталоги провайдера

# пример удаления провайдера пакетов NuGet
move "C:\Program Files\PackageManagement\ProviderAssemblies\nuget\2.8.5.208\Microsoft.PackageManagement.NuGetProvider.dll" C:\
rmdir "C:\Program Files\PackageManagement\ProviderAssemblies\nuget" -Recurse
Restart-Computer
del "C:\Microsoft.PackageManagement.NuGetProvider.dll" 

Обновление

Ссылки по теме


# Установка пакетного провайдера NuGet
Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

Install-Module -Name PSWindowsUpdate

Get-Content Function:\Start-WUScan
Get-Command -Module WindowsUpdateProvider

Терминальная ферма


# список серверов терминальной фермы и их ролей
# выполняется на активном RDCB
Get-RDServer     

Установка приложений или правка реестра на хосте с установленным RDSH

# переключение текущей сессии в режим установки
change user /install

... устанавливаем приложения, правим реестр и т.п. ...

# переключение текущей сессии в режим выполнения
change user /execute

Возможности (Capabilities)

Список возможностей (на 5.07.2021)

  • Accessibility.Braille
  • Browser.InternetExplorer
  • Hello.Face.17658
  • Hello.Face.Migration.17658
  • Kernel.Soft.Reboot
  • Language.Basic*
  • Language.Fonts.*
  • Language.Handwriting*
  • Language.OCR*
  • Language.Speech*
  • Language.TextToSpeech*
  • MathRecognizer
  • Media.WindowsMediaPlayer
  • Microsoft.Onecore.StorageManagement
  • Microsoft.Windows.StorageManagement
  • Msix.PackagingTool.Driver
  • NetFX3
  • OpenSSH.Client
  • OpenSSH.Server
  • Print.EnterpriseCloudPrint
  • Print.MopriaCloudService
  • RIP.Listener
  • ServerCore.AppCompatibility
  • Tools.DTrace.Platform
  • Tools.Graphics.DirectX
  • WMI-SNMP-Provider.Client
  • XPS.Viewer

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

Особенности (Features)

Обзор

Особенности (Feature) бывают трех типов (FeatureType)

  • Role
  • Role Service
  • Feature

На верхнем уровне иерархии особенностей располагаются роли и простые особенности. Сервисы обычно входят в состав ролей. Простые особенности также могут содержать вложенную иерархию особенностей.

Роли

  • Active Directory Certificate Services
  • Active Directory Domain Services
  • Active Directory Federation Services
  • Active Directory Lightweight Directory Services
  • Active Directory Rights Management Services
  • Device Health Attestation
  • DHCP Server
  • DNS Server
  • Fax Server
  • File and Storage Services
  • Host Guardian Service
  • Hyper-V
  • Network Policy and Access Services
  • Print and Document Services
  • Remote Access
  • Remote Desktop Services
  • Volume Activation Services
  • Web Server (IIS)
  • Windows Deployment Services
  • Windows Server Update Services

Особенности верхнего уровня (не имеющие статус роли)

  • .NET Framework 3.5 Features
  • .NET Framework 4.7 Features
  • Background Intelligent Transfer Service (BITS)
  • BitLocker Drive Encryption
  • BitLocker Network Unlock
  • BranchCache
  • Client for NFS
  • Containers
  • Data Center Bridging
  • Direct Play
  • Enhanced Storage
  • Failover Clustering
  • Group Policy Management
  • Host Guardian Hyper-V Support
  • I/O Quality of Service
  • IIS Hostable Web Core
  • Internet Printing Client
  • IP Address Management (IPAM) Server
  • iSNS Server service
  • LPR Port Monitor
  • Management OData IIS Extension
  • Media Foundation
  • Message Queuing
  • Multipath I/O
  • MultiPoint Connector
  • Network Load Balancing
  • Network Virtualization
  • Peer Name Resolution Protocol
  • Quality Windows Audio Video Experience
  • RAS Connection Manager Administration Kit (CMAK)
  • Remote Assistance
  • Remote Differential Compression
  • Remote Server Administration Tools
  • RPC over HTTP Proxy
  • Setup and Boot Event Collection
  • Simple TCP/IP Services
  • SMB 1.0/CIFS File Sharing Support
  • SMB Bandwidth Limit
  • SMTP Server
  • SNMP Service
  • Storage Replica
  • Telnet Client
  • TFTP Client
  • VM Shielding Tools for Fabric Management
  • WebDAV Redirector
  • Windows Biometric Framework
  • Windows Defender Antivirus
  • Windows Identity Foundation 3.5
  • Windows Internal Database
  • Windows PowerShell
  • Windows Process Activation Service
  • Windows Search Service
  • Windows Server Backup
  • Windows Server Migration Tools
  • Windows Standards-Based Storage Management
  • Windows Subsystem for Linux
  • Windows TIFF IFilter
  • WinRM IIS Extension
  • WINS Server
  • Wireless LAN Service
  • WoW64 Support
  • XPS Viewer

Active Directory Domain Services

Этапы:

  • Настройте сетевой интерфейс:
    • статический IP адрес
    • маску подсети
    • шлюз по умолчанию
  • Смените имя компьютера на нужное и перегрузите компьютер
  • Если компьютер клонирован с образа, то смените SID, в win2019 это важно, потому что в win2019 домен примет SID от первого контроллера, что создаст проблемы с включением в домен серверов с этого же образа.
  • При включенном IPv6 добавление нового контроллера домена может зависнуть, нужно разбираться в причинах или отключить IPv6 на всех контроллерах домена
  • Установите роль DNS сервера
  • Установите роль Active Directory Domain Services
  • Перегрузите компьютер
  • Повысьте сервер до контроллера домена
# проверка конфигурации IP
Get-NetIPConfiguration
Get-NetIPAddress -AddressFamily IPv4

Установите роль DNS сервера

Install-WindowsFeature DNS

# Если не планируете разрешать имена от корня,
# то укажите DNS сервер для форвардинга

Set-DNSServerForwarder -IPAddress <DNS_сервер> -IncludeManagementTools

Установите роль Active Directory Domain Services

Install-WindowsFeature AD-Domain-Services -IncludeManagementTools

Создание нового леса

$params = @{
DomainName = "example.com"
CreateDnsDelegation = $false
DatabasePath = "C:\Windows\NTDS"
DomainMode = 7
DomainNetbiosName = "EXAMPLE"
ForestMode = "7"
InstallDns = $true
LogPath = "C:\Windows\NTDS"
NoRebootOnCompletion = $true
SysvolPath = "C:\Windows\SYSVOL"
Force = $true
}

Install-ADDSForest @params

Restart-Computer

Первая перезагрузка займет немного больше времени чем обычно.

Обратите внимание, что повышение до контроллера домена сбросила на сетевом интерфейсе порядок опроса DNS серверов на 127.0.0.1. В более ранних версиях Windows такая настройка могла создать проблему при загрузке, т.к. служба DNS стартовала позже и не могла ответить контроллеру. Если контроллер будет постоянно долго висеть на загрузке, то попробуйте изменить порядок DNS серверов, указав первым соседний контроллер домена.

Добавление контроллера домена в существующий домен

Install-ADDSDomainController -DomainName "example.com"

Remote Desktop Services

Состав роли, редакция: Windows Server 2019 Standard

[ ] Remote Desktop Services
    [ ] Remote Desktop Licensing

Состав роли, редакция: Windows Server 2019 Standard (Desktop Experience)

[ ] Remote Desktop Services
    [ ] Remote Desktop Connection Broker
    [ ] Remote Desktop Gateway
    [ ] Remote Desktop Licensing
    [ ] Remote Desktop Session Host
    [ ] Remote Desktop Virtualization Host
    [ ] Remote Desktop Web Access

Сокращения:

  • RDWA (Remote Desktop Web Access)
  • RD Licensing (Remote Desktop Licensing)
  • RDCB (Remote Desktop Connection Broker)
  • RDVH (Remote Desktop Virtualization Hosts)
  • RDSH (Remote Desktop Session Host)
  • RDG (Remote Desktop Gateway)

Схемы развертывания:

  1. Стандарт - RDCB, RDWA, RDSH - ставятся на 3 разных сервера
  2. Быстрый старт - все компоненты ставятся на один сервер
  3. Multipoint - вариант для учебных заведений, к серверу подключается несколько мониторов по HDMI и клавиатур по USB, Multipoint дает каждому свой рабочий стол.


  • PSD (Personas Sessin Desktop) - нужно разобраться, это что-то типа каждому пользователю по своей виртуальной среде, типа почти как по своей виртуалке, но в рамках одной ОС сервера.
  • RDCH - ?

Примеры установки

Известные проблемы:

DNS Server

KMS SRV Record

Add-DnsServerResourceRecord -Srv -Name "_VLMCS._tcp" -ZoneName "mydomain.ru" -DomainName "kms.mydomain.ru" -Priority 0 -Weight 0 -Port 1688

DHCP Server

Не стоит экспериментировать с DHCP в рабочем сегменте сети. Ваш тестовый DHCP может выдать кому-то некорректный IP адрес, что может создать серьезные проблемы для всей сети.

Приведенные ниже инструкции предполагают, что будущий DHCP сервер уже включен в домен и все команды выполняются на DHCP сервере.

Установка роли DHCP сервера

# добавление роли и средств управления
Add-WindowsFeature -Name DHCP -IncludeManagementTools

# добавление локальных групп "DHCP Users" и "DHCP Administrators"
# если DHCP сервер является контроллером домена, то добавляются домен-локальные группы
Add-DHCPServerSecurityGroup

# перезапуск сервиса DHCP
Restart-Service DHCPServer

# добавление сервера в список авторизованных серверов в Active Directory
Add-DhcpServerInDC -DnsName <dhcp_server>

# получение списка DHCP серверов авторизованных в Active Directory
Get-DhcpServerInDC

# задание учетки, под которой DHCP сервис будет вносить изменения в DNS
# имя необходимо задавать в формате domain\user или user@domain.ru
Set-DHCPServerDnsCredential -Credential (Get-Credential)

# Добавление области
Add-DHCPServerv4Scope -Name <name> -StartRange <IP1> -EndRange <IP2> -SubnetMask <маска подсети> -State Active

# вывод текущего списка областей
Get-DHCPServerv4Scope

# определение опций на уровне сервера, которые наследуются всеми областями
Set-DHCPServerv4OptionValue -DnsServer <IP_dns1>, <IP_dns2> -DnsDomain <dns_domain> -Router <IP_gateway>

# вывод списка опций заданных на уровне сервера
Get-DHCPServerv4OptionValue
# удаление опции заданной на уровне сервера
Remove-DHCPServerv4OptionValue -OptionId <option_id>

# определение опций на уровне области
Set-DhcpServerv4OptionValue -ScopeId <scope_id> -Router <IP_gateway>

# вывод списка опций заданных на уровне области
Get-DHCPServerv4OptionValue -ScopeId <scope_id>

# удаление опции заданной на уровне области
Remove-DHCPServerv4OptionValue  -ScopeId <scope_id> -OptionId <option_id>


Текст ниже пока только скопипастил из статьи выше. Нужно протестировать и причесать.

# Если после конфигурации DHCP выходит сообщение, что конфигурация не настроена, то выполняем:
Set-ItemProperty -Path registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ServerManager\Roles\12 -Name ConfigurationState -Value 2

# перезагрузка
Restart-Computer -Force

Windows Server Update Services

WSUS (Windows Server Update Services) - предназначен для централизации процесса обновления систем на базе Microsoft Windows

Ссылки по теме


Install-WindowsFeature -Name UpdateServices -IncludeManagementTools

# настраиваем каталог данных WSUS
# каталог данных не рекомендуется размещать на системном диске
mkdir D:\WSUS
& 'C:\Program Files\Update Services\Tools\WsusUtil.exe' postinstall CONTENT_DIR=D:\WSUS

# определение в качестве вышестоящего источника обновлений Microsoft Update
Set-WsusServerSynchronization -SyncFromMU

# корректировка конфигурации WSUS
$wsus = Get-WsusServer
$wsusConfig = $wsus.GetConfiguration()

# включение языка
$wsusConfig.AllUpdateLanguagesEnabled = $false
$wsusConfig.SetEnabledUpdateLanguages("ru")
$wsusConfig.Save()

$subscription = $wsus.GetSubscription()
$subscription.StartSynchronizationForCategoryOnly()

Get-WsusProduct | where-Object {
    $_.Product.Title -in (
    'SQL Server 2019',
    'Exchange Server 2010',
    'Windows Server 2019')
} | Set-WsusProduct
 
Get-WsusClassification | Where-Object {
    $_.Classification.Title -in (
    'Update Rollups',
    'Security Updates',
    'Critical Updates',
    'Service Packs',
    'Updates')
} | Set-WsusClassification

$subscription.SynchronizeAutomatically=$true
$subscription.SynchronizeAutomaticallyTimeOfDay= (New-TimeSpan -Hours 0)
$subscription.NumberOfSynchronizationsPerDay=1
$subscription.Save()

# запуск синхронизации
$subscription.StartSynchronization()

# проверка текущего процесса синхронизации
$subscription.GetSynchronizationStatus()

Лабы